как для текущего ордера проверить исполнялся ли OrderModify или нет?
Что Вы под этим подразумеваете? Модификация параметров ордера
не оставляет явных следов, то есть, если Вы не знали исходное
состояние ордера(SL и/или TP), то не сможете проверить изменение.
вот это и имею ввиду,спасибо за ответ
Rosh писал (а):
Что Вы под этим подразумеваете? Модификация параметров ордера не оставляет явных следов, то есть, если Вы не знали исходное состояние ордера(SL и/или TP), то не сможете проверить изменение.
Что Вы под этим подразумеваете? Модификация параметров ордера не оставляет явных следов, то есть, если Вы не знали исходное состояние ордера(SL и/или TP), то не сможете проверить изменение.
А заглянуть в журнал нельзя ? Конечно , проводить такую проверку
на каждом тике накладно, но, например, раз в день ?
Или лучше сохранять параметры ордера для сравнения ?
Хотя, результаты такой проверки малоинформативны, разве что, получить точное время модификации.
суть задачи остоновить модификацию если стоп в безубыточное положение залез я остонавливаю сравнивая цену открытия и текущую, просто хотелось попроще
Сделай доп.переменую и присваивай ей значение true, когда сделал
модификацию ордера. Всё.
вот похоже то что нужно попробую
skywoker:
суть задачи остоновить модификацию если стоп в безубыточное положение залез
суть задачи остоновить модификацию если стоп в безубыточное положение залез
Аргументы:
StopLossLHonlyProfit - bool флаг, тянуть ли только один раз.
StopLossLHpips - на сколько пипсов ушло в безубыток движение.
Тогда:
if (OrderType() == OP_BUY) // открыта длинная позиция { RefreshRates(); new_stoploss = ???; // calc s/l if (new_stoploss > OrderStopLoss()) { if ( (StopLossLHonlyProfit && (new_stoploss > (OrderOpenPrice() + ((spread + StopLossLHpips) * Point) ))) || (!StopLossLHonlyProfit) ) { // modify s/l if (!OrderModify(OrderTicket(), OrderOpenPrice(), new_stoploss, OrderTakeProfit(), 0)) PrintErrMessage("OrderModify() FAILED "); } } } if (OrderType() == OP_SELL) // открыта короткая позиция { RefreshRates(); new_stoploss = ???; // calc s/l if (new_stoploss < OrderStopLoss()) { if ( (StopLossLHonlyProfit && (new_stoploss < (OrderOpenPrice() - ((spread + StopLossLHpips) * Point) ))) || (!StopLossLHonlyProfit) ) { // modify s/l if (!OrderModify(OrderTicket(), OrderOpenPrice(), new_stoploss, OrderTakeProfit(), 0)) PrintErrMessage("OrderModify() FAILED "); } } } }Как-то так.
chv, PrintErrMessage()???
Типа, любопытно... :-)
Типа, любопытно... :-)
голову сломал уже не выходит ниче покажете в примере как остонавить
движение после 12 пунктов прохождения цены в нужном направлении
Файлы:
jgrtzwibhcay.mq4
8 kb
KimIV:
chv, PrintErrMessage()???
Типа, любопытно... :-)
Благодарю... нашёл здесь Существует ли библиотека для MQL4 по линейной алгебре?
chv, PrintErrMessage()???
Типа, любопытно... :-)
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь