1
if (Ask > highest_price) { 

double takeprofit=NormalizeDouble(Bid+15*Point,Digits); 

double stoploss=NormalizeDouble(Bid-5*Point,Digits); 

int ticket=OrderSend(Symbol(),OP_BUY,0.1, Ask,0,stoploss,takeprofit,"My order",0,0,clrGreen); }

目前这是我的代码。我想分别使用自定义止损和获利 5 点和 15 点。但我得到一个与此相关的错误代码 130。它只允许我使用 MarketInfo()(例如,与价格所需的最小距离,对于 EURUSD 来说实际上是 0)来指定止盈和止损水平,这根本不适用于我的策略。

我会很感激你对此的看法。

4

1 回答 1

1

首先,15 点并不一定意味着 15 点。如果您的经纪商有 5 位数的报价,15*Point 将意味着 1.5 点,这可能与当前价格相比太短。接下来,在询问我们之前打印值总是更容易。因此,尝试查看所有值(买价、卖价、止损、获利),可能很容易发现问题。最后一个建议是您的经纪人是 ECN 经纪人或行为类似。在这种情况下,请尝试int ticket=OrderSend(_Symbol,OP_BUY,0.1,Ask,10/*slippage in Point*/,0,0,NULL),如果可以,然后通过设置止损和获利来修改它

于 2018-08-19T16:31:39.870 回答