К экстренной помощи обращался, не помогло. Уж больно расплывчат диагноз "Неправильные параметры".
Подозреваю, что ошибка где-то в выражении
NormalizeDouble(Ask-(Point*TakeProfit/2), Digits)
Но на мой взгляд всё правильно.
Без TP и SL эфеект тот-же. Ничего не понимаю. ):
ticket.buy = OrderSend (Symbol(), OP_BUYLIMIT, Lot, NormalizeDouble(Ask-(Point*TakeProfit/2), Digits), 3, 0, 0, "_"+Symbol(), _MagicNumber, Lime);
К экстренной помощи обращался, не помогло. Уж больно расплывчат диагноз "Неправильные параметры".
Подозреваю, что ошибка где-то в выражении
Но на мой взгляд всё правильно.
Без TP и SL эфеект тот-же. Ничего не понимаю. ):
У меня такие же глюки были. С тех пор я даже лоты нормализую. Только, конечно, не Digits.
К экстренной помощи обращался, не помогло. Уж больно расплывчат диагноз "Неправильные параметры".
Подозреваю, что ошибка где-то в выражении
Но на мой взгляд всё правильно.
Без TP и SL эфеект тот-же. Ничего не понимаю. ):
ticket.buy = OrderSend(Symbol(),OP_BUYLIMIT,Lot,NormalizeDouble(Ask-(TakeProfit/2)*Point, Digits),3*Point, NormalizeDouble(Ask-(TakeProfit/2)*Point, Digits)-Point*StopLoss,NormalizeDouble(Ask-(TakeProfit/2)*Point, Digits)+Point*TakeProfit,"_"+Symbol(), _MagicNumber, Lime);
OrderSend( string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE) // пример ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-25*Point,Ask+25*Point,"My order #"+counter,16384,0,Green);
Пример...
тикет в пределах работы эксперта или скрипта сохраняет последнее значение,
в нашем случае номер последнего "ордерсенда", вернее позы.
теперь далее, узнаём цену открытия и т-п этой позы:
double optp=OrderOpenPrice(); double lptp=OrderTakeProfit(); // double pflo=(optp+lptp) / 2 ;
и собственно половинку цены меж ними...
Её то и вставляем в открытие лимитника:
ticket= OrderSend (Symbol(), OP_BUYLIMIT, Lot, pflo , 3, 0, 0, "_"+Symbol(), _MagicNumber, Lime);
А вообще, для расстановки по пипсам есть хорошая и штатная конструкция:
double bb=Ask+50*Point;
где вместо аска или бида подставляем свою расчитаную цену...
Например, открываем позу и выставляем отложенный вместе:
int skoka=50; // ticket= OrderSend (Symbol(), OP_BUY, Lot, Ask, 3, 0, 0, "_"+Symbol(), _MagicNumber, Lime); // ticket= OrderSend (Symbol(), OP_BUYLIMIT, Lot, Ask+skoka*Point, 3, 0, 0, "_"+Symbol(), _MagicNumber, Lime);
С направлением, спредами и пр. уже не сложно будет разрбраться.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Сейчас у меня исполнения по рыночным ордерам:
Хочу выставлять лимитный ордер на уровне отступа половины тейк-профита от текущей цены.
Пишу так:
И чего-то не работает оно. Не выставляются ордера. В журнале ошибка 3.
Чего не так делаю? Как поправить?
П.С.
Значения StopLoss=100, TakeProfit=100
ДЦ 4 знака