[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 1070 1...106310641065106610671068106910701071107210731074107510761077...1145 新评论 Yury Reshetov 2010.12.23 19:35 #10691 dzhini: 但这并不奏效 :( 所以它在其他地方不起作用,或者我错过了什么 dzhini 2010.12.23 19:48 #10692 Reshetov: 所以它在其他地方不起作用,或者我错过了什么 我可以亲自去敲你的门吗? Yury Reshetov 2010.12.23 19:51 #10693 dzhini: 我可以亲自去敲你的门吗? 没有。私人信息仅用于个人交流。而且,代码中的错误必须公开讨论,这样其他人就不会犯同样的错误,或者有人可以随后分享一个现成的解决方案的链接。 Alexey Zhuravlev 2010.12.23 21:20 #10694 你好。这个简单的代码在工作中出现了错误。我自己也搞不清楚原因。 第一道命令打开,修改。 第二道命令打开,...不修改。保持它,直到它失效。 在日志中,它说。 "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(); } } [WARNING CLOSED!] Any newbie Ordermodify error 130 how much does a ivn 2010.12.23 21:24 #10695 下午好 如何创建一个能在不同框架下工作的测试器。 并将其贯穿于历史。 volshebnik 2010.12.24 10:06 #10696 早晨好! 请澄清一下。在优化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个优化的可靠性? volshebnik 2010.12.24 10:19 #10697 eddy: 循环不因某种原因而中断 在你的案例中,Break只有在条件满足时才会触发并中断循环。如果该条件没有得到满足,则循环无限。这样试试吧。 int sec=Seconds(); while(true) {if(sec!=Seconds()) // new sec { int ms=GetTickCount(); } break; } Roma 2010.12.24 10:27 #10698 volshebnik: 在 你的案例中 ,只有在满足条件的情况下,break 才起作用。 这就是为什么它在if()中。 prom18 2010.12.24 10:33 #10699 你好!我如何在终端改变一个符号的属性?它说,最低的停止水平是300。我无法测试该EA。 T-G 2010.12.24 10:47 #10700 Pro 要改变点差,例如有一个程序TakeMySpread,但如何或用什么来改变"止损水平",以测试EA 在不同条件下的情况。帮助! 1...106310641065106610671068106910701071107210731074107510761077...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
但这并不奏效 :(
所以它在其他地方不起作用,或者我错过了什么
我可以亲自去敲你的门吗?
你好。这个简单的代码在工作中出现了错误。我自己也搞不清楚原因。
第一道命令打开,修改。 第二道命令打开,...不修改。保持它,直到它失效。
在日志中,它说。
"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返回非布尔值!
下午好
如何创建一个能在不同框架下工作的测试器。
并将其贯穿于历史。
早晨好!
请澄清一下。在优化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个优化的可靠性?
循环不因某种原因而中断
在你的案例中,Break只有在条件满足时才会触发并中断循环。如果该条件没有得到满足,则循环无限。这样试试吧。
在 你的案例中 ,只有在满足条件的情况下,break 才起作用。
要改变点差,例如有一个程序TakeMySpread,但如何或用什么来改变"止损水平",以测试EA 在不同条件下的情况。帮助!