当地时间和新勾股时间相差一分半钟。该怎么做。

 

我写了一个小的专家顾问,它显示了本地计算机时间 和新的tick time_msc(刚收到)的时间之间的最大差异。

粗略地说,它只测量TimeLocal()的毫秒数减去最后一次打勾的时间Tick.teme_msc 。使用SymbolInfoTick接收tick。

没怎么取笑它。市场概览中的24个字符。OnTimer()的调用周期为1毫秒。 我正在用SymbolInfoTick轮询所有符号。如果虱子是新的,我就进行测量。

我已经在晚间测试了专家顾问。以下是结果。

捕获的新蜱虫 46800

本地计算机时间和蜱虫的时间之间的最小时间 -7048毫秒(带减号)。

本地计算机时间和滴答时间之间的平均时间 -6819毫秒(含减号)。

本地计算机时间与滴答时间之间的最大时间差 -97082 毫秒(有加号)。


如何处理这个问题?

附加的文件:
 
pivomoe:

我写了一个小的专家顾问,显示本地电脑时间和新的tick time_msc(刚收到)的时间之间的最大差异。

粗略地说,它只测量TimeLocal()的毫秒数减去最后一次打勾的时间Tick.teme_msc 。使用SymbolInfoTick接收tick。

没怎么取笑它。市场概览中的24个字符。OnTimer()的调用周期为1毫秒。 我正在用SymbolInfoTick轮询所有符号。如果虱子是新的,我就进行测量。

我在晚间测试了专家顾问。以下是结果。

捕获的新蜱虫 46800

本地计算机时间和蜱虫的时间之间的最小时间 -7048毫秒(带减号)。

本地计算机时间与滴答时间之间的平均时间 -6819毫秒(含减号)。

本地计算机时间与滴答时间之间的最大时间差 -97082 毫秒(有加号)。


如何处理这个问题?

看了一下你的代码...

你做得一点都不对。

你需要将流动性最强的工具添加到市场观察中。

然后加上他们的钱盆。

而且,当OnBookEvent()触发时,复制1个tick(最后一个)将有时间,并立即采取本地时间 和比较。

还有,为什么要将本地时间与蜱虫的时间进行比较?

如果你需要知道是否可以进行交易,那么这里有一个函数

//+------------------------------------------------------------------+
//| Expert Check Market Time function                                |
//+------------------------------------------------------------------+
bool CheckMarketTime()
{
  MqlDateTime cur_time, sv_time;
  cur_time.year = 0;
  TimeTradeServer(cur_time); //Возвращает расчетное текущее время торгового сервера.
  if(cur_time.year > 0)
  {
    sv_time.year = 0;
    TimeCurrent(sv_time); //Возвращает последнее известное время сервера
    if(sv_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);
}
 

关于蜱虫相关性的话题,请看这个 带有评论的指标

Ping
Ping
  • www.mql5.com
Для торговли важным параметром является актуальность текущей цены. На него влияет множество факторов, самый популярный из которых - сетевой пинг между терминалом и торговым сервером. Но часто из виду упускается другой параметр: так называемый "внутренний пинг терминала" - дополнительный лаг котировок внутри самого терминала (платформы). Даже...
 
prostotrader:

看了一下你的代码...

你做得一点都不对。

你需要将流动性最强的工具添加到市场观察中。

然后,加上这些工具的市场深度。

而且,当OnBookEvent()触发时,复制1个tick(最后一个)将有时间,并立即采取本地时间和比较。

而一般来说,为什么要将本地时间与滴答时间进行比较?

为什么你需要做所有的事情,通过一个堆栈?只是为了使代码看起来更好?如果我在市场概览中有一个符号,这不意味着有一个持续的同步,我可以直接从缓存中访问该符号的最后4096个点(即即时)?在任何情况下,你的想法都需要被测试。我唯一不明白的是,"复制1个刻度(最后)"是什么意思,通过改变杯子来计算刻度?

一般来说,你为什么要把当地时间 与滴答时间进行比较?

根据昨天的价格做出交易决定并不是一个好主意。昨天在100点买入SBER,从算法的角度来看可能是个好主意,但今天你必须在80点卖出。

 
pivomoe:

为什么做任何事情,都要透过玻璃?只是为了使代码看起来更好?如果我有一个符号在市场概览中,这不意味着有一个持续的同步,我可以直接从缓存中访问该符号的最后4096个点(即即时)?在任何情况下,你的想法都需要被测试。我唯一不明白的是,"复制1个刻度(最后)"是什么意思,通过改变杯子来计算刻度?

一般来说,你为什么要把当地时间与滴答时间进行比较?

根据昨天的价格做出交易决定并不是一个好主意。昨天SBER在100可能是一个好主意,从算法的角度来看,但今天你应该在80卖出。

如果你自己知道一切,为什么还要问问题。

按你认为合适的方式行事。

 
prostotrader:

如果你自己知道一切,为什么还要问这个问题?

按你认为合适的方式行事。

我是在认真地问。在用MQL编程时,我意识到,无论是帮助还是终端提供的信息都不应该被信任。这不过是一个供思考的信息。有可能的是,tick给出的信息比SymbolInfoTick 更早(更稳定)。

顺便说一下,这是延迟了一分半钟的滴答声。

新MA 最大差异97082 SBPR-3.19当地时间 2019.03.15 21:05:31.842 滴答时间2019.03.15 21:03:54.760

在这一分钟的勾股史上没有任何犯罪行为。一分钟内就有两支烟。

 
pivomoe:

我是在认真地问。当我在MQL中编程时,我意识到无论是帮助还是终端提供的信息都不应该被信任。这不过是一个信息而已。有可能的是,tick给出的信息比SymbolInfoTick 更早(更稳定)。

顺便说一下,这是延迟了一分半钟的滴答声。

新MA 最大差异97082 SBPR-3.19 当地时间2019.03.15 21:05:31.842 滴答时间2019.03.15 21:03:54.760

在这一分钟的勾股史上没有任何犯罪行为。一分钟内就有两支烟。

你,完全忽略了这一点!

完全不关心你的本地时间。

只有交易服务器的时间是重要的!

交易时段,在这段时间内你可以进行交易。

交易时间不是由你的当地时间决定的。

和交易服务器的时间。

 
prostotrader:

你完全忽略了这一点!

你根本就不关心你的本地时间。

只有交易服务器的时间是重要的!

交易时段,在这段时间内你可以进行交易。

交易时间不是由你的当地时间决定的。

和交易服务器的时间。

fxsaber 理解我的意思,因为他明白无延迟地获得新点数的重要性,并给出了他的指标的链接,该指标与我的代码做同样的事情,但以图形的形式。它与交换时机没有关系。

我将尝试用我的手指来解释它。

在当地时间16:39.59.999,专家顾问从市场概览中接收每个符号的第一个刻度,并将其储存起来。

在16:40.00.000,专家顾问再次对每个符号的最后一个刻度进行投票。对于其中的一些人,我们得到了新的蜱虫。

大多数新的蜱虫都带有一个大约16:39.59.000的时间(time_msc)。但有一个人以16:38.30.335的成绩出现。

事实证明,在16:39.59.999(当地时间)没有嘀嗒声,但在一毫秒后突然出现,甚至是16:38:30,尽管通常只相差一秒。

在这种蜱虫发生后,不是一个好主意。假设我们要求从实际交易中的非流动性符号中获取最后一个刻度。我们得到了打钩的时间(time_msc)。

与当地时间相差两分钟。马上就会有这样的假设:有人已经知道90秒、60秒或30秒前发生的嘀嗒声,而我们的EA却不知道,可能会被打到限价单,比如说被惩罚。

这个问题必须得到解决。

 
pivomoe:

fxsaber 理解我,因为他理解无延迟获得新点数的重要性,并给了一个链接到他的指标,该指标做了与我的代码类似的事情,但以图形的形式。它与交换时机没有关系。

我将尝试用我的手指来解释它。

在当地时间16:39.59.999,专家顾问从市场概览中接收每个符号的第一个刻度,并将其储存起来。

在16:40.00.000,专家顾问再次对每个符号的最后一个刻度进行投票。对于其中的一些人,我们得到了新的蜱虫。

大多数新的蜱虫都带有一个大约16:39.59.000的时间(time_msc)。但有一个人以16:38.30.335的成绩出现。

事实证明,在16:39.59.999(当地时间)没有嘀嗒声,但在一毫秒后突然出现,甚至是16:38:30,尽管通常只相差一秒。

在这种蜱虫发生后,不是一个好主意。假设我们要求从实际交易中的非流动性符号中获取最后一个刻度。我们得到了打钩的时间(time_msc)。

与当地时间相差两分钟。马上就会有这样的假设:有人已经知道90秒、60秒或30秒前发生的嘀嗒声,而我们的EA并不知道,它可能会受到惩罚,比如说打到限价单。

这个问题必须得到解决。

你不需要 "对抗 "任何东西。 你应该了解终端中是如何接收刻度线的,并正确地了解

正确处理它们!

https://www.mql5.com/ru/code/16210

Лента всех сделок
Лента всех сделок
  • www.mql5.com
Хитрый усреднитель Hello Smart Эксперт усредняет убыточные позиции по определенному алгоритму. ColorJSatl_Digit Сглаженный быстрый цифровой фильтр JSatl с цветовой индикацией направления движения, с отображением последнего значения в виде ценовой метки и с возможностью округлять уровни...
 
prostotrader:

没有必要去 "对抗 "什么,而是要了解蜱虫是如何进入终端的,并正确地处理它们!

妥善处理它们!

你能最终分享这些知识吗?即使通过你的方法,你能更快地得到一个新的蜱虫事件,结果是你给了我一条鱼而不是一根鱼竿,即没有解释为什么会这样。

你怎么会有信心说你的方法比我的快? 我在文件中错过了什么吗?也许你已经通过实验确定,当订阅一个杯子时,终端更愿意给出新的刻度线?

我将在这个EA中实施切换,从我的方式捕捉新的点位到你的方式。

 
pivomoe:

你能最终分享这些知识吗?即使通过你的方法,你能更快地得到一个新的蜱虫事件,结果你给我的是一条鱼而不是一根鱼竿,即你没有解释为什么会这样。

你怎么会有信心说你的方法比我的快? 我在文件中错过了什么吗?也许你已经通过实验确定,终端通过订阅玻璃更容易给出新的蜱虫?

我将在这个EA中实施切换,从我的方式捕捉新的蜱虫到你的方式。

这里有带注释的源代码。

你觉得懒得去翻阅吗?或者什么是不清楚的?