Hmm. Here is a Matlab routine I wrote to pull time off the cesium beam standard at the Naval Observatory: function java_time % make the swing class names available as Matlab functions import javax.swing.*; % make the java.awt class names available as Matlab functions import java.awt.*; % create a java swing window with title frame = JFrame('US Naval Observatory Time'); frame.setSize(350,78) % put the swing window in the center of the screen xsize = 350; ysize = 78; screen_size = get(0,'ScreenSize'); x_position = screen_size(3)/2 - xsize/2; y_position = screen_size(4)/2 - ysize/2; % create label and text fields lfld = JLabel('Current Time'); tfld = JTextField(9); % create layout time_panel = JPanel(BoxLayout.Y_AXIS); % add layout to java swing window time_panel.add(lfld); time_panel.add(tfld); % finalize the frame contents and position frame.getContentPane.add(time_panel); frame.setLocation(Point(x_position, y_position)); % define a Java button Stop_Button = JButton('Stop'); % add the button to the panel time_panel.add(Stop_Button); % prepare a handle structure of the window components handles.frame = frame; handles.Stop_Button = Stop_Button; % listen for action on the button set(Stop_Button, 'ActionPerformedCallback',{@StopCallback, handles}); % show the frame frame.show % initialize break flag set(frame,'UserData',0); % Continuous time loop i=1; while i==1; % trigger on break flag to end program j = get(frame,'UserData'); if j == 1 break end % define the URL for US Naval Observatory Time page url =java.net.URL('http://tycho.usno.navy.mil/cgi-bin/timer.pl'); % initiate a try/catch structure to trap errors when java.io times out try % read the URL link = openStream(url); parse = java.io.InputStreamReader(link); snip = java.io.BufferedReader(parse); % Read lines of html and parse the time string for k = 1:100 snort(k) = readLine(snip); pflag = findstr(snort(k),'UTC'); pfish = isempty(pflag); if pfish == 0; tdatl = char(snort(k)); tdat = tdatl(pflag-9 : pflag+2); end end % clear the text field set(tfld,'Text',''); % put the time string into the text field set(tfld,'Text', tdat); % let the user know if the page is unavailable (java io timed out) catch set(tfld,'Text','Unavailable'); end % update about every 1 second pause(0.9) % end of main function end % callback funtion for button function StopCallback(hObject, eventdata, handles) % disable the button handles.Stop_Button.setEnabled(false); % show the frame with the disabled button for a second handles.frame.show; pause(1); % close the frame handles.frame.dispose; % set the break flag and return to the main function set(handles.frame,'UserData',1); return % end of code
I thought that this thread was a joke until I clocked IB today. It was always about 5 seconds behind the official time. They have to have some type of edge with the clock 5 seconds behind like this??? I dunno.
LOL. I read this thread and thought wtf ... oh no. So I checked and IB's time was 20 seconds out from my pc. Bloody Hell. They must be ripping me off. So I forced my pc to resynch with that atomic clock ... and ... damn it ... my pc was wrong and ib, bless their cotton socks, was ... RIGHT
Im trading the ES now on IB and the damned thing is 5 seconds behind. Does IB have some computers that are taking advantage of poor me?
I'm not sure what server you are on but my TWS is tick for tick in sync with http://tycho.usno.navy.mil/simpletime.html Note: i've logged into both the US and HK servers via different TWS accounts and both are PERFECTLY in synch. While your comment may be sarcastic, I do think it's important to point out that, even if the clock is off by hours, when you hit transmit, orders are sent directly and immediately to the exchange. Server time is irrelevant in regards to the speed of order transmission.
If your systems are so weak and have such a lame edge that 5 seconds affects them? Back to the drawing board. You strike me as a system trader who is not getting the same forward results as you have backtested (probably with too much optimization) so now you are looking for someone to blame. Either that or you are a fussy, ranting loon.
I am not sure about this 5 seconds time delay, but there is not price quote delay, which is most important. Price quotes and DOM are spot on when compared to x_trader. I also ran some other tests and the data is absolutely fine. I am talking about DAX futures only.
IB does do some tricks. like when I get a position, I always noticed the ask/bid abnormancy, one side is frozen, why? they want to scare me, put me in a rash, so I get out, after I did it, then everything looks normal, then I want to get in again, then the ask/bid becomes abornomal again! the lag is real since I often noticed, my execution confirmatiuon is already in, but the price is not freshed, I do not know why, so I opened another account with another broker, so I used another firms' chart/data feeding to solve IB's tricking or their technical problems, that works pretty well, that is a good way to gurantee data accuracy and timeliness, also can put your broker under a microscope ince case they did some under-tabel thing, you can show them your proof, submitted your complain directly to Marketwatch dog/SEC and they will be punished and you will be protected!
comrade, 5seconds is a pretty long time. if news breakouts, the market may take only 1 seconds to roof or one second to the ground. another disadvantage is obvious: for example, five seconds ago, the market was quted like that: ask 4.8 bid 4.78, since you are behind 5 seconds, you think this is the current market, and you want to buy it, you entered 4.8, but oddly the market did not take it, then the qoute freshed to ask 4.85 bid 4.83, then you changed your bid to 4.83, gosh, still did not get filled since you are behind 5 seconds, actually the market is at ask 4.95 bid 4.93, ... so how can you buy the market at fair price? you end up chase the market until some point the market is started to reverse, after your chase the market to ask 5.09 bid 5.07, the market is actually at ask 4.97 bid 5.0, and you entered buy order at 5.07, oddly you get filled at 5.01! you may think you get good fill, oops, the market is heading ask 4.85 bid 4.83.... what a losing game! that is why they want 5 seconds delay for you!