cdf888 2007-11-6 13:28
追踪止损子程序
///////////////////////追踪止损子程序////////////////////////////////////
void TrailStop()
{
double mstp;
if(OrderType() == OP_BUY)
{
if(((Bid - OrderOpenPrice()) / Point > OverTakeProfit) && Auto_stp == true)
mstp = Bid - 20 * Point;
if(mstp > OrderStopLoss())
OrderModify(OrderTicket(),OrderOpenPrice(),mstp,0,0,Green);
}
if(OrderType() == OP_SELL)
{
if(((OrderOpenPrice() - Ask) / Point > OverTakeProfit) && Auto_stp == true)
mstp = Ask +20 * Point;
if(mstp < OrderStopLoss())
OrderModify(OrderTicket(),OrderOpenPrice(),mstp,0,0,Green);
}
}
////////////////////////////////////////////////////////////////////////
上面这个子程序,如果屏蔽,ea的功能就正常,这段代码的问题是:运行后自动将sell单的止损改为0
请老师帮忙查下是哪里的错误?谢谢
xfxyldj 2007-11-6 13:41
请开自己的帖子。
嵌套不对。
后面两个语句应该是前一个if的一部分。
if(((OrderOpenPrice() - Ask) / Point > OverTakeProfit) && Auto_stp == true)
[b][color=red]{[/color] [/b]
mstp = Ask +20 * Point;//[color=red]这个语句执行了才执行后面两条语句
[/color] if(mstp < OrderStopLoss())
OrderModify(OrderTicket(),OrderOpenPrice(),mstp,0,0,Green);
[color=red][b]}[/b][/color]
买单的处理也一样的问题。
红色的大括号是必需的。