📅 财经日历 📊 实时波动 📈 大盘云图 📶 行情走势 🆚 投机情绪 🚀 今日热点

    求MT4的赢利变亏损即平仓的代码!

    2023-09-07 · 2339 阅读
    悬赏10金币已解决
        哪位兄弟可以提供一下代码,我的设想是,当开仓后赢利达到一定数额的美元,然后又变成亏损时自动平仓。我自己弄了几次都没有执行,多谢了!

    最佳答案

    查看完整内容

    //-------------------------- static int 开启=0; if(保护开关==true) { if(AllProfit_1>保护启动金额 ) { 开启=1; } if(开启==1 && AllProfit_1=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic_1) ...
    ""
    还没有人打赏,支持一下
    回复

    举报

     

    回答|共 6 个

    WA263222 LV4

    发表于 2023-9-7 15:36:57 | 显示全部楼层

      //--------------------------
          
          static int 开启=0;
          
          if(保护开关==true)
             {
                if(AllProfit_1>保护启动金额 )
                   {
                     开启=1;
                   }
                
                if(开启==1 && AllProfit_1<=保护金额 )
                  {
                    平仓();
                  }
                
                if( BuyVol_1+SelVol_1==0)
                  {
                    开启=0;
                  }
             }
          
          //--------------------------
    void 平仓()
      {
        for(int i=OrdersTotal()-1; i>=0; i--)
            {
             if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true&&OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic_1)
               {
                if(OrderType()==0)
                  {
                   if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),500,0))
                     {
                      Print("订单号为",OrderTicket(),"平仓失败",GetLastError());
                     }
                  }
                if(OrderType()==1)
                  {
                   if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),500,0))
                     {
                      Print("订单号为",OrderTicket(),"平仓失败",GetLastError());
                     }
                  }
                if(OrderType()>1)
                  {
                   if(!OrderDelete(OrderTicket(),0))
                     {
                      Print("订单号为",OrderTicket(),"平仓失败",GetLastError());
                     }
                  }
               }
            }
         
      }

    WA263222 LV4

    发表于 2023-9-7 16:50:15 | 显示全部楼层

    这个多简单啊,移动止损启动保本点啊

    小飞鱼20123 LV5

    发表于 2023-9-8 10:08:46 | 显示全部楼层

    多谢指点,我原来也是这个思路,就是没成功,刚刚测试可以了,谢谢!
    static int 开启=0;
          double AllProfit_1=OrderProfit();
          
          if(保护开关==true)
             {
                if(AllProfit_1>保护启动金额 )
                   {
                     开启=1;
                   }
                
                if(开启==1 && AllProfit_1<=保护金额 )
                  {
                    CloseALL();
                    开启=0;
                  }
                
               // if( buys+sells==0)
               //   {
               //     开启=0;
               //   }
             }

    WA263222 LV4

    发表于 2023-9-8 12:53:31 | 显示全部楼层

    嗯,有好的思路互相交流

    大军 LV1

    发表于 2023-10-21 18:31:42 | 显示全部楼层

    谢谢
    您需要登录后才可以回帖 登录 | 注册

    提醒: 禁止引战、谩骂、灌水内容

    微信二维码

    有问题联系客服