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

 
dzhini:
但这并不奏效 :(
所以它在其他地方不起作用,或者我错过了什么
 
Reshetov:
所以它在其他地方不起作用,或者我错过了什么
我可以亲自去敲你的门吗?
 
dzhini:
我可以亲自去敲你的门吗?
没有。私人信息仅用于个人交流。而且,代码中的错误必须公开讨论,这样其他人就不会犯同样的错误,或者有人可以随后分享一个现成的解决方案的链接。
 

你好。这个简单的代码在工作中出现了错误。我自己也搞不清楚原因。

第一道命令打开,修改。 第二道命令打开,...不修改。保持它,直到它失效。

在日志中,它说。

"01:23:22 MarkTrade开始进行测试

01:23:22 2010.01.29 00:00 MarkTrade EURUSD,H1: open #1 buy 1.00 EURUSD at 1.3965 ok

01:23:22 2010.01.29 00:00 MarkTrade EURUSD,H1: 修改 #1 在1.3965买入1.00 EURUSD sl: 1.3935 tp: 0.0000 ok

01:23:22 2010.01.29 00:28 测试员:止损 1号在1.3935(1.3935 / 1.3937)。

01:23:22 2010.02.01 00:00 MarkTrade EURUSD,H1: open #2 buy 1.00 EURUSD at 1.3877 ok

01:23:22 2010.05.05 13:17 MarkTrade:因为止损而停止。

01:23:22 2010.05.05 13:17 测试人员:2号订单已关闭

明白了我的错误!OrderSend返回非布尔值!

int start()
  {
  int total=OrdersTotal();
  if (total==0)
   {
      if (TimeHour(TimeCurrent())==00&&TimeMinute(TimeCurrent())==00)
      {
      Buy();
      }
   }
return(0);
  }
//////////////////////////
void Buy()
 {
 RefreshRates();
 if (OrderSend(Symbol(), OP_BUY, 1, NormalizeDouble(Ask,Digits), 0,0,0,"",123321,0,Blue)==true)
         {
           Modify();
         }
 }
/////////////////////////////
void Modify()
 {
    int total = OrdersTotal();
      for(int i=total-1;i>=0;i--)
       {
       OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
       if (OrderModify (OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-NormalizeDouble(30*Point,Digits),OrderTakeProfit(),0,CLR_NONE)== false) Modify();
       }
 }
 

下午好

如何创建一个能在不同框架下工作的测试器。

并将其贯穿于历史。

 

早晨好!

请澄清一下。在优化Expert Advisor时,我注意到在开启遗传算法的情况下,设置不同的TP会产生不同的结果,即如果我设置TP=400,我从1到400分步优化,然后我设置350,从1到350分步优化,以此类推直到TP=50。因此,事实证明,如果我只在TR=400的情况下运行,那么我就会 "跳过 "那些在较低的TP和较好的 结果! 是因为遗传因素吗?(The articlehttps://www.mql5.com/ru/articles/1347(Created:25.12.2009 Author:Rider) 说。"...遗传学当然是一个有用的东西,但要在合理的范围内。问题是,它的算法可能会开一个残酷的玩笑--从它的角度来看,一些有利的参数集将被确定,而所有进一步的优化将 "围绕它 "进行,直到最后。我想后果是什么是很清楚的。大多数真正好的 变体将在优化区域之外发挥作用,它们将被留在 "外部",不会出现在 "优化结果 "表中。

有几条出路。一个激进的解决方案是拒绝在优化中使用遗传算法。但由于这样或那样的原因,这并不总是一个好的解决方案。接下来的两个是一半的措施,但至少是一些。

- 进行优化不是一次,而是两次或更多次。 第一次,例如,通过 "平衡",下一次通过 "最大缩减 "或其他方式......"). 所以,为了不得到最好的结果,我应该用不同的TP+通过不同的 "可优化参数 "来运行它,再加上例如9个正向测试,每个测试有9个优化的可靠性?

 
eddy:

循环不因某种原因而中断

在你的案例中,Break只有在条件满足时才会触发并中断循环。如果该条件没有得到满足,则循环无限。这样试试吧。

int sec=Seconds();
       while(true) 
        {if(sec!=Seconds())          // new sec
          { int ms=GetTickCount(); }
       break;
        }
 
volshebnik:

你的案例,只有在满足条件的情况下,break 才起作用。

这就是为什么它在if()中。
 
你好!我如何在终端改变一个符号的属性?它说,最低的停止水平是300。我无法测试该EA。
 
Pro

要改变点差,例如有一个程序TakeMySpread,但如何或用什么来改变"止损水平",以测试EA 在不同条件下的情况。帮助!