I deploy my strategy in dedicated Server in London(27 ms ping delay) from FXVM. The strategy logged the time delay between server tick time( from ITick) and client system time. Source code as follows:
public void onTick(Instrument instrument, ITick tick) throws JFException { // process all instruments
m_CurrentTick = tick.getTime();
long delayTime = System.currentTimeMillis() - m_CurrentTick;
Date dTime = new Date( tick.getTime());
m_TestRecorder.println( gDateFormatYMDHMS.format( dTime) + "," + Long.toString( delayTime));
The delay data shows there were 1 sec to 6 secs delay from '2015.11.06 12:56:29.563' to '2015.11.06 12:56:33.148'(1106maxdaly.tif), and a x00 ms delay every 20 Ticks(1106usual.tif). The delay data from '2015.11.06 02:52:36.628' to '2015.11.06 21:57:10.646' is stored in 'T151106.txt', there are 3 delay plots in the attachment too. x-axis is tick count, y-axis is delay ms.
The switch cache cannot hold data more than 1 sec, so if there was some data delay 1 sec to 6 secs, the client couldn't receive it. And the dedicated server has the dedicated hardware and networking resouces without recouce competition.
logged data from 'T151106.txt': date was from ITick, number -455 was delayTime.
2015.11.06 13:30:04.490,-455
2015.11.06 13:30:04.299,-263 // delayed behind tick 13:30:04.490
2015.11.06 13:30:04.490,-443
2015.11.06 13:30:05.324,-484
2015.11.06 13:30:05.049,-208 // delayed behind tick 13:30:05.049
2015.11.06 13:30:05.050,-206 // delayed behind tick 13:30:05.049
2015.11.06 13:30:06.411,-466
2015.11.06 13:30:06.357,-407 // delayed behind tick 13:30:06.411
2015.11.06 13:30:06.409,-444 // delayed behind tick 13:30:06.411
attachment:
'T151106.txt':
https://yunpan.cn/OcLVeuGhpFzcg7 (extract code:fc30)
1106allday.tif:
https://yunpan.cn/OcLVe3B3UKEtVb (extract code:3570)
1106maxdaly.tif:
https://yunpan.cn/OcLVet8jtgY2cE (extract code:2de8)
1106usual.tif:
https://yunpan.cn/OcLVeGrb6UHhMA (extract code:e8d5)