问题描述
我创建了这个 Modify Take Profit 函数,但这将计算所有订单总数。 如何删除最后一个订单?希望它计算没有最后一个订单的平均价格
void ModifyTakeProfit()
{
double point=MarketInfo(OrderSymbol(),MODE_POINT);
double tp1,tp2,bbep,bsize; tp1=0;tp2=0;bbep=0;bsize=0;
for (int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==OrderMagicNumber())
{
if(OrderType()==OP_BUY)
{
tp1=OrderTakeProfit();
bbep += OrderOpenPrice()*OrderLots();
bsize+= OrderLots();
}
}
}
if (bbep>0)
{
bbep/=bsize;
tp1=bbep + TakeProfit*point;
if(TakeProfit!=0)
tp1=NormalizeDouble(tp1,(int)MarketInfo(OrderSymbol(),MODE_DIGITS));
else
tp1=0;
}
for (int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,MODE_TRADES)==false) break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==OrderMagicNumber())
{
if(OrderType()==OP_BUY)
{
tp2=OrderTakeProfit();
if(tp1!=tp2)
{
if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),tp1,Blue))
Print ("Error: ",GetLastError());
}
}
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)