[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 963

 
Techno:
你必须找到另一种方法来分析,图形函数是非常慢的。
我已经按照你说的把所有东西都去掉了,速度提高了60-70%,但现在更难看出哪个订单在图表上的位置了。而我还没有应用伊戈尔的建议与如果。
 
volshebnik:
我按你说的把所有东西都去掉了,速度提高了60-70%,但现在更难看出哪个订单在图表上的位置。而我还没有应用伊戈尔的建议与如果。
如果不会有很大的性能,只有几个时钟周期。确切地告诉我们你想在图表上显示什么,我们可能会考虑如何在不损失性能的情况下做到这一点。
 
Techno:
如果不会给你带来太多的性能,只是几个计算的结果。确切地告诉我们你想在图上放什么--我们可以考虑如何在不损失性能的情况下做到这一点 。


如果(NormalizeDouble(Bid,Digits)<=NormalizeDouble(TL_TPdown[B],Digits)

这个问题甚至不是关于数字的,而是关于计算的优化--在mql4中有关于条件的完整计算的信息--它已经在论坛上反复写过了

在mql5中,已经实现了对条件的简化计算。

 
Techno:
如果不会给你带来多少性能,只是几个时钟周期。确切地告诉我你想在图上放什么,我们可以考虑如何在不损失性能的情况下做到这一点。
理想情况下,我需要市场订单的数量,以及它们在开盘时与其他订单的区别标志。据我所知,你可以实时设置它们,并在测试过程中删除它们。这只是更方便,而且--更快地看到哪些是正确打开的,哪些是没有的。
 
IgorM:


如果(NormalizeDouble(Bid,Digits)<=NormalizeDouble(TL_TPdown[B],Digits)

这个问题甚至不是关于数字的,而是关于计算的优化--在mql4中有关于条件的全面计算的信息--它已经在论坛上反复写过了

在mql5中,已经实现了对条件的简化计算

是的,这是可以理解的,但通过优先级,我们必须首先确定是什么阻止了专家顾问的测试...
 
Techno:
是的,我明白了,但在优先级上应首先决定是什么阻止了专家的测试...


好吧,如果按优先顺序,这足以使EA的副本--在副本中删除所有的Comment()、Print()和图形,并将所有东西放入测试器进行优化,找到近似的参数,开始逐年测试,然后将最终版本与图形组合起来。

我是这样做的

 
早上好,我仍在试图找出与当前条形图有关的最后一笔订单的关闭时间。 我的想法是,如果在当前条形图中关闭了头寸,则禁止EA进行交易。在某些情况下,它在止损后立即打开一个新的订单。如果我看一下我所使用的代码,它似乎不是正确的。我想事先感谢你。
for(int e1=1;e1<OrdersHistoryTotal();e1++)
   {
    if(OrderSelect(e1-1,SELECT_BY_POS,MODE_HISTORY)==true)
      {
         if(OrderSymbol()!=Symbol()){continue;}
         int Cl_time=OrderCloseTime();
         if(Cl_time>Time[0])
            {
              Trade=False; 
            }
            else
            {
             Trade=true;
            }
      }
   }
 
IgorM:


该图表肯定会放缓

不要忘了,在mql4中,if()中有一个完整的条件计算,也就是说,如果你有几个&&,那么所有的值都会被计算和比较,虽然一个假的就足以让&&的结构变成假的。

可以把它分成几个if()

在这种情况下,在第一个if()没有被执行之后,下面的整个结构将不会被考虑。

伊戈尔,谢谢你! 我在这里错过了一些东西......(((((,我没有跟踪所有的东西(你的变体给了35%的速度提升。与 "清洁 "图形加在一起,如果速度几乎翻了一番--大约125-130%--这已经很了不起了。
 
为什么测试者的速度在第三年结束时有所下降?
 
volshebnik:
为什么测试员的速度在第三年结束时下降?
是否存在历史订单的 超标?
原因: