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 () (например, минимально необходимое расстояние от цены, которая на самом деле равна 0 для EURUSD), чтобы указать уровни тейк-профита и стоп-лосса, которые вообще не работают с моей стратегией.
Буду признателен за ваше мнение по этому поводу.
Во-первых, 15 пунктов не обязательно означает 15 пунктов. Если у вашего брокера 5-значные котировки, 15 * Point будет означать 1,5 пункта, что может быть слишком мало для текущей цены.
Далее, всегда проще распечатать значения, прежде чем спрашивать нас. Поэтому попытайтесь увидеть все значения (Bid, Ask, Stop Loss, Take Profit), и это может быть легко увидеть проблему.
Последнее предложение заключается в том, что ваш брокер является брокером ECN или ведет себя как он. В таком случае попробуйте int ticket=OrderSend(_Symbol,OP_BUY,0.1,Ask,10/*slippage in Point*/,0,0,NULL)
и, если все в порядке, измените его, разместив стоп-лосс и тейк-профит.