来自一个 "傻瓜 "的问题 - 页 147 1...140141142143144145146147148149150151152153154...277 新评论 Yedelkin 2012.05.15 17:44 #1461 alph:如果价格收于移动平均线之下,且动量低于平均线,则开出卖出交易。在买入交易中,情况正好相反。 事实证明,如果条件没有得到满足,那么就不需要采取行动。如果是这样,那么在函数的最后一行写上return(false),看看它是否能一步步满足你的战术。 alph 2012.05.15 18:09 #1462 Yedelkin: 那么,如果不满足条件,你就不需要做任何事情?如果是这样,那么在函数的最后一行写上return(false),看看它是否能一步步满足你的战术。 是在void OnTick()中吗? [删除] 2012.05.15 18:25 #1463 alph: 是在void OnTick()中吗?显然,现在是时候了。但我个人对这种不可返回的结果感到困惑,它迟早会被转换为所需的形式。让我困惑的是bool timeOntrade(int TradeHour) { MqlDateTime timeOntrade; Yedelkin 2012.05.15 18:31 #1464 alph: 这是在void OnTick()中吗? 就在这里。bool timeOntrade(int TradeHour) { MqlDateTime timeOntrade; TimeTradeServer(timeOntrade); if(timeOntrade.hour!=TradeHour) return(false); timeOntrade.hour= 0; timeOntrade.min = 0; timeOntrade.sec = 1; if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true); return(false); }试着把假的放在最后一行,看看这种方法是否与你所选择的战术一致。也就是说,"滚动 "专家顾问的工作要考虑到这种变化。 alph 2012.05.15 18:34 #1465 Interesting: 我说的显然是timeOntrade。 在timontrade中,只是在最后的false不会得到预期的结果,但在我的变体中,它真的按时间打开交易,经过测试。我在论坛的某个地方得到的带有时钟的代码版本是这样的,把它拧进去后就能用了。只有我通过timontrade二号设法搞到的那几分钟。我敢肯定,完整的代码至少应该缩短三分之一。 [删除] 2012.05.15 18:39 #1466 alph: 在timeOntrade中,只是在结尾处作假并不能得到理想的结果,但在我的变体中,按小时开仓的交易是真实的,经过测试。 如果timeOntrade.hour=5会怎样? alph 2012.05.15 18:41 #1467 Interesting: 如果timeOntrade.hour=5会怎样?这笔交易当然不会完成,因为在...//转为开放的依据MqlRates rt[1];如果(CopyRates(Symbol(),MyTframe,0,1,rt)<0) 返回。if(rt[0].tick_volume>1) return;如果(!PositionSelect(_Symbol)&& (timeOntrade(4) || ((timeOntrade(15) || timeOntrade(16))&& timeOntrade2(0)))))Open();//......只在指定时间发送打开 Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных www.mql5.com Стандартные константы, перечисления и структуры / Структуры данных / Структура исторических данных - Документация по MQL5 Yedelkin 2012.05.15 18:44 #1468 alph: 在timontrade中,最后正是假的,不会产生预期的结果...... 那你自己看看你的代码吧。if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16)这个条件在目前的形式下是无用的。因为无论它产生什么结果,你的bool timeOntrade()函数都会返回true。 [删除] 2012.05.15 18:46 #1469 alph,这就是Yedelkin所说的。这些函数的变体在我们心中是相同的bool timeOntrade(int TradeHour) { MqlDateTime timeOntrade; TimeTradeServer(timeOntrade); if(timeOntrade.hour!=TradeHour) return(false); timeOntrade.hour= 0; timeOntrade.min = 0; timeOntrade.sec = 1; if(timeOntrade.hour==4 || timeOntrade.hour==15 || timeOntrade.hour==16) return(true); return(true); } bool timeOntrade(int TradeHour) { MqlDateTime timeOntrade; TimeTradeServer(timeOntrade); if(timeOntrade.hour!=TradeHour) return(false); timeOntrade.hour= 0; timeOntrade.min = 0; timeOntrade.sec = 1; return(true); } alph 2012.05.15 18:48 #1470 Interesting:顺便说一下,在这个变体中,测试者的利润结果很小,但在我看来,比例是很好的。现在我在没有时间参考的更大的时间框架上进行测试,也许结果会更好。 1...140141142143144145146147148149150151152153154...277 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
如果价格收于移动平均线之下,且动量低于平均线,则开出卖出交易。在买入交易中,情况正好相反。
那么,如果不满足条件,你就不需要做任何事情?如果是这样,那么在函数的最后一行写上return(false),看看它是否能一步步满足你的战术。
是在void OnTick()中吗?
显然,现在是时候了。
但我个人对这种不可返回的结果感到困惑,它迟早会被转换为所需的形式。
让我困惑的是
这是在void OnTick()中吗?
就在这里。
试着把假的放在最后一行,看看这种方法是否与你所选择的战术一致。也就是说,"滚动 "专家顾问的工作要考虑到这种变化。
我说的显然是timeOntrade。
在timeOntrade中,只是在结尾处作假并不能得到理想的结果,但在我的变体中,按小时开仓的交易是真实的,经过测试。
如果timeOntrade.hour=5会怎样?
这笔交易当然不会完成,因为在...
//转为开放的依据
如果(!PositionSelect(_Symbol)&& (timeOntrade(4) || ((timeOntrade(15) || timeOntrade(16))&& timeOntrade2(0)))))Open();//
......只在指定时间发送打开
在timontrade中,最后正是假的,不会产生预期的结果......
alph,这就是Yedelkin所说的。
这些函数的变体在我们心中是相同的
顺便说一下,在这个变体中,测试者的利润结果很小,但在我看来,比例是很好的。
现在我在没有时间参考的更大的时间框架上进行测试,也许结果会更好。