Реализация метода "Сейфа" - страница 2

 
peterlogin:

Хранение информации об ордерах в объектах или массивах может привести к ее потере при закрытии терминала.
В итоге как понимаю придется либо хранить информацию в чемто внешнем, либо использовать при открытии два ордера. В второй вариант с точки зрения устойчивости и быстродействия думаю предпочтительнее

спасибо за советы

Тогда будет три параметра для принятия решения, но свободы выбора меньше. Я так работаю. Просто. Быстро. Хочу перейти на четыре. 

 

да вот пришло еще решение. В комментарии можно хранить изначальный лот ордера. Тогда при достижении цены уровня "сейфа", проверяем если лот ордера совпадает в лотом в комментарии - закрываем его частично, в противном случае понимаем что ордер уже частично закрывался

 
peterlogin:

да вот пришло еще решение. В комментарии можно хранить изначальный лот ордера. Тогда при достижении цены уровня "сейфа", проверяем если лот ордера совпадает в лотом в комментарии - закрываем его частично, в противном случае понимаем что ордер уже частично закрывался

Логично. Остается программная реализация. Я бы посмотрел. 

 
peterlogin:

да вот пришло еще решение. В комментарии можно хранить изначальный лот ордера. Тогда при достижении цены уровня "сейфа", проверяем если лот ордера совпадает в лотом в комментарии - закрываем его частично, в противном случае понимаем что ордер уже частично закрывался

Выбирать всё-равно нужно в цикле, поэтому можно сравнивать лот при открытии, с текущим лотом, и если лоты равны = закрыть часть при достижении определённого уровня профита.

 
Алексей Тарабанов:

Задача "...закрытия ордера после прохождения определенного количества пунктов..." решается в момент открытия ордера путем установки значения Take Profit. 

Как я понимаю, Вы хотите сначала открыть позицию без ТР, а при достижении заданного значения профита частично закрыть, дабы уменьшить потери в случае достижения обеими позициями (в МТ5 - совокупной позиции) значения Stop Loss. Вторая позиция идет по тренду "до победного". 

В идеале, значение ТР при его достижении, должно обеспечивать безубыток совокупной позиции. 

Простейшее решение - изначально открывать два ордера по одной цене с одинаковым значением SL: один - без TP, другой - с TP. Минус - изначальная фиксация объемов этих позиций, а значит нельзя манипулировать размером доли закрываемой части позиции. 

Все это технически легко решается как в МТ5, так и в МТ4, но есть общая системная проблема. Решение нужно принимать по совокупности четырех параметров: 1. Максимальная доля закрываемой части позиции. 2. Минимальный уровень ТР. 3. Допустимый уровень убытка. 4. Допустимый размер лота.

В обратном порядке, разумеется. 

Для топик стартера, я думаю, это самый подходящий вариант. Еще один вариант открывать один ордер и после частичного закрытия ставить стоп лосс в без убыток. Таким образом если стоп лосс находится в без убытке то это будет признаком того, что ордер был частично закрыт.

 
peterlogin:

да вот пришло еще решение. В комментарии можно хранить изначальный лот ордера. Тогда при достижении цены уровня "сейфа", проверяем если лот ордера совпадает в лотом в комментарии - закрываем его частично, в противном случае понимаем что ордер уже частично закрывался

Использование комментов в данном случае самый ненадежный вариант. Они могут меняться брокером, дописываться, при этом переполняться ... Я бы сохранял тикеты открытых позиций, которые были частично закрыты, в файл. Файл периодически обновлять, удаляя из него тикеты позиций, которые закрыты полностью.

 
peterlogin:

Хранение информации об ордерах в объектах или массивах может привести к ее потере при закрытии терминала.
В итоге как понимаю придется либо хранить информацию в чемто внешнем, либо использовать при открытии два ордера. В второй вариант с точки зрения устойчивости и быстродействия думаю предпочтительнее

спасибо за советы

Так записываете и храните все в файлах. Не простое решение, но за то гораздо безопаснее.

Причина обращения: