TrailStopLoss()为持仓的每一个订单设置单独的移动/跟踪止损
函数名称void TrailStopLoss(string SymbolX,int MagicX,int TrailSLStartX,int TrailSLX)
函数介绍
自动检测当前持仓的所有订单,为每一个订单,设置跟踪止损。如果该订单盈利达到设定条件,就为该订单设置一个跟踪止损。是一个非常好用的函数。注意:调用函数的时候,需要把函数的定义放到代码的最下面。
//举例:订单盈利500点后,设置100点的跟踪止损
TrailStopLoss(Symbol(),MAGIC,500,100);
参数介绍
SymbolX:需要设置跟踪止损的品种,一般设置当前品种即可。也就是Symbol();
MagicX:订单的魔术码,你的EA的魔术码是多少,这里填上即可。
TrailSLStartX:开启跟踪止损的盈利点数(pips),当此订单盈利多少点时进行跟踪止损。
TrailSLX:跟踪止损的点数,需要设置一个大于0的整数数值。
函数定义
注意:本人发布的函数均为实战开发所用,低价或免费发布并不赚钱,仅限懂编程的朋友使用,不提供指导,因为人工成本巨贵,感谢朋友们海涵。void TrailStopLoss(string SymbolX,int MagicX,int TrailSLStartX,int TrailSLX)
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
if(OrderSymbol()==SymbolX&&OrderMagicNumber()==MagicX)
{
if(OrderType()==OP_SELL && OrderOpenPrice()-MarketInfo(Symbol(),MODE_ASK)>TrailSLStartX*MarketInfo(Symbol(),MODE_POINT))
{
if(MarketInfo(Symbol(),MODE_ASK)+TrailSLX*MarketInfo(Symbol(),MODE_POINT)<OrderStopLoss() || OrderStopLoss()==0)
if(!OrderModify(OrderTicket(),0,MarketInfo(Symbol(),MODE_ASK)+TrailSLX*MarketInfo(Symbol(),MODE_POINT),OrderTakeProfit(),0,Yellow))
Print(GetLastError());
}
else
if(OrderType()==OP_BUY && MarketInfo(Symbol(),MODE_BID)-OrderOpenPrice()>TrailSLStartX*MarketInfo(Symbol(),MODE_POINT))
{
if(MarketInfo(Symbol(),MODE_BID)-TrailSLX*MarketInfo(Symbol(),MODE_POINT)>OrderStopLoss() || OrderStopLoss()==0)
if(!OrderModify(OrderTicket(),0,MarketInfo(Symbol(),MODE_BID)-TrailSLX*MarketInfo(Symbol(),MODE_POINT),OrderTakeProfit(),0,Yellow))
Print(GetLastError());
}
}
}
}
自动检测 厉害了。
页:
[1]