隐形停止失败?
1 页面的第 522 页 12 上一个上一个
Results 1 to 10 of 16

Thread: 隐形停止失败?

  1. #1
    我知道如何编写标准的普通香草隐形止损。这并不难。

    如果我想进入追踪止损,该怎么办?如何在EA关闭,停电,系统重置等情况下保持隐蔽性并保持可恢复性。此外,如何设置该功能以适用于多个订单?

  2. #2
    你不能。如果你没有任何连接到你的经纪人(他们不知道你想要你的SL后面或其他),那么没有SL会存在。最好的方法是以可恢复的方式将你自己的SL逻辑编码到你的EA中,并监控你的EA是否仍然连接。如果不是,那么它应该警告你(通过短信/电子邮件等)一种可恢复的方式....将所有交易信息存储在数组中(或者如果MQL以外的语言,则为结构)E.G.独特的魔术,开盘价,类型(买/卖),HL价格,点数,SL尺寸,SL价格等,并将这些数组定期保存到文件中。您还需要编写例程以在EA初始化时加载这些值 - 在EAPC崩溃的情况下。当你从临时连接中断或崩溃返回时,你可以“知道”,以便你可以检查当前状态和中断前的最后一段时间。我建议你给经纪人设置一个固定的SL,该价格比真实的隐形止损价格更低,但如果你的隐形止损价格目前是30点,那么不会出现IE不存在的情况,然后设置一个止损100点所以你有一些灾难覆盖

  3. #3
    使用GlobalVariables作为StopLoss,当前追踪止损等。 - 它们在上次使用后不会过期4周。
    http://book.mql4.com/variables/globals - 当然,您的电脑必须开机并运行,但电脑可以重新启动,并且您可以在离开的地方继续。

  4. #4
    全球变量适用于一种交易,很难适用于多种交易。它看起来像我将不得不写一个文件的滴答日志。 (为了交易SL的方向)

  5. #5
    设置全局变量的最佳方式是使用唯一标识符:AccountNumber_TradeTicket_ [StopLoss] 23875443_19283_ [60]然后使用stringsearch和conversion函数很容易解析它。之后,它很容易创建函数CreateGlobalStop()和GetGlobalStop()

  6. #6
    简单,没有任何不同,只是使用规则来关闭交易,而不是仅仅为你移动几行代码,你需要选择订单插入代码if(!HideTakeProfitOrderType()== OP_SELLOrderTakeProfit() != OrderOpenPrice() - TakeProfit * my_point){OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice() - TakeProfit * my_point,OrderTakeProfit(),0,CLR_NONE); } OrderProduct(),OrderOpenPrice(),OrderOpenPrice() TakeProfit * my_point,OrderTakeProfit(),0,CLR_NONE);}如果(!HideTakeProfitOrderType()== OP_BUYOrderTakeProfit()!= OrderOpenPrice() TakeProfit * my_point)。 (),OrderLocs(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),滑动,CLR_NONE();}如果(HideTakeProfitOrderType()== OP_SELLMarketInfo(OrderSymbol(),MODE_BID)lt; = OrderOpenPrice() - TakeProfit * my_point) ); (),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),滑动,CLR_NONE() ); }

  7. #7
    我只是意识到,这是你的线程罗纳德,毕竟ea的iv看到你的代码,你怎么可能不知道这一点

  8. #8
    我只是意识到我发布了错误的代码,这里是隐形线索插入代码void trail(){int totalorders = OrdersTotal(); for(int i = totalorders-1; igt; = 0; i--){OrderSelect(i,SELECT_BY_POS);如果(OrderTicket()== ticket || OrderTicket()== ticket2 || OrderTicket()== ticket3 || OrderTicket()== ticket4 || OrderTicket()== ticket5 || OrderTicket()== ticket6){ (MarketInfo(OrderSymbol(),MODE_LOTSTEP)== 0.001)digits = 3; (MarketInfo(OrderSymbol(),MODE_LOTSTEP)== 0.01)digits = 2; (MarketInfo(OrderSymbol(),MODE_LOTSTEP)== 0.1)digits = 1;如果(MarketInfo(OrderSymbol(),MODE_LOTSTEP)== 1)digits = 0;如果(MarketInfo(OrderSymbol(),MODE_POINT)== 0.0001)my_point = 0.0001; if(MarketInfo(OrderSymbol(),MODE_POINT)== 0.00001)my_point = 0.0001; (MarketInfo(OrderSymbol(),MODE_POINT)== 0.01)my_point = 0.01; if(MarketInfo(OrderSymbol(),MODE_POINT)== 0.001)my_point = 0.01; ()OrderSymbol()== OrderSymbol()!HideTrailingStop) )OrderForModify(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,CLR_NONE); (OrderStopLoss()); OrderOpenPrice()OrderType()== OP_SELL OrderOpenPrice() - MarketInfo(OrderSymbol(),MODE_BID) (),OrderOpenPrice(),OrderTakeProfit(),0,CLR_NONE); if(OrderStopLoss()); = OrderOpenPrice()OrderType()== OP_BUY MarketInfo(OrderSymbol(),MODE_ASK)-OrderStopLoss(); = TrailingStop * my_point MarketInfo(OrderSymbol(),MODE_ASK)gt; = OrderStopLoss() (TrailingStep * 2)* my_point)OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss() TrailingStop * my_point,OrderTakeProfit(),0,CLR_NONE); if(OrderStopLoss()lt; = OrderOpenPrice()OrderType()== OP_SELL OrderStopLoss() - MarketInfo(OrderSymbol(),MODE_BID)gt; = TrailingStop * my_point MarketInfo(OrderSymbol(),MODE_BID)lt; = OrderStopLoss() - (TrailingStep * 2)* my_point)OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss() - TrailingStop * my_point,OrderTakeProfit(),0,CLR_NONE); }如果(OrderSymbol()== OrderSymbol()HideTrailingStop){if(OrderType()== OP_BUY){if(MarketInfo(OrderSymbol(),MODE_ASK)-OrderOpenPrice()GT; = TrailingStop * my_pointObjectGet(sl OrderTicket() b,OBJPROP_PRICE1)lt; OrderOpenPrice()){ObjectCreate(sl OrderTicket() b,OBJ_HLINE,0,0,0); ObjectSet(sl OrderTicket() b,OBJPROP_PRICE1,OrderOpenPrice()); ObjectSet(sl OrderTicket() b,OBJPROP_COLOR,Red); ObjectSet(sl OrderTicket() b,OBJPROP_STYLE,3);如果(MarketInfo(OrderSymbol(),MODE_ASK)-ObjectGet(sl OrderTicket() b,OBJPROP_PRICE1)gt; = TrailingStop * my_pointObjectGet(sl OrderTicket() b,OBJPROP_PRICE1)gt; = OrderOpenPrice()ObjectGet OrderTicket() b,OBJPROP_PRICE1)lt; MarketInfo(OrderSymbol(),MODE_ASK)-TrailingStep * my_point){ObjectSet(sl OrderTicket() b,OBJPROP_PRICE1,MarketInfo(OrderSymbol(),MODE_ASK)-TrailingStop * my_point); (),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK);}}如果(OrderType()== OP_BUYMarketInfo(OrderSymbol(),MODE_ASK)lt; = ObjectGet(sl OrderTicket() b,OBJPROP_PRICE1))OrderClose(OrderTicket ),滑动,CLR_NONE); count_orders(); if(OrderType()== OP_SELL){if(OrderOpenPrice() - MarketInfo(OrderSymbol(),MODE_BID)> = TrailingStop * my_pointObjectGet(sl OrderTicket() s,OBJPROP_PRICE1)> OrderOpenPrice()){ObjectCreate sl OrderTicket() s,OBJ_HLINE,0,0,0); ObjectSet(sl OrderTicket() s,OBJPROP_PRICE1,OrderOpenPrice()); ObjectSet(sl OrderTicket() s,OBJPROP_COLOR,Red); ObjectSet(sl OrderTicket() s,OBJPROP_STYLE,3); } ObjectGet(s1 OrderTicket() s,OBJPROP_PRICE1)-MarketInfo(OrderSymbol(),MODE_BID)gt; = TrailingStop * my_pointObjectGet(sl OrderTicket() s,OBJPROP_PRICE1)lt; = OrderOpenPrice()ObjectGet OrderTicket() s,OBJPROP_PRICE1); MarketInfo(OrderSymbol(),MODE_BID) TrailingStop * my_point) TrailingStop * my_point){ObjectSet(sl OrderTicket() ; (),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK);}} if(OrderType()== OP_SELLMarketInfo(OrderSymbol(),MODE_BID)gt; = ObjectGet(sl OrderTicket() s,OBJPROP_PRICE1))OrderClose ),滑动,CLR_NONE); count_orders(); }}}}

  9. #9
    它不仅是隐形的,它在图表上绘制线条以便您可以看到sl,我只在ibfx上进行测试,而在线时,如果离线,marketinfo不工作

  10. #10
    RR一个更好的主意就是打我。只需向您的SLTP添加1000点,并按正常顺序保存。 Simpy让你的隐形出口程序从有序SL或TP中减去1000点。易于保存并易于阅读。

发布权限

  • 您不可发布新主题
  • 您不可回复
  • 您不可发布附件
  • 您不可编辑您的帖子
  •  
  • BB代码是打开的
  • 表情符号是打开的
  • [IMG]代码是打开的
  • [视频]代码是打开的
  • HTML代码是关闭的
histoforex网站使用cookie 文字跟踪
histoforex网站使用cookie 文字跟踪,某些设定已经固定。您可以点击此处阅读我们的Cookie使用说明。 请点击右键接受我们的cookies。如果您选择继续使用histoforex网站,我们将认为您接受我们的cookies。