[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 240 1...233234235236237238239240241242243244245246247...537 新评论 Roma 2011.03.13 14:46 #2391 artmedia70: 这就是你能看到的所有区别吗? 我只看到了这些,因为我没有看其他的,看灰色代码不方便。 [删除] 2011.03.13 16:14 #2392 artmedia70: 也许这就是方法。: //=================================================================================== double CalculateProfit() { double ld_ret_0 = 0; for (int cnt = 0; cnt < OrdersTotal(); cnt++) { if (OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()!=Symbol()) continue; if (OrderType()>1) continue; if (OrderMagicNumber()==MagicNumber || OrderMagicNumber() == LMagN) ld_ret_0 += OrderProfit(); } else if (!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) { Print ("Func: CalculateProfit(), Select Order Error = ", GetLastError()); break; } } return (ld_ret_0); } //=================================================================================== 一切工作都很完美!!!!!!!!!!! Roma 2011.03.13 16:23 #2393 我的理解是否正确,如果我在测试器中优化了三个bool参数,它将运行它们的所有9个组合值? 也就是说。 1) bool1=true, bool2=true, bool3=true。2) bool1=true, bool2=true, bool3=false。 3) bool1=true, bool2=false, bool3=true。4) bool1=true, bool2=false, bool3=false等等。 Виктор 2011.03.13 16:27 #2394 eddy: 我的理解是否正确,如果你在测试器中优化了三个bool参数,它将运行它们的所有9种组合值......? 在我看来,在优化过程中,bool不能分步运行。我用int代替,从0到1运行。 Roma 2011.03.13 16:28 #2395 我以为你可以直接输入一个bool,它将运行真假变体。 我以前从未使用过优化,我正在熟悉这个话题 Виктор 2011.03.13 16:43 #2396 试一试吧。这对我来说并不奏效。 [删除] 2011.03.14 00:10 #2397 daytrader19: 亲爱的同事们, 我在 MQL编程方面 还是一个完全的 "傻瓜",我最近才开始研究这个话题。但我已经开始写我的第一个专家顾问,或者至少我试图这样做。 在 本主题的第182页 ,我已经列出了该EA应遵循的交易标准。请看它是怎么说的(页面上的最后一个帖子)。我已经挣扎了三个星期,我仍然不能在这里写出负责交易标准的那部分代码。我读过专门讨论这个问题 的教程章节,但在这个特定的案例中,它没有帮助我。 在我的编程战斗中,我已经写了几十种这部分代码的变体,但没有一种能正常工作。显然我没有足够的知识, 我不能那么快 掌握MQL 。总之,这里是其中一个代码变体,它的工作原理,至少是近似于我希望的那样。 //+-------------------------------------------------------------------------------------+ //| Расчет значений технических индикаторов с формированием сигналов для позиций | //+-------------------------------------------------------------------------------------+ void GetSignal() { Signal = 0; // - 1 - == Получение значений индикаторов ============================================== double SAR = iSAR(Symbol(), 0, SARStep, SARMaximum, 0); double EnvUp = iEnvelopes(Symbol(), 0, EnvPeriod, EnvMethod, EnvShift, EnvPrice, EnvDeviation, MODE_UPPER, 1); double EnvDn = iEnvelopes(Symbol(), 0, EnvPeriod, EnvMethod, EnvShift, EnvPrice, EnvDeviation, MODE_LOWER, 1); double StochM = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod, StochPrice, MODE_MAIN, 1); double StochS = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod, StochPrice, MODE_SIGNAL, 1); // - 1 - == Окончание блока ============================================================= // - 2 - == Генерация сигнала =========================================================== if (SAR < Low[1]) { Signal = 3; // Закрытие SELL if (StochM > StochS && StochM >= 80 && StochS >= 80 && High[1] >= EnvUp && SAR < Open[1]) Signal = 1; // Открытие BUY } if (SAR > High[1]) { Signal = 4; // Закрытие BUY if (StochM < StochS && StochM <= 20 && StochS <= 20 && Low[1] <= EnvDn && SAR > Open[1]) Signal = 2; // Открытие SELL } // - 2 - == Окончание блока ============================================================= } 我知道代码都是歪歪斜斜的,一般来说 ,海湾 的位置 ,卖出的位置 也 是混在一起。 但这是代码的唯一变体,当随机指数和包络线一起交易时,不会相互忽视。同时,由于某些原因,抛物线信号在交易中不被考虑。总 之,请不要因为这样的 "屁股 "骂我太多,我很清楚代码是不正确的。 请帮助我,请修复我的专家顾问的代码。我对它感到很难受。我已经实施了更容易的策略(Mooving + Momentum;Mooving +RSI),但我不能用这个策略来做。请帮助。请重写所有错误的线条,使我的EA按照我在第182页上 描述的规则进行交易。我真的需要它。 P.S.: 我没有编写专家顾问的全部代码,因为我使用了现成的 MQL模板。 我想我知道了我的主要(也许不是唯一)错误是什么。我的交易标准中的所有条件都是用逻辑上的 "和 "来组合。就我的理解,这意味着所有条件必须同时满足。但根据系统规则,这是不正确的。 Envelope和Stochastic的信号应该是同步的 - 是的。但抛物线应该 在收到包络线和随机 指数的信号后确认开仓 。甚至可能发生(这很正常),它在5-10个小节后确认。 问题:如何将这个 "后 "放到代码中? 如果可以的话,请给我看一个我的代码的例子。 请帮助我。我已经对这些交易标准感到疲惫不堪。 Alexander 2011.03.14 03:10 #2398 eddy: 我的理解是否正确,如果测试者优化了三个bool参数,它将运行它们的所有9种组合值? 即 2的三次方一直是8:-) Роман 2011.03.14 03:16 #2399 daytrader19: 我想我已经知道我的主要(也许不是唯一)错误是什么了。我的交易标准中的所有条件都是用一个逻辑上的 "和 "凑在一起的。根据我的理解,这意味着所有条件必须同时满足。但根据系统规则,这是不正确的。 Envelope和Stochastic的信号应该是同步的 - 是的。但抛物线应该 在收到包络线和随机 指数的信号后确认开仓 。它甚至可能发生(这很正常),它可以在5-10个柱子后确认头寸。 我的问题是:我如何在我的代码中粘贴这个 "后"? 如果可能的话,请给我看一个我的代码的例子。 请帮助我。我只是对这些交易标准感到疲惫。 那就试试吧,我已经把你的代码固定在这一页上了--自己没有检查--注意注释。 均如第182页所述。 bool Buy_signal=false, Sell_signal=false; // эту строку разместить в глобальные переменные эксперта!!!!!!!!!! //+-------------------------------------------------------------------------------------+ //| Расчет значений технических индикаторов с формированием сигналов для позиций | //+-------------------------------------------------------------------------------------+ void GetSignal() { Signal = 0; // - 1 - == Получение значений индикаторов ============================================== double SAR = iSAR(Symbol(), 0, SARStep, SARMaximum, 1); // тут тоже правки в коде - вместо "0"-го используем первый бар double EnvUp = iEnvelopes(Symbol(), 0, EnvPeriod, EnvMethod, EnvShift, EnvPrice, EnvDeviation, MODE_UPPER, 1); double EnvDn = iEnvelopes(Symbol(), 0, EnvPeriod, EnvMethod, EnvShift, EnvPrice, EnvDeviation, MODE_LOWER, 1); double StochM1 = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod, StochPrice, MODE_MAIN, 1); double StochS1 = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod, StochPrice, MODE_SIGNAL, 1); double StochM2 = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod, StochPrice, MODE_MAIN, 2); double StochS2 = iStochastic(Symbol(), 0, StochK, StochD, StochSlowing, StochMethod, StochPrice, MODE_SIGNAL, 2); // - 1 - == Окончание блока ============================================================= // - 2 - == Генерация сигнала =========================================================== if (SAR > High[1]) {Buy_signal=false; Sell_signal=false; // сбрасываем флаги условий открытия по стохастику и энвелопсу Signal = 4;} // Закрытие BUY if (SAR < Low[1]) {Buy_signal=false; Sell_signal=false; Signal = 3;} // Закрытие Sell if ( StochM2 < StochS2 && StochM1 > StochS1 && StochM1 <= 20 && Low[1] <= EnvDn) // ставим флаги условий открытия по стохастику и энвелопсу в лонг { Buy_signal=true; Sell_signal=false; } if (SAR < Low [1] && Buy_signal==true && Sell_signal==false) Signal = 1; // Открытие BUY if ( StochM2 > StochS2 && StochM1 < StochS1 && StochM1 >= 80 && High[1] >= EnvUp) // ставим флаги условий открытия по стохастику и энвелопсу в шорт { Buy_signal=false; Sell_signal=true; } if (SAR > High [1] && Buy_signal==false && Sell_signal==true) Signal = 2; // Открытие SELL // - 2 - == Окончание блока ============================================================= } Роман 2011.03.14 03:17 #2400 Roger: 2的三次方一直是8:-) 不错的观察:-))) 1...233234235236237238239240241242243244245246247...537 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这就是你能看到的所有区别吗?
也许这就是方法。:
我的理解是否正确,如果我在测试器中优化了三个bool参数,它将运行它们的所有9个组合值? 也就是说。
1) bool1=true, bool2=true, bool3=true。我的理解是否正确,如果你在测试器中优化了三个bool参数,它将运行它们的所有9种组合值......?
我以为你可以直接输入一个bool,它将运行真假变体。
我以前从未使用过优化,我正在熟悉这个话题
亲爱的同事们, 我在 MQL编程方面 还是一个完全的 "傻瓜",我最近才开始研究这个话题。但我已经开始写我的第一个专家顾问,或者至少我试图这样做。
在 本主题的第182页 ,我已经列出了该EA应遵循的交易标准。请看它是怎么说的(页面上的最后一个帖子)。我已经挣扎了三个星期,我仍然不能在这里写出负责交易标准的那部分代码。我读过专门讨论这个问题 的教程章节,但在这个特定的案例中,它没有帮助我。
在我的编程战斗中,我已经写了几十种这部分代码的变体,但没有一种能正常工作。显然我没有足够的知识, 我不能那么快 掌握MQL 。总之,这里是其中一个代码变体,它的工作原理,至少是近似于我希望的那样。
我知道代码都是歪歪斜斜的,一般来说 ,海湾 的位置 ,卖出的位置 也 是混在一起。 但这是代码的唯一变体,当随机指数和包络线一起交易时,不会相互忽视。同时,由于某些原因,抛物线信号在交易中不被考虑。总 之,请不要因为这样的 "屁股 "骂我太多,我很清楚代码是不正确的。
请帮助我,请修复我的专家顾问的代码。我对它感到很难受。我已经实施了更容易的策略(Mooving + Momentum;Mooving +RSI),但我不能用这个策略来做。请帮助。请重写所有错误的线条,使我的EA按照我在第182页上 描述的规则进行交易。我真的需要它。
P.S.: 我没有编写专家顾问的全部代码,因为我使用了现成的 MQL模板。
我想我知道了我的主要(也许不是唯一)错误是什么。我的交易标准中的所有条件都是用逻辑上的 "和 "来组合。就我的理解,这意味着所有条件必须同时满足。但根据系统规则,这是不正确的。 Envelope和Stochastic的信号应该是同步的 - 是的。但抛物线应该 在收到包络线和随机 指数的信号后确认开仓 。甚至可能发生(这很正常),它在5-10个小节后确认。
请帮助我。我已经对这些交易标准感到疲惫不堪。
我的理解是否正确,如果测试者优化了三个bool参数,它将运行它们的所有9种组合值? 即
2的三次方一直是8:-)
我想我已经知道我的主要(也许不是唯一)错误是什么了。我的交易标准中的所有条件都是用一个逻辑上的 "和 "凑在一起的。根据我的理解,这意味着所有条件必须同时满足。但根据系统规则,这是不正确的。 Envelope和Stochastic的信号应该是同步的 - 是的。但抛物线应该 在收到包络线和随机 指数的信号后确认开仓 。它甚至可能发生(这很正常),它可以在5-10个柱子后确认头寸。
请帮助我。我只是对这些交易标准感到疲惫。
那就试试吧,我已经把你的代码固定在这一页上了--自己没有检查--注意注释。
均如第182页所述。
2的三次方一直是8:-)
不错的观察:-)))