![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хранение информации об ордерах в объектах или массивах может привести к ее потере при закрытии терминала.
В итоге как понимаю придется либо хранить информацию в чемто внешнем, либо использовать при открытии два ордера. В второй вариант с точки зрения устойчивости и быстродействия думаю предпочтительнее
спасибо за советы
Тогда будет три параметра для принятия решения, но свободы выбора меньше. Я так работаю. Просто. Быстро. Хочу перейти на четыре.
да вот пришло еще решение. В комментарии можно хранить изначальный лот ордера. Тогда при достижении цены уровня "сейфа", проверяем если лот ордера совпадает в лотом в комментарии - закрываем его частично, в противном случае понимаем что ордер уже частично закрывался
да вот пришло еще решение. В комментарии можно хранить изначальный лот ордера. Тогда при достижении цены уровня "сейфа", проверяем если лот ордера совпадает в лотом в комментарии - закрываем его частично, в противном случае понимаем что ордер уже частично закрывался
Логично. Остается программная реализация. Я бы посмотрел.
да вот пришло еще решение. В комментарии можно хранить изначальный лот ордера. Тогда при достижении цены уровня "сейфа", проверяем если лот ордера совпадает в лотом в комментарии - закрываем его частично, в противном случае понимаем что ордер уже частично закрывался
Выбирать всё-равно нужно в цикле, поэтому можно сравнивать лот при открытии, с текущим лотом, и если лоты равны = закрыть часть при достижении определённого уровня профита.
Задача "...закрытия ордера после прохождения определенного количества пунктов..." решается в момент открытия ордера путем установки значения Take Profit.
Как я понимаю, Вы хотите сначала открыть позицию без ТР, а при достижении заданного значения профита частично закрыть, дабы уменьшить потери в случае достижения обеими позициями (в МТ5 - совокупной позиции) значения Stop Loss. Вторая позиция идет по тренду "до победного".
В идеале, значение ТР при его достижении, должно обеспечивать безубыток совокупной позиции.
Простейшее решение - изначально открывать два ордера по одной цене с одинаковым значением SL: один - без TP, другой - с TP. Минус - изначальная фиксация объемов этих позиций, а значит нельзя манипулировать размером доли закрываемой части позиции.
Все это технически легко решается как в МТ5, так и в МТ4, но есть общая системная проблема. Решение нужно принимать по совокупности четырех параметров: 1. Максимальная доля закрываемой части позиции. 2. Минимальный уровень ТР. 3. Допустимый уровень убытка. 4. Допустимый размер лота.
В обратном порядке, разумеется.
Для топик стартера, я думаю, это самый подходящий вариант. Еще один вариант открывать один ордер и после частичного закрытия ставить стоп лосс в без убыток. Таким образом если стоп лосс находится в без убытке то это будет признаком того, что ордер был частично закрыт.
да вот пришло еще решение. В комментарии можно хранить изначальный лот ордера. Тогда при достижении цены уровня "сейфа", проверяем если лот ордера совпадает в лотом в комментарии - закрываем его частично, в противном случае понимаем что ордер уже частично закрывался
Использование комментов в данном случае самый ненадежный вариант. Они могут меняться брокером, дописываться, при этом переполняться ... Я бы сохранял тикеты открытых позиций, которые были частично закрыты, в файл. Файл периодически обновлять, удаляя из него тикеты позиций, которые закрыты полностью.
Хранение информации об ордерах в объектах или массивах может привести к ее потере при закрытии терминала.
В итоге как понимаю придется либо хранить информацию в чемто внешнем, либо использовать при открытии два ордера. В второй вариант с точки зрения устойчивости и быстродействия думаю предпочтительнее
спасибо за советы
Так записываете и храните все в файлах. Не простое решение, но за то гораздо безопаснее.