外汇EA
为订单添加止损盈利
回复:0  浏览:697
  • 楼主admin 圈主
  • 2019-05-05 14:39
该函数针对止损盈利为零的订单执行修改,添加止损盈利数值,可以调用到EA或脚本文件中使用。

  1. extern int     StopLoss = 200;      //在这里设置止损点数
  2. extern int     TakeProfit = 400;    //在这里设置盈利点数

  3. void onStart()
  4. {
  5.     bool chenggong = false;
  6.     int i = 0;
  7.    
  8.     if(TakeProfit!=0)
  9.     {
  10.        for(i=0;i<OrdersTotal();i++)
  11.        {
  12.            if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==Symbol() && OrderTakeProfit()==0)
  13.            {RefreshRates();
  14.                 if(OrderType()==OP_BUY||OrderType()==OP_BUYLIMIT||OrderType()==OP_BUYSTOP)
  15.                 {
  16.                     chenggong=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+TakeProfit*Point,0);
  17.                 }
  18.                 if(OrderType()==OP_SELL||OrderType()==OP_SELLLIMIT||OrderType()==OP_SELLSTOP)
  19.                 {
  20.                     chenggong= OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()-TakeProfit*Point,0);
  21.                 }
  22.            }
  23.        }
  24.     }

  25.     if(StopLoss!=0)
  26.     {
  27.        for(i=0;i<OrdersTotal();i++)
  28.        {
  29.            if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==Symbol() && OrderStopLoss()==0)
  30.            {RefreshRates();
  31.                 if(OrderType()==OP_BUY||OrderType()==OP_BUYLIMIT||OrderType()==OP_BUYSTOP)
  32.                 {
  33.                     chenggong=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss*Point,OrderTakeProfit(),0);
  34.                 }
  35.                 if(OrderType()==OP_SELL||OrderType()==OP_SELLLIMIT||OrderType()==OP_SELLSTOP)
  36.                 {
  37.                     chenggong= OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point,OrderTakeProfit(),0);
  38.                 }
  39.            }
  40.        }
  41.     }
  42. }