admin 发表于 2018-6-27 14:51:42

给EA加上止盈止损代码

代码如下:

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

void OnStart()
{
    bool chenggong = false;
    int i = 0;

    if(TakeProfit!=0)
    {
       for(i=0;i<OrdersTotal();i++)
       {
         if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==Symbol() && OrderTakeProfit()==0)
         {RefreshRates();
                if(OrderType()==OP_BUY||OrderType()==OP_BUYLIMIT||OrderType()==OP_BUYSTOP)
                {
                  chenggong=OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()+TakeProfit*Point,0);
                }
                if(OrderType()==OP_SELL||OrderType()==OP_SELLLIMIT||OrderType()==OP_SELLSTOP)
                {
                  chenggong= OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice()-TakeProfit*Point,0);
                }
         }
       }
    }

    if(StopLoss!=0)
    {
       for(i=0;i<OrdersTotal();i++)
       {
         if(OrderSelect(i,SELECT_BY_POS) && OrderSymbol()==Symbol() && OrderStopLoss()==0)
         {RefreshRates();
                if(OrderType()==OP_BUY||OrderType()==OP_BUYLIMIT||OrderType()==OP_BUYSTOP)
                {
                  chenggong=OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-StopLoss*Point,OrderTakeProfit(),0);
                }
                if(OrderType()==OP_SELL||OrderType()==OP_SELLLIMIT||OrderType()==OP_SELLSTOP)
                {
                  chenggong= OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+StopLoss*Point,OrderTakeProfit(),0);
                }
         }
       }
    }
}



可以把代码加载到你的EA或者脚本。如果出现错误可以删除代码中的

void OnStart()
{


代码的最后也要删除一个}符号

宜乐宸邦 发表于 2018-9-15 14:36:37

谢谢分享

daili123190 发表于 2021-3-26 23:36:02

好想学习怎么写ea
页: [1]
查看完整版本: 给EA加上止盈止损代码