关闭的问题,请帮助 - 页 3 123456789 新评论 Ben 2010.03.12 23:59 #21 大家好 在大家的帮助下,症状已经改变。 语句....if(OrderSelect(index, SELECT_BY_TICKET))已被改为.SELECT_BY_POS。这段代码离正确还很远。该程序卖出后在一个点后立即关闭。结果显示,没有SL或TP。因此,为了进行理智的检查,我在OrderSend中插入了SL和TP(500)一个。没有变化。所有的执行都在1或2点之内。这越来越有趣了。还不知道为什么!在一个4小时的柱子上发生了超过一千次的执行。 我将进行研究,但欢迎任何帮助。 Ben 2010.03.13 00:02 #22 你好,艾斯 我刚刚发了帖子,发现你在我前面发了帖子。你有什么打算? AIRAT SAFIN 2010.03.13 00:20 #23 你好,,我想稍微重新设计一下程序,以便更好地理解逻辑,我希望这个程序能让你满意。 Ben 2010.03.13 01:42 #24 Ais wrote>> 你好,,我想稍微重新设计一下程序,以便更好地理解逻辑,我希望程序能够请你 你好,Ais 你太客气了。谢谢你。你的时间很宝贵。我相信重新设计会让你满意。 从我的上一篇文章开始,我已经解开了一部分的问题。程序会关闭,但不是我想的那样。 关闭问题的关键在于,我没有正确地初始化ATR。 我将向你展示关闭卖出头寸前后的情况。 然后....if (OrderClosePrice() >= OrderOpenPrice() + (ATR*2) 现在.....if (OrderClosePrice() >= OrderOpenPrice() + (40*Point)...这将关闭卖出头寸。 这不是我想要的程序操作方式。但为了测试的目的,我插入了新的代码。 它有助于证明问题出在ATR上。这一定是我没有正确地初始化ATR。 为了进一步测试,我尝试插入iATR,而不是试图建立一个名为ATR的新变量。 我向你展示我是如何尝试编码的。 如果(OrderClosePrice() >= OrderOpenPrice() + ((iATR(NULL,0,20,1)*2)*Point) 这也没能成功。 再次感谢您。 我期待着你的答复。 AIRAT SAFIN 2010.03.13 02:19 #25 https://www.mql5.com/ru/forum/124482/page9#284380 Ben 2010.03.14 15:36 #26 Ais wrote>> https://www.mql5.com/ru/forum/124482/page9#284380 你好,艾斯 谢谢你的建议。使用365(年度)与my_method的想法是很好的。用较短的时间框架进行测试 应该只是为了方便。 我还有很多东西要学。我终于知道了如何插入ATR,但我无法将其相乘。例子如下。 在这个时候,这是我所拥有的......if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1)))// =硬性止损 这确实有效,但不是我想要的 我正在努力实现...................if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1) )*2 ) 。 这并不奏效。我希望它能向你和其他人展示我的想法。iATR是乘以2的。 对此有什么建议吗?一旦这个问题解决了,我也可以把进入位置的ATR减半。 还有一个方法我尝试过,但没有成功......if(OrderClose - OrderOpenPrice - (iATR(NULL,0,20,1)*2)) <= 0) 再次感谢您的时间。我相信有很多人都在敲你的门,寻求智慧。 干杯 AIRAT SAFIN 2010.03.14 15:56 #27 你好,Huckleberry,,我只留下做开仓功能。,现在我正试图理解利润固定的逻辑。,在你的OrderSend()中缺少止损和接盘,它是好的,但关闭的命令只在亏损的情况下运行。,我想知道你对新程序风格的理解的意见,https://www.mql5.com/en/forum/124521/page2。,暂时再见,:) Ben 2010.03.14 17:56 #28 你好,Ais 谢谢你的答复。 让我解释一下没有止损或止盈背后的原因。 由于没有在OrderSend中插入SL和TP,SL在不同的位置,在expression if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1)) 虽然这确实有效,但它并不完全是正确的SL。这个例子列在我的最后一篇文章.... if (OrderClose >= OrderOpenPrice + (iATR(NULL,0,20,1))*2) 在上述表达式中,iATR的移动可能会在一个柱子和另一个柱子之间变化。通过使用带有SL和TP的OrderSend,我不能利用这种转变的优势。 每个函数 在这个时候都能工作,只是我需要学习如何调整这些函数。 谢谢你的观察和问题。 谢谢 AIRAT SAFIN 2010.03.14 18:52 #29 没有SL和TP也可以工作。,但我们仍然需要在盈利的情况下关闭订单的条件。,请看看更新的函数 "iSignalClose", https://www.mql5.com/en/forum/124521/page2。,现在它当然是虚拟SL的条件。,但我们仍然需要虚拟TP的条件。,等待您的答复。:) AIRAT SAFIN 2010.03.15 03:48 #30 我为虚拟TP插入了与SL条件相似的参数,但使用了另一个因素。 今后将很容易和方便地优化这些参数。 为了优化,将理想的参数声明为 "extern"。 例子。 ////////////////////////////////////////////////////////////////////< 3> // < 1.1. Data : Input > //< > // //< > // < 1.1. Input 7 = 4 i 3 d - s > //< > // < 1. Strategy 4 = 2 i 2 d - s /> //< > // < 2. Trading 3 = 2 i 1 d - s /> //< > // </1.1. Input 7 = 4 i 3 d - s > //< > // //< > // < 1. Strategy 4 >=========================================//< > int iBasePeriod = 20 ; //< > int iBaseBar = 1 ; //< > extern double dFactorTP = 2.0 ; //< > extern double dFactorSL = 2.0 ; //< > // </ 1. Strategy 4 >=========================================//< > // //< > // < 2. Trading 3 >==========================================//< > int iSlippage = 1 ; //< > int iMagic = 0 ; //< > double dLots = 0.1 ; //< > // </ 2. Trading 3 >==========================================//< > // //< > // //< > // //< > // </1.1. Data : Input > //< > 优化后,将原来的参数值改为优化后的参数值,并删除 "extern "声明。 A系统 "的优化样本。冠军2008最终编辑 "也被称为 "ACB6",https://www.mql5.com/en/forum/112633/page7#276861。 附加的文件: 1e.txt 46 kb 1r.txt 49 kb 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
大家好
在大家的帮助下,症状已经改变。
语句....if(OrderSelect(index, SELECT_BY_TICKET))已被改为.SELECT_BY_POS。这段代码离正确还很远。该程序卖出后在一个点后立即关闭。结果显示,没有SL或TP。因此,为了进行理智的检查,我在OrderSend中插入了SL和TP(500)一个。没有变化。所有的执行都在1或2点之内。这越来越有趣了。还不知道为什么!在一个4小时的柱子上发生了超过一千次的执行。
我将进行研究,但欢迎任何帮助。
你好,艾斯
我刚刚发了帖子,发现你在我前面发了帖子。你有什么打算?
你好,
,我想稍微重新设计一下程序,以便更好地理解逻辑
,我希望这个程序能让你满意。
你好,
,我想稍微重新设计一下程序,以便更好地理解逻辑
,我希望程序能够请你
你太客气了。谢谢你。你的时间很宝贵。我相信重新设计会让你满意。
从我的上一篇文章开始,我已经解开了一部分的问题。程序会关闭,但不是我想的那样。
关闭问题的关键在于,我没有正确地初始化ATR。
我将向你展示关闭卖出头寸前后的情况。
然后....if (OrderClosePrice() >= OrderOpenPrice() + (ATR*2)
现在.....if (OrderClosePrice() >= OrderOpenPrice() + (40*Point)...这将关闭卖出头寸。
这不是我想要的程序操作方式。但为了测试的目的,我插入了新的代码。
它有助于证明问题出在ATR上。这一定是我没有正确地初始化ATR。
为了进一步测试,我尝试插入iATR,而不是试图建立一个名为ATR的新变量。
我向你展示我是如何尝试编码的。
如果(OrderClosePrice() >= OrderOpenPrice() + ((iATR(NULL,0,20,1)*2)*Point)
这也没能成功。
再次感谢您。
我期待着你的答复。
https://www.mql5.com/ru/forum/124482/page9#284380
https://www.mql5.com/ru/forum/124482/page9#284380
谢谢你的建议。使用365(年度)与my_method的想法是很好的。用较短的时间框架进行测试
应该只是为了方便。
我还有很多东西要学。我终于知道了如何插入ATR,但我无法将其相乘。例子如下。
在这个时候,这是我所拥有的......if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1)))// =硬性止损
这确实有效,但不是我想要的
我正在努力实现...................if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1) )*2 ) 。
这并不奏效。我希望它能向你和其他人展示我的想法。iATR是乘以2的。
对此有什么建议吗?一旦这个问题解决了,我也可以把进入位置的ATR减半。
还有一个方法我尝试过,但没有成功......if(OrderClose - OrderOpenPrice - (iATR(NULL,0,20,1)*2)) <= 0)
再次感谢您的时间。我相信有很多人都在敲你的门,寻求智慧。
干杯
你好,Huckleberry,
,我只留下做开仓功能。
,现在我正试图理解利润固定的逻辑。
,在你的OrderSend()中缺少止损和接盘,它是好的,但关闭的命令只在亏损的情况下运行。
,我想知道你对新程序风格的理解的意见,https://www.mql5.com/en/forum/124521/page2。
,暂时再见,
:)
你好,Ais
谢谢你的答复。
让我解释一下没有止损或止盈背后的原因。
由于没有在OrderSend中插入SL和TP,SL在不同的位置,在expression
if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1))
虽然这确实有效,但它并不完全是正确的SL。这个例子列在我的最后一篇文章....
if (OrderClose >= OrderOpenPrice + (iATR(NULL,0,20,1))*2)
在上述表达式中,iATR的移动可能会在一个柱子和另一个柱子之间变化。通过使用带有SL和TP的OrderSend,我不能利用这种转变的优势。
每个函数 在这个时候都能工作,只是我需要学习如何调整这些函数。
谢谢你的观察和问题。
谢谢
没有SL和TP也可以工作。
,但我们仍然需要在盈利的情况下关闭订单的条件。
,请看看更新的函数 "iSignalClose", https://www.mql5.com/en/forum/124521/page2。
,现在它当然是虚拟SL的条件。
,但我们仍然需要虚拟TP的条件。
,等待您的答复。
:)
我为虚拟TP插入了与SL条件相似的参数,但使用了另一个因素。
今后将很容易和方便地优化这些参数。
为了优化,将理想的参数声明为 "extern"。
例子。
////////////////////////////////////////////////////////////////////< 3> // < 1.1. Data : Input > //< > // //< > // < 1.1. Input 7 = 4 i 3 d - s > //< > // < 1. Strategy 4 = 2 i 2 d - s /> //< > // < 2. Trading 3 = 2 i 1 d - s /> //< > // </1.1. Input 7 = 4 i 3 d - s > //< > // //< > // < 1. Strategy 4 >=========================================//< > int iBasePeriod = 20 ; //< > int iBaseBar = 1 ; //< > extern double dFactorTP = 2.0 ; //< > extern double dFactorSL = 2.0 ; //< > // </ 1. Strategy 4 >=========================================//< > // //< > // < 2. Trading 3 >==========================================//< > int iSlippage = 1 ; //< > int iMagic = 0 ; //< > double dLots = 0.1 ; //< > // </ 2. Trading 3 >==========================================//< > // //< > // //< > // //< > // </1.1. Data : Input > //< >
优化后,将原来的参数值改为优化后的参数值,并删除 "extern "声明。
A系统 "的优化样本。冠军2008最终编辑 "也被称为 "ACB6",https://www.mql5.com/en/forum/112633/page7#276861。