求助
这个EA设置的盈利点数平仓回测的时候没问题到了点数全部平仓,但是挂在模拟盘几张订单盈利到了平仓点数它就不全部平仓,只平仓最后下单那张订单,这是什么情况可以加我V交流一下,Lee343471826 //+-----------------------------------------------------平均盈利平仓-----------------------------------------------------+
if(单边均价盈N微点全平_0为关闭!=0)
{
bool closeAllBuys = false;
bool closeAllSells = false;
// 先检查是否满足平仓条件
if(平仓前多单总盈利 > 单边均价盈N微点全平_0为关闭*平仓前多单总手数*美元点值)
closeAllBuys = true;
if(平仓前空单总盈利 > 单边均价盈N微点全平_0为关闭*平仓前空单总手数*美元点值)
closeAllSells = true;
// 如果满足条件,则平掉所有对应方向的订单
if(closeAllBuys || closeAllSells)
{
for(int i5=OrdersTotal()-1; i5>=0; i5--)
{
if(OrderSelect(i5,SELECT_BY_POS,MODE_TRADES)==true)
if(OrderSymbol()==Symbol() && OrderMagicNumber()== EA交易ID)
{
if(closeAllBuys && OrderType()==OP_BUY)
{
bool 多单平仓=OrderClose(OrderTicket(),OrderLots(),Bid,500,White);
if(多单平仓)
printf("均价盈利 全平多!");
}
if(closeAllSells && OrderType()==OP_SELL)
{
bool 空单平仓=OrderClose(OrderTicket(),OrderLots(),Ask,500,White);
if(空单平仓)
printf("均价盈利 全平空!");
}
}
}
}
}
//+-----------------------------------------------------突破上轨平多破下轨平空-----------------------------------------------------+
if(突破上轨平多破下轨平空)
{
bool closeBuys = (收盘价 > 布林线上轨);
bool closeSells = (收盘价 < 布林线下轨);
if(closeBuys || closeSells)
{
for(int i5=OrdersTotal()-1; i5>=0; i5--)
{
if(OrderSelect(i5,SELECT_BY_POS,MODE_TRADES)==true)
if(OrderSymbol()==Symbol() && OrderMagicNumber()== EA交易ID)
{
if(closeBuys && OrderType()==OP_BUY)
{
bool 多单平仓=OrderClose(OrderTicket(),OrderLots(),Bid,500,White);
if(多单平仓)
printf("突破上轨 全平多!");
}
if(closeSells && OrderType()==OP_SELL)
{
bool 空单平仓=OrderClose(OrderTicket(),OrderLots(),Ask,500,White);
if(空单平仓)
printf("突破下轨 全平空!");
}
}
}
}
}
金子涵 发表于 2025-7-17 21:07
是要替换里面的代码吗
页:
[1]