[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 622 1...615616617618619620621622623624625626627628629...1145 新评论 [删除] 2010.06.16 15:15 #6211 Rossi: 有没有办法对屏幕底部的标签中的工具进行分类?因为4个时间段的8个工具分散在一个混乱的....。 不 Rossi 2010.06.16 16:27 #6212 DDFedor: 抓住带有图形名称的标签,并将其拖到正确的位置。 AAAAAAAAAAAAAAAAAAA伟大的答案,谢谢你... khorosh 2010.06.16 18:13 #6213 artmedia70::)现在出现了错误130。最令人困惑的是,在错误的止损点(130)下,它仍然设置了正确的起飞(由ATR计算),但我的止损点从一开始就没有设置...。有什么办法可以理解这个问题吗? 130错误 可以是错误的止损或错误的止盈。 Artyom Trishkin 2010.06.16 19:09 #6214 ToLik_SRGV: 我添加了限价订单(我在以前的代码中忘记了它们:))+错误#1处理(在修改前,新价格与当前价格进行比较,如果它们相同,则不会发生什么)。 似乎被拖网移动到市场附近的修改后的订单会失去其TakeProfit的继承权......。它们一旦被触发,就会挂在图表上的位置,愚蠢地消耗保证金。他们不以盈利或亏损收盘,也没有获利线。虽然,我特意在代码中加入了用ATR计算的tp 值,以检查它。 void trailingOrder(int magic, int trailing){ int index = 0, tp=TakeProfitATR (5); while(trailing > 0 && OrdersTotal() != 0 && OrderSelect(index, SELECT_BY_POS)){ if(OrderMagicNumber() == magic){ if(OrderType() == OP_BUYSTOP){ if(OrderOpenPrice() - Ask > Point*trailing){ if((Ask+Point*trailing) - Ask >= MarketInfo(Symbol(), MODE_STOPLEVEL)*Point && (Ask+Point*trailing) - Ask > MarketInfo(Symbol(), MODE_FREEZELEVEL)*Point && (Ask+Point*trailing) != OrderOpenPrice()){ if(!OrderModify(OrderTicket(),Ask+Point*trailing,OrderStopLoss(), /*OrderTakeProfit()*/tp, 0, MediumSpringGreen))Print(">>> ERROR ", GetLastError()); }else{ Print(">>> Слишком близко к рынку или передано неизмененное значение!"); } } return; } // ..... Далее по тексту функции также добавлены изменения... 在我修改之前和之后,修改后的订单在转换为头寸之前或之后都没有承接线......。 原因是什么呢? khorosh 2010.06.16 19:16 #6215 artmedia70:似乎被拖网移动到市场附近的修改后的订单会失去其TakeProfit的继承权......。它们一旦被触发,就会挂在图表上的位置,愚蠢地消耗保证金。他们不以盈利或亏损收盘,也没有获利线。虽然,我特意在代码中加入了用ATR计算的tp 值,以检查它。在添加变化之前和之后,修改后的订单在转换为头寸之前或之后都没有取舍线......可能的原因是什么? 在修改挂单的 价格时,也应修改止损和止盈。 Artyom Trishkin 2010.06.16 19:16 #6216 khorosh: 错误130可能是错误的止损或错误的止盈。 谢谢你。我已经知道...这并不是重点。是拖网给了我错误--我禁用了它,一切都好了。我还没有时间去处理它。 Artyom Trishkin 2010.06.16 19:32 #6217 khorosh: 在修改挂单价格时,也应修改StopLoss和TakeProfit。 ATR获利功能不是这样做的吗?我在修改订单前调用它,获得由TakeProfitATR()计算的当前获利值,并将其粘贴到订单修改中...这在我上面的例子中。int index = 0, tp=TakeProfitATR (5); // Рассчёт нового тейка по значению ATR. Ф-ция возвращает размер тейка в пунктах....if(!OrderModify(OrderTicket(),Ask+Point*trailing,OrderStopLoss(), /*OrderTakeProfit()*/tp, 0, MediumSpringGreen))Print(">>> ERROR ", GetLastError()); // здесь вместо OrderTakeProfit() подставляю tp 看来我在写这篇文章时发现了一个错误......ATR的TakeProfit函数以点为单位返回TakeProfit值,而应该使用价格。 但是,我不明白为什么在做这些改变之前,修改后的订单会失去它的取值......。虽然,OrderTakeProfit()应该将其获取点的值写入被修改的订单中... 然后问题是--为什么我每次都要修改它(取),如果说,我只是想把一个挂单 移到离市场更近的地方,而不改变它,如果市场已经远离它,准备进行反转或修正......??? [删除] 2010.06.16 19:53 #6218 artmedia70: ATR获利功能不是这样做的吗?我在修改订单前调用它,获得由TakeProfitATR()计算的当前获利值,并将其粘贴到订单修改中...这在我上面的例子中。 .... 看来我在写这篇文章时发现了我的错误......ATR的TakeProfit函数以点为单位返回TakeProfit值,而应该使用价格。 但是,我不明白为什么在这些变化之前,修改后的订单仍然失去了它的取值......。虽然,OrderTakeProfit()应该将其获取点的值写入被修改的订单中... 然后问题是--为什么我每次都要修改它(取),如果说,我只是想把一个挂单移到离市场更近的地方,而不改变它,如果市场已经远离它,准备进行反转或修正......??? 我在我的方法中加入了自动止损和接管。 当你下挂单时,你只需设置限价器,方法会将一切拖到正确的位置:)) //+------------------------------------------------------------------+ void trailingOrder(int magic, int trailing){ int index = 0; double takeprofit, stoploss; while(trailing > 0 && OrdersTotal() != 0 && OrderSelect(index, SELECT_BY_POS)){ if(OrderMagicNumber() == magic){ if(OrderType() == OP_BUYSTOP){ if(OrderOpenPrice() - Ask > Point*trailing){ if((Ask+Point*trailing) - Ask >= MarketInfo(Symbol(), MODE_STOPLEVEL)*Point && (Ask+Point*trailing) - Ask > MarketInfo(Symbol(), MODE_FREEZELEVEL)*Point && (Ask+Point*trailing) != OrderOpenPrice()){ if(!OrderModify(OrderTicket(),Ask+Point*trailing, Ask+Point*trailing-(OrderOpenPrice()-OrderStopLoss()), Ask+Point*trailing+(OrderTakeProfit()-OrderOpenPrice()), 0))Print(">>> ERROR ", GetLastError()); }else{ Print(">>> Слишком близко к рынку или передано неизмененное значение!"); } } return; } if(OrderType() == OP_SELLSTOP){ if(Bid - OrderOpenPrice() > Point*trailing){ if(Bid - (Bid-Point*trailing) >= MarketInfo(Symbol(), MODE_STOPLEVEL)*Point && Bid - (Bid-Point*trailing) > MarketInfo(Symbol(), MODE_FREEZELEVEL)*Point && (Bid-Point*trailing) != OrderOpenPrice()){ if(!OrderModify(OrderTicket(),Bid-Point*trailing,Bid-Point*trailing+(OrderStopLoss()-OrderOpenPrice()),Bid-Point*trailing-(OrderOpenPrice()-OrderTakeProfit()), 0))Print(">>> ERROR ", GetLastError()); }else{ Print(">>> Слишком близко к рынку или передано неизмененное значение!"); } } return; } if(OrderType() == OP_SELLLIMIT){ if(OrderOpenPrice() - Bid > Point*trailing){ if((Bid+Point*trailing) - Bid >= MarketInfo(Symbol(), MODE_STOPLEVEL)*Point && (Bid+Point*trailing) - Bid > MarketInfo(Symbol(), MODE_FREEZELEVEL)*Point && (Bid+Point*trailing) != OrderOpenPrice()){ if(!OrderModify(OrderTicket(),Bid+Point*trailing,Bid+Point*trailing+(OrderStopLoss()-OrderOpenPrice()),Bid+Point*trailing-(OrderOpenPrice()-OrderTakeProfit()), 0))Print(">>> ERROR ", GetLastError()); }else{ Print(">>> Слишком близко к рынку или передано неизмененное значение!"); } } return; } if(OrderType() == OP_BUYLIMIT){ if(Ask - OrderOpenPrice() > Point*trailing){ if(Ask - (Ask-Point*trailing) >= MarketInfo(Symbol(), MODE_STOPLEVEL)*Point && Ask - (Ask-Point*trailing) > MarketInfo(Symbol(), MODE_FREEZELEVEL)*Point && (Ask-Point*trailing) != OrderOpenPrice()){ if(!OrderModify(OrderTicket(),Ask-Point*trailing,Ask-Point*trailing-(OrderOpenPrice()-OrderStopLoss()),Ask-Point*trailing+(OrderTakeProfit()-OrderOpenPrice()), 0))Print(">>> ERROR ", GetLastError()); }else{ Print(">>> Слишком близко к рынку или передано неизмененное значение!"); } } return; } } index++; } } //+------------------------------------------------------------------+ Artyom Trishkin 2010.06.16 21:05 #6219 ToLik_SRGV: 我在方法中加入了自动止损和接管。 在设置挂单时,我只需设置一次限价器,然后方法本身就会把所有东西拖到正确的位置:)) 非常 - 非常有用!但不是最佳状态。我们应该动态地改变取舍。为什么我们必须跟随市场?如果我们设置了一个挂单,而价格已经走远--比如说修正,...我们该怎么做?我们要等待价格回归吗?还是删除订单?这样做不是更好吗... 让我们想象一下,当市场的波动性很低,但有一个稳定的上升趋势的情况。价格已经慢慢远离了待定的 SELLSTOP订单 向上移动。一个未平仓的买入头寸已经被算出,并以盈利方式平仓。我们等待市场波动性增加,一旦超过某个阈值,我们就将限价单移至该价格。因此,我们抓住了已经开始的修正,限制器不是作为一个锁定的位置,而是作为一个额外的收入来源。如果我们没有移动它,修正可能已经到达它,触及它并完成。在这种情况下,我们在上升趋势中会有一个lota卖出位置。这样的游历是一种趋势性的游历...如果我们有动态TP,那么通过将挂单转移到市场并考虑到强波动性(这里会比弱波动性大),我们更有可能从修正中获得更多利润,而不是在静态TP的情况下。不管怎么说,如果我们没有平仓,拖网将完成它的工作,我们将失去的只是错过的利润。呃...我已经很久没有在键盘上点击这么多了......。因此,这个建议本身就很有意义。为了使函数的参数也能传入时间框架。并根据它计算出ATR值的取值。我实验了一段时间,我对M5 TF的调查得出结论,根据ATR的最佳止盈是用ATR*45000计算的,我在计算中也是这样做的。在这些数值下,市场几乎总是能及时 "捕捉 "住这些东西。//+------------------------------------------------------------------+ //| Take from ATR | //+------------------------------------------------------------------+ double TakeProfitATR (int tf) { double atr =iATR(NULL,tf,14,0); double mltp =15000; if (tf==1) mltp=15000; if (tf==5) mltp=45000; double tp =MathRound(atr*mltp); return (tp); }当然,这个功能还没有完成,但对我来说已经足够用于测试了(我现在正在测试M5)......顺便说一下,在输入值=1的情况下,它提供了一个相当好的距离来设置一个悬念。如果能在你的功能中看到它,那就更好了...:)无论如何,谢谢你--考虑到我的修改只是为了得到上述结果,这相当令人满意...... ZS...如果能给修改图标添加颜色就更好了......。(真的,我已经添加了它们)... Artyom Trishkin 2010.06.16 22:44 #6220 这里有一个问题:BC省如何处理大量的交易?我的专家顾问每29分钟开一次仓(五个策略中只有一个)。然后,当权益增加百分之五时,所有的人都会一起关闭。主要是余额每三到五天增加百分之五。 我不知道BC省是否对这种交易有任何要求。 1...615616617618619620621622623624625626627628629...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
有没有办法对屏幕底部的标签中的工具进行分类?因为4个时间段的8个工具分散在一个混乱的....。
抓住带有图形名称的标签,并将其拖到正确的位置。
AAAAAAAAAAAAAAAAAAA伟大的答案,谢谢你...
:)现在出现了错误130。最令人困惑的是,在错误的止损点(130)下,它仍然设置了正确的起飞(由ATR计算),但我的止损点从一开始就没有设置...。有什么办法可以理解这个问题吗?
我添加了限价订单(我在以前的代码中忘记了它们:))+错误#1处理(在修改前,新价格与当前价格进行比较,如果它们相同,则不会发生什么)。
似乎被拖网移动到市场附近的修改后的订单会失去其TakeProfit的继承权......。它们一旦被触发,就会挂在图表上的位置,愚蠢地消耗保证金。他们不以盈利或亏损收盘,也没有获利线。虽然,我特意在代码中加入了用ATR计算的tp 值,以检查它。
在我修改之前和之后,修改后的订单在转换为头寸之前或之后都没有承接线......。
原因是什么呢?
似乎被拖网移动到市场附近的修改后的订单会失去其TakeProfit的继承权......。它们一旦被触发,就会挂在图表上的位置,愚蠢地消耗保证金。他们不以盈利或亏损收盘,也没有获利线。虽然,我特意在代码中加入了用ATR计算的tp 值,以检查它。
在添加变化之前和之后,修改后的订单在转换为头寸之前或之后都没有取舍线......
可能的原因是什么?
错误130可能是错误的止损或错误的止盈。
在修改挂单价格时,也应修改StopLoss和TakeProfit。
ATR获利功能不是这样做的吗?我在修改订单前调用它,获得由TakeProfitATR()计算的当前获利值,并将其粘贴到订单修改中...这在我上面的例子中。
....
看来我在写这篇文章时发现了一个错误......ATR的TakeProfit函数以点为单位返回TakeProfit值,而应该使用价格。但是,我不明白为什么在做这些改变之前,修改后的订单会失去它的取值......。虽然,OrderTakeProfit()应该将其获取点的值写入被修改的订单中...
然后问题是--为什么我每次都要修改它(取),如果说,我只是想把一个挂单 移到离市场更近的地方,而不改变它,如果市场已经远离它,准备进行反转或修正......???
ATR获利功能不是这样做的吗?我在修改订单前调用它,获得由TakeProfitATR()计算的当前获利值,并将其粘贴到订单修改中...这在我上面的例子中。
....
看来我在写这篇文章时发现了我的错误......ATR的TakeProfit函数以点为单位返回TakeProfit值,而应该使用价格。但是,我不明白为什么在这些变化之前,修改后的订单仍然失去了它的取值......。虽然,OrderTakeProfit()应该将其获取点的值写入被修改的订单中...
然后问题是--为什么我每次都要修改它(取),如果说,我只是想把一个挂单移到离市场更近的地方,而不改变它,如果市场已经远离它,准备进行反转或修正......???
我在我的方法中加入了自动止损和接管。 当你下挂单时,你只需设置限价器,方法会将一切拖到正确的位置:))
我在方法中加入了自动止损和接管。 在设置挂单时,我只需设置一次限价器,然后方法本身就会把所有东西拖到正确的位置:))
让我们想象一下,当市场的波动性很低,但有一个稳定的上升趋势的情况。价格已经慢慢远离了待定的 SELLSTOP订单 向上移动。一个未平仓的买入头寸已经被算出,并以盈利方式平仓。我们等待市场波动性增加,一旦超过某个阈值,我们就将限价单移至该价格。因此,我们抓住了已经开始的修正,限制器不是作为一个锁定的位置,而是作为一个额外的收入来源。如果我们没有移动它,修正可能已经到达它,触及它并完成。在这种情况下,我们在上升趋势中会有一个lota卖出位置。
这样的游历是一种趋势性的游历...
如果我们有动态TP,那么通过将挂单转移到市场并考虑到强波动性(这里会比弱波动性大),我们更有可能从修正中获得更多利润,而不是在静态TP的情况下。不管怎么说,如果我们没有平仓,拖网将完成它的工作,我们将失去的只是错过的利润。
呃...我已经很久没有在键盘上点击这么多了......。
因此,这个建议本身就很有意义。为了使函数的参数也能传入时间框架。并根据它计算出ATR值的取值。
我实验了一段时间,我对M5 TF的调查得出结论,根据ATR的最佳止盈是用ATR*45000计算的,我在计算中也是这样做的。在这些数值下,市场几乎总是能及时 "捕捉 "住这些东西。
当然,这个功能还没有完成,但对我来说已经足够用于测试了(我现在正在测试M5)......顺便说一下,在输入值=1的情况下,它提供了一个相当好的距离来设置一个悬念。
如果能在你的功能中看到它,那就更好了...:)
无论如何,谢谢你--考虑到我的修改只是为了得到上述结果,这相当令人满意......
ZS...如果能给修改图标添加颜色就更好了......。(真的,我已经添加了它们)...
这里有一个问题:BC省如何处理大量的交易?我的专家顾问每29分钟开一次仓(五个策略中只有一个)。然后,当权益增加百分之五时,所有的人都会一起关闭。主要是余额每三到五天增加百分之五。
我不知道BC省是否对这种交易有任何要求。