ProfitClosePart3()三阶盈利减仓,可以分三次对盈利订单进行减仓,分批出场
函数名称void ProfitClosePart3(double LotsX,int ProfitX1,double CloseX1,int ProfitX2,double CloseX2,int ProfitX3,double CloseX3,int MagicX)
函数介绍
ProfitClosePart3()可以分三次对盈利订单进行减仓。当盈利点数达到ProfitX1,减仓一次;当盈利点数达到ProfitX2,再减仓一次;当盈利点数达到ProfitX3,再减仓一次;一共可减仓三次。
每次减仓都是按照上一次剩余手数的百分比进行减仓。
//举例:订单盈利100点减仓10%,订单盈利200点,再减仓20%,订单盈利300点,再减仓30%。
ProfitClosePart3(1,100,10,200,20,300,30,MAGIC);
参数介绍
LotsX:减仓的基准手数,也是减仓前的初始手数。比如你开仓时的初始手数是1手,那这里就填入1手。
ProfitX1:第一次减仓启动盈利点数。
CloseX1:第一次减仓百分比。
ProfitX2:第二次减仓启动盈利点数。
CloseX2:第二次减仓百分比。
ProfitX3:第三次减仓启动盈利点数。
CloseX3:第三次减仓百分比。
MagicX:订单的魔术码,你的EA的魔术码是多少,这里填上即可。
函数定义
注意:本人发布的函数均为实战开发所用,低价或免费发布并不赚钱,仅限懂编程的朋友使用,不提供指导,因为人工成本巨贵,感谢朋友们海涵。void ProfitClosePart3(double LotsX,int ProfitX1,double CloseX1,int ProfitX2,double CloseX2,int ProfitX3,double CloseX3,int MagicX)
{
double Lots1= NormalizeDouble(LotsX*CloseX1/100,2);
double Lots2= NormalizeDouble((LotsX-Lots1)*CloseX2/100,2);
double Lots3= NormalizeDouble((LotsX-Lots1-Lots2)*CloseX3/100,2);
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS))
if(OrderMagicNumber()==MagicX)
{
if(OrderType()==OP_SELL)
{
if(OrderOpenPrice()-Ask>ProfitX3*Point && ProfitX3>0)
{
if(OrderLots()==LotsX-Lots1-Lots2)
if(!OrderClose(OrderTicket(),Lots3,OrderClosePrice(),0,Blue))
Print("OrderClose() error - ",GetLastError());
}
else
if(OrderOpenPrice()-Ask>ProfitX2*Point && ProfitX2>0)
{
if(OrderLots()==LotsX-Lots1)
if(!OrderClose(OrderTicket(),Lots2,OrderClosePrice(),0,Blue))
Print("OrderClose() error - ",GetLastError());
}
else
if(OrderOpenPrice()-Ask>ProfitX1*Point && ProfitX1>0)
{
if(OrderLots()==LotsX)
if(!OrderClose(OrderTicket(),Lots1,OrderClosePrice(),0,Blue))
Print("OrderClose() error - ",GetLastError());
}
}
else
if(OrderType()==OP_BUY)
{
if(Bid-OrderOpenPrice()>ProfitX3*Point && ProfitX3>0)
{
if(OrderLots()==LotsX-Lots1-Lots2)
if(!OrderClose(OrderTicket(),Lots3,OrderClosePrice(),0,Red))
Print("OrderClose() error - ",GetLastError());
}
else
if(Bid-OrderOpenPrice()>ProfitX2*Point&& ProfitX2>0)
{
if(OrderLots()==LotsX-Lots1)
if(!OrderClose(OrderTicket(),Lots2,OrderClosePrice(),0,Red))
Print("OrderClose() error - ",GetLastError());
}
else
if(Bid-OrderOpenPrice()>ProfitX1*Point && ProfitX1>0)
{
Comment("盈利大于",ProfitX1,"点");
if(OrderLots()==LotsX)
if(!OrderClose(OrderTicket(),Lots1,OrderClosePrice(),0,Red))
Print("OrderClose() error - ",GetLastError());
}
}
}
}
}
三阶盈利减仓 学习三阶盈利减仓 厉害这样也可以 分批出场 可以学习一下啊! 学习了,咔咔咔 感谢分享 支付了H币 能详细点刘更好 zhe caishi 真的好东西 你的EA的魔术码 这个源码可以学习!感谢分享。 很好 学习了 厉害的程序
页:
[1]