堡垒。执法问题 - 页 107

 
Aleksey Vyazmikin:

问题是,所有的证据只能来自经纪人或证券交易所,这意味着我将无法得到它。因此,我将暂时继续处理这一情况。

得到了经纪人的答复

"

早上好,阿列克谢-维亚切斯拉夫维奇!开发商的答复是-----。

看起来是客户端的网络延迟,下面是交易服务器端的执行情况。

"

正如我从日志中理解的那样。

1.执行的时间大致相同

2.执行信息来自服务器,由程序处理,延迟了3秒

我提到的3秒的延迟听起来很奇怪,因为我的网络足够好,一直到电线上的路由器,通道没有过载。计算机核心并没有100%加载,但也许有些核心是100%加载。

然后事实证明。

1.开发者没有提供适当的任务优先级(线程)管理,这些线程应该由CPU优先处理,MT5核心可能被强迫总是占用负载最小的CPU核心。而在100%的负载下,降低指标和其他用户代码的计算的执行优先级。

2) MT5的日志不能被信任。

是的,现在你根本不能相信任何人。

在俄罗斯,对所做的事情的惩罚从来都是相称的。

你可以偷一盒火柴而入狱3年,但如果你一车一车地偷火柴。

你什么都没得到!

根据你的MT5日志。

2018.04.25 16:49:28.972 Trades  '***': exchange buy 10.00 Si-6.18 at market                                       - терминал отдал приказ серверу МТ5 на покупку
2018.04.25 16:49:29.186 Trades  '***': accepted exchange buy 10.00 Si-6.18 at market                              - сервер МТ5 проверил ордер и утвердил его правильность 
2018.04.25 16:49:29.387 Trades  '***': exchange buy 10.00 Si-6.18 at market placed for execution                  - сервер МТ5 отправмл ордер на Биржу
2018.04.25 16:49:30.002 Trades  '***': order #87849076 buy 10.00 / 10.00 Si-6.18 at market done in 1030.179 ms    - сервер МТ5 рапортовал, что ордер исполнился

而这些是

2018.04.25 16:49:30.405 Trades  '***': deal #48508923 buy 1.00 Si-6.18 at 62788 done (based on order #87849076)
2018.04.25 16:49:30.819 Trades  '***': deal #48508924 buy 1.00 Si-6.18 at 62788 done (based on order #87849076)
2018.04.25 16:49:31.032 Trades  '***': deal #48508925 buy 5.00 Si-6.18 at 62788 done (based on order #87849076)
2018.04.25 16:49:31.635 Trades  '***': deal #48508926 buy 1.00 Si-6.18 at 62789 done (based on order #87849076)
2018.04.25 16:49:32.058 Trades  '***': deal #48508927 buy 1.00 Si-6.18 at 62789 done (based on order #87849076)
2018.04.25 16:49:32.264 Trades  '***': deal #48508928 buy 1.00 Si-6.18 at 62789 done (based on order #87849076)

只是一个交易的记录本。

由以下人员添加

从SERVER的日志中可以看出,交易所的核心,都是即时执行的,延迟3-4毫秒,这个延迟是从经纪人到交易所的核心,因为广场2的交易是一个单独的流。

由服务器获得的数据不是实时的,而是 "切片"。

简而言之,你必须撼动经纪人和开发商的地位。

"网络延迟 "不是你或我的责任,而是他们的责任!

添加

每天早上(有时在下午)有几秒钟的时间没有执行命令

2018.04.26 10:02:35.202 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:36.208 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:37.222 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:38.236 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:39.250 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:40.263 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:41.277 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:42.291 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:43.305 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:44.319 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:45.333 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:46.348 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:47.362 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:48.376 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
2018.04.26 10:02:49.390 trader (Eu-6.19,M1)     ProcessOrders: Buy ордер в процессе удаления. Билет = 87870981
 
Aleksey Vyazmikin:

得到了经纪人的答复

是的,我认为证券交易所更好 )10ms执行一个订单。但无论如何也不会是2秒。
 
prostotrader:

"网络延迟 "不是与你我同在,而是与你我同在!

添加

每天早上(有时在下午)有几秒钟的时间没有执行命令

我想知道的是时间是在哪里设置的,在我的终端日志中是我的电脑时间,而他们有MT5服务器时间?

我已经得到了时间同步--每10分钟由适当的服务器(ntp2.stratum2.ru),我已经更换了主板上的电池,这意味着时间应该是准确的。但在屏幕上,我经常看到我的时钟上的时间已经过去了,但酒吧继续躁动 - 这就是它的原因?在交易所的时间是某种左旋的吗?

 
Aleksey Vyazmikin:

我还对指定的时间感兴趣 - 在我的终端日志中是我的电脑时间,而他们有MT5服务器的时间?

我只是每10分钟与相应的服务器(ntp2.stratum2.ru)同步一次时间,我已经更换了主板上的电池,所以时间应该是准确的。但在屏幕上,我经常看到我的时钟上的时间已经过去了,但酒吧继续躁动 - 这就是它的原因?交易所有某种剩余时间?

我不知道MQ是如何实现MT5服务器时间与Exchange时间同步的。

但由于我们在bmrz上进行交易,因此你的电脑或MT5服务器的时间并不重要,重要的是交易所的时间!

必须使用Exchange时间进行同步。

//+------------------------------------------------------------------+
//| Expert Check Market Time function                                |
//+------------------------------------------------------------------+
bool CheckMarketTime()
{
  sv_time.year = 0;
  TimeCurrent(sv_time); //Возвращает последнее известное время сервера
  if(sv_time.year > 0)
  {
    MqlDateTime cur_time;
    cur_time.year = 0;
    TimeTradeServer(cur_time); //Возвращает расчетное текущее время торгового сервера.
    if(cur_time.year > 0)
    {
      if((cur_time.day_of_week == int(FirstDay)) ||
         (cur_time.day_of_week == int(SecondDay))) return(false); //Проверка на выходные
      if(cur_time.day_of_week == sv_time.day_of_week)
      {
        ulong tr_time = sv_time.hour * 3600 + sv_time.min * 60 + sv_time.sec;
        if(((tr_time >= time_st_mon) && (tr_time < 50370)) ||  //10:00:01 - 13:59:30
           ((tr_time >= time_st_day) && (tr_time < 67470)) ||  //14:05:01 - 19:44:30 
           ((tr_time >= time_st_evn) && (tr_time < 85770)))    //19:05:01 - 23:49:30
        {
          return(true);
        }  
      }   
    }   
  }
  return(false);
} 
TimeCurrent(sv_time); //Возвращает последнее известное время сервера

也就是说,TimeCurrent()不是准确的时间

TimeTradeServer(cur_time); //返回交易服务器的估计当前时间

TimeTradeServer不是准确的时间

问题是,自去年以来,交易所一直在广播交易所交易所需的所有信息。

就在一些计算中。

在Plaza 2协议的规范中,它说

服务器时钟 服务台

下面是这个表格的用途



最初,MT5 "坐在 "2号广场的P2门上,P2门 "死亡",MQ需要

来快速重写服务器到CGate,但只要它已经写好并在工作了,为什么还要麻烦?

补充-纠正一些东西。

添加

延迟问题是由一个严重的错误造成的。

终端不能在1秒内发送超过60个交易(即2个广场2个登录)。

通过简单的计算,你可以确定什么 "速度 "应该是经纪人的

它连接着МТ5服务器和网关。

 
prostotrader:

我不知道MQ是如何实现MT5服务器时间与Exchange时间同步的。

但由于我们在bmrz上交易,因此你的电脑或MT5服务器的时间并不重要,重要的是交易所的时间!

同步工作必须在Exchange时间进行。

而实际上发生了什么?也许交易所有一个服务器来同步PC用户的时间?

 
Aleksey Vyazmikin:

实际发生了什么?也许交易所有一个服务器来同步用户的PC时间?

我在之前的帖子中添加了相关信息。

 
Aleksey Vyazmikin:

我也很想知道现在是什么时间--在我的终端日志中是我的电脑时间,而他们有MT5服务器时间?

这个脚本的输出是什么?

#define  PRINT(A) Print(#A + " = " + (string)(A))

string TimeMscToString( const ulong time )
{
  return(TimeToString(time / 1000, TIME_DATE | TIME_SECONDS) + "." + IntegerToString(time % 1000, 3, '0'));
}

void OnStart()
{
  if (HistorySelect(0, LONG_MAX))
  {
    PRINT(TimeMscToString(HistoryDealGetInteger(48508923, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508924, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508925, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508926, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508927, DEAL_TIME_MSC)));
    PRINT(TimeMscToString(HistoryDealGetInteger(48508928, DEAL_TIME_MSC)));
    
    PRINT(TimeMscToString(HistoryOrderGetInteger(87849076, ORDER_TIME_DONE_MSC)));
    PRINT(TimeMscToString(HistoryOrderGetInteger(87849076, ORDER_TIME_SETUP_MSC)));
  }
}
 
fxsaber:

这个脚本给出的是什么?

2018.04.26 16:59:58.686 Test_sr (Si Splice,M15) arrK=0.2021591274299704

这是什么?
 

 
Aleksey Vyazmikin:

2018.04.26 16:59:58.686 Test_sr (Si Splice,M15) arrK=0.2021591274299704

它是什么?

不知道,这与上面的脚本没有关系。显示它在发生问题的交易账户上的输出情况。