Пожалуйста, проясните, с какой точностью идут часы, используемые системой ФОРТС для временной разметки сделок. Меня интересует, синхронизируются ли часы с какими либо высокоточными часами реального времени (GPS, атомными часами или т.п.), как часто происходит синхронизация, какова погрешность времени на ФОРТС между периодами синхронизации...
不,不是的!
任何非MT5服务器时间都是不对的,因为我们通过MT5服务器进行交易!!!!。
添加
我非常希望MT5服务器本身的时间与交易所的时间是同步的。
http://forum.moex.com/viewtopic.asp?t=15432&topicdays=0&postorder=asc&start=0 的前两页有很多关于FORTS交易所时间同步的有趣信息,还给出了RTS交易所的ntp.rtsnet.ru NTP服务器的地址,所有经纪商可以通过它来同步时间。它没有提供给客户。的确,这是2009-2010年的情况。你的经纪人的技术支持可能会回答有关的经纪人现在是如何。
除了同步本身,我还希望看到应用一种 "平滑 "的时间转移算法,这样后续的事件就不会从经纪人那里得到以前的时间。这种机制不包括在NTP同步中。
http://forum.moex.com/viewtopic.asp?t=15432&topicdays=0&postorder=asc&start=0 的前两页包含了许多关于FORTS交易所时间同步的有趣信息,以及RTS交易所的ntp.rtsnet.ru NTP服务器的地址,所有经纪商可以通过它来同步他们的时间。它没有提供给客户。的确,这是2009-2010年的情况。你的经纪人的技术支持,可能会回答,因为现在在给定的经纪人。
除了同步本身,我还希望看到应用一种 "平滑 "的时间转移算法,这样后续的事件就不会从经纪人那里得到以前的时间。这种机制不包括在NTP同步中。
С уважением,
Глеб Кочнев
Техническая поддержка ПАО Московская Биржа
+7 (495) 733-95-07 | help@moex.com
谁能解释一下为什么这段代码不能准确地同步时间?
毕竟,市场前收到一个 "新 "的报价,有新的服务器(交易所)时间。
{
loc_time.wYear=0;
GetLocalTime(loc_time);
if(loc_time.wYear>0)
{
if((loc_time.wHour==9) && (loc_time.wMinute>=50) && (loc_time.wMinute<=59))
{
MqlTick curr_tick[1];
if(CopyTicks(symbol,curr_tick,COPY_TICKS_INFO,0,1)==1)
{
MqlDateTime sv_time;
TimeToStruct(curr_tick[0].time,sv_time);
if(!is_sync)
{
if((loc_time.wDayOfWeek==ushort(sv_time.day_of_week)) &&
(loc_time.wHour==ushort(sv_time.hour)))
{
long last_ping=long(NormalizeDouble((double(TerminalInfoInteger(TERMINAL_PING_LAST))/1000)/2,0));
long mls_time=long(curr_tick[0].time_msc%1000);
if((mls_time+last_ping)>999)
{
mls_time=long(curr_tick[0].time_msc)+last_ping;
if(!ConvertToTime(mls_time, loc_time)) return;
}
else
{
loc_time.wMinute = ushort(sv_time.min);
loc_time.wSecond = ushort(sv_time.sec);
loc_time.wMilliseconds=ushort(mls_time);
}
if(SetLocalTime(loc_time))
{
is_sync=true;
Print("Local time sync is done. Symbol = ", symbol, " Sync min = ", loc_time.wMinute,
" Sync sec = ", loc_time.wSecond, " Sync ms = ", loc_time.wMilliseconds);
}
}
}
}
}
else is_sync=false;
}
}
让我解释一下上面的代码是基于什么。
带有标志COPY_TICKS_INFO 的 CopyTicks() 函数。
标志返回带有服务器时间的最后报价(Bid, Ask),由于BID和/或ASK的变化将导致
OnBookEvent()事件,我们可以得到最后一次报价的时间。
检查
(loc_time.wHour==ushort(sv_time.hour)))
我们确保它是一个 "新鲜 "的报价。
为什么10:00以后,服务器时间不一致的几秒钟?
与同步的当地时间?
С уважением,
Глеб Кочнев
Техническая поддержка ПАО Московская Биржа
+7 (495) 733-95-07 | help@moex.com
你的关键问题是如何解决的:"我们非常希望MT5服务器的时间 本身与交易所的时间是同步的!"?
你的关键问题是如何解决的:"我非常希望MT5服务器的时间本身与交易所的时间是正确同步的。
没有解决,我怎么知道开发者如何将MT5服务器时间与交易所时间同步?
经纪人(Otkoytiye)自动写的,但具体怎么写的,只有开发者知道。
但他们并没有参与讨论。
添加
而这并不是我的关键问题!
我的问题是。
我怎样才能使我的本地时间 与MT5 FORTS服务器的时间尽可能准确地同步?
我怎样才能使我的本地时间尽可能准确地与MT5 FORTS服务器的时间同步?
敲击声。
OnTick不在盘前和清算时出现,而在清算时出现。
需要在竞标前进行同步。
OnTick不在盘前和清算中出现,而且时间
需要在竞标前进行同步。
我看不出有什么理由要在交易前同步时间。在11:32打开终端,它在第一个刻度上就同步了。
2017.01.13 10:00:03.969 Trades 'xxxxx': sell limit 1.00 ED-6.17 at 1.0813
2017.01.13 10:00:03.975 Trades 'xxxxx': accepted buy limit 2.00 ED-6.17 at 1.0642
2017.01.13 10:00:03.975 Trades 'xxxxx': accepted sell limit 1.00 ED-6.17 at 1.0813
2017.01.13 10:00:03.978 Trades 'xxxxx': failed buy limit 2.00 ED-6.17 at 1.0642 [Market closed]
2017.01.13 10:00:03.979 Trades 'xxxxx': failed sell limit 1.00 ED-6.17 at 1.0813 [Market closed]
经纪人的答复
2017.01.13 09:59:58.098 * request transfered to dealers * (buy limit 2.00 ED-6.17 at 1.0642)
2017.01.13 09:59:58.099 * request transfered to dealers * (sell limit 1.00 ED-6.17 at 1.0813)
2017.01.13 09:59:58.099 * request from '*' (buy limit 2.00 ED-6.17 at 1.0642)
2017.01.13 09:59:58.099 * request from '*' (sell limit 1.00 ED-6.17 at 1.0813)
2017.01.13 09:59:58.100 * reject (Market closed) for '*' (buy limit 2.00 ED-6.17 at 1.0642)(1.0641 / 1.0814 / 1.0695)
2017.01.13 09:59:58.100 * reject (Market closed) for '*' (sell limit 1.00 ED-6.17 at 1.0813)(1.0641 / 1.0814 / 1.0695)
而且我看到了它。
添加
而且我的终端一直在运行90天(在期货变化之前)。
添加
我的机器人不需要我的参与,有时我不去靠近
我有一个星期没有去看我的电脑。如果发生极端的事情,我就会收到一条短信。