MT5和速度在行动 - 页 21

 
fxsaber:

在战斗机器人中只留下了0-INT_MAX的变体。停止注意到了刹车。

然后你如何处理这段历史?

当然,我可以每个月改变子账户,将订单历史限制在几十万,但这不是解决办法 :)

 
Dmi3:

然后你如何处理这段历史?

当然,我可以每个月改变子账户,将订单历史限制在十万以内,但这不是答案 :)

  static ulong IsHistoryDeals( const long TimeMsc )
  {    
    ulong Res = 0;
/*    
    if (_B(::HistorySelect(TimeMsc / 1000, INT_MAX), 5))
    {
      const int Total = _B(::HistoryDealsTotal(), 1);
      
      if (Total > 100)
        ::Alert("::HistoryDealsTotal() = " + (string)Total + ", TimeMsc = " + NEWTICKS::TimeToString(TimeMsc));
                
      for (int i = Total - 1; !Res && (i >= 0); i--)
      {
        const ulong Ticket = _B(::HistoryDealGetTicket(i), 1);
        
        if ((_B(::HistoryDealGetInteger(Ticket, DEAL_TIME_MSC), 1) >= TimeMsc) &&
            (_B(::HistoryDealGetString(Ticket, DEAL_SYMBOL), 1) == _Symbol))        
          Res = Ticket;
      }
    }    
*/    
    if (_B(::HistorySelect(0, INT_MAX), 1)) // 
    {
      const int Total = _B(::HistoryDealsTotal(), 1);
      
      for (int i = Total - 1; !Res && (i >= NEWTICKS::PrevTotal); i--)
      {
        const ulong Ticket = _B(::HistoryDealGetTicket(i), 1);
        
        if (_B(::HistoryDealGetInteger(Ticket, DEAL_TIME_MSC), 1) < TimeMsc)
          break;
        else if (_B(::HistoryDealGetString(Ticket, DEAL_SYMBOL), 1) == _Symbol) 
          Res = Ticket;
      }
      
      NEWTICKS::PrevTotal = Total;
    }    
    
    return(Res);
  }
 
fxsaber:
目前我看到,在99%的情况下,必须使用HistorySelect(0,INT_MAX)。尽量不要使用其他选项。

也许不移动缓存的起点就足够了,也就是说,总是从同一个日期开始查询(是否为0并不重要)。

我们需要检查。

 
Andrey Khatimlianskii:

也许不移动缓存的起点就足够了,也就是说,总是从同一个日期开始查询(是否为0并不重要)。

它需要被检查。

有可能。做一个长期的测试员是很难的。

 
fxsaber:


结果。


每一次打勾都有一个问题。


SZY安装了Win10,LatencyMon显示一切正常。

你为什么要装作很天真呢?

你是想说明,一开始就杀死缓存是不对的,是你自己的错。这是你自己的错,你在一个大新闻上扼杀了缓存。而故意调整自己的立场,完全是你的问题。在MQL5环境中,你可以找到很多机会来杀死/删除一堆缓存。

我们不会帮助你--在任何编程语言中,都有大量的选项可以射中自己的脚和头。

如果你明确指出 "看--这是我故意在储藏室里投毒并开枪自杀",你会得到正常的对待。
 
Andrey Khatimlianskii:

也许不移动缓存的起点就足够了,也就是说,总是从同一个日期开始查询(是否为0并不重要)。

它需要被检查。

这正是我明确描述的情况。

如果你是按日期取样,不要试图对每个请求做不同的取样。并与到目前为止尝试提出来。

我们特别控制到位置,如果它超过或等于当前日期,就自动减少到INT_MAX

 
Renat Fatkhullin:

你是想表明,无论是以前还是现在,杀死缓存都不是常态。这是你自己的错,你扼杀了一个大新闻的缓存。而专门从位置上进行调整,完全是你的问题。在MQL5环境中,你可以找到很多机会来杀死/删除一堆缓存。

一个库使用了 来自TimeCurrent的HistorySelect。另一个是来自零。为什么我他妈要进入库的内部,发现它们在性能上互不兼容?

一个简洁的例子是弄清楚为什么无害的库可能会相互干扰。最后,参与你的批判性思维。

 
fxsaber:

一个库使用了 来自TimeCurrent的HistorySelect。另一个是来自零。为什么人们必须进入图书馆的内部,才能发现它们在性能上彼此不兼容?

一个简洁的例子是弄清楚为什么无害的库可能会相互干扰。最后打开你的批判性思维。

这真是太操蛋了,你用图书馆,把你的头关掉,这是你的个人问题。

 
Renat Fatkhullin:

使用图书馆,把头关上,这是你自己他妈的问题。

你为什么不自己去用Asm从头开始写一切呢?事实证明,当每个库都单独飞行时,它是可以的。但是一旦你开始同时使用这两样东西,你就会开始变得迟钝。

 

我们已经成功地向微软报告了错误,但我们从来没有写过或指责过他们,在他们的API上有大约N百万个机会可以杀死自己。

特别是在这个过程中使用其他人的图书馆。