问题描述
我现在很困惑,已经有一段时间了。我试图弄清楚为什么我相信if语句为true时,此字符串函数不会更新字符串。
void OnTick()
{
string aboveprofit = "";
for ( int b = OrdersTotal() - 1; b >= 0; b-- )
{
if ( OrderSelect( b,SELECT_BY_POS,MODE_TRADES ) )
if ( OrderSymbol() == Symbol() )
{
if ( OrderSymbol() == OP_SELL )
{
OrderModify( OrderTicket(),OrderOpenPrice(),Bid + ( 150 * _Point ),OrderTakeProfit(),CLR_NONE
);
if ( Ask < OrderOpenPrice() )
{
abovepoint = "321";
}
}
if ( OrderSymbol() == OP_BUY )
{
OrderModify( OrderTicket(),Ask - ( 150 * _Point ),CLR_NONE
);
if ( Bid > OrderOpenPrice() )
{
abovepoint = "123";
}
}
}
}
解决方法
Q :“当我认为if语句为真时,为什么此字符串函数不会更新字符串?”
好吧,你怎么知道没有?
在Print( Volume[0],abovepoint );
代码块条目的第一行右边添加void OnTick(){...}
命令,以便检查客户终端日志中以上发布的假设的有效性。 / p>
上面的代码片段缺少实际的abovepoint
声明,因此,除了此以外,不能添加任何其他内容。
勘误表: OrderSymbol()
很可能永远不会匹配 { OP_BUY | OP_SELL }
-常量,应该是OrderType()
,不是吗?
OrderModify()
-命令几乎可以确保对任何XTO指令生成服务器端拒绝,这将违反由代理端定义的FREEZE_LEVEL和/或最小允许距离。从实际的{ TP | SL }
价格水平修改了{ Ask | Bid }
目标。请仔细检查您的经纪人的条款和条件,并最好地修改您的代码,以防止出现违反指令的情况。