求MT4的赢利变亏损即平仓的代码!
哪位兄弟可以提供一下代码,我的设想是,当开仓后赢利达到一定数额的美元,然后又变成亏损时自动平仓。我自己弄了几次都没有执行,多谢了!//--------------------------
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());
}
}
}
}
} 这个多简单啊,移动止损启动保本点啊
多谢指点,我原来也是这个思路,就是没成功,刚刚测试可以了,谢谢!
static int 开启=0;
double AllProfit_1=OrderProfit();
if(保护开关==true)
{
if(AllProfit_1>保护启动金额 )
{
开启=1;
}
if(开启==1 && AllProfit_1<=保护金额 )
{
CloseALL();
开启=0;
}
// if( buys+sells==0)
// {
// 开启=0;
// }
} 嗯,有好的思路互相交流 谢谢 {:1_194:}
页:
[1]