Закрытие 1/2 позиции советником

 

Привет Всем,

Я хочу чтобы мой советник автоматически и один единственный

раз закрывал 1/2 позиции (для каждой открытой позиции), если Например цена зашла в профит +20 пипс.

Но тут столкнулся со следующими вариантами:

1. Лоты позиции могут отличаться - один раз 0.02, другой 0.2 и т.д.

2. Может быть открыто несколько позиций в разное время и опять же, с различающимися лотами.

.

- Как в этом случае знать что позиция еще не была разделена и не получилось что одна

и та же была поделена несколько раз?

Спасибо!

 

По комментарию ордера можно определить.

 

Есть два способа:

1) Сложный. Вести таблицу "своих" тикетов. После операции частичного закрытия позы искать новую позу с неизвестным тикетом. Его запоминать в таблице и помечать как уже отработавший.

2) Более простой, но нужно изменить логику. Позу открываем не одной, а двумя позициями. Одну с профитом 20 пунктов, вторую - по правилам оставшейся половины. Можно возразить - дескать при открытии на реале мы получим разные цены. Но это палка о двух концах - при частичном зарытии вы ведь тоже не получите гарантированных 20 пунктов.

 
Scriptong писал(а) >>

Есть два способа:

1) Сложный. Вести таблицу "своих" тикетов. После операции частичного закрытия позы искать новую позу с неизвестным тикетом. Его запоминать в таблице и помечать как уже отработавший.

2) Более простой, но нужно изменить логику. Позу открываем не одной, а двумя позициями. Одну с профитом 20 пунктов, вторую - по правилам оставшейся половины. Можно возразить - дескать при открытии на реале мы получим разные цены. Но это палка о двух концах - при частичном зарытии вы ведь тоже не получите гарантированных 20 пунктов.

Сложно получается!

Может для начала я упрощу случай (вопрос) - если есть всего одна открытая позиция и она может по нескольку раз пересекать границу в +20 пипс.

- Как добиться того чтобы при этом не происходило ее уменьшение на 1/2 лота открытия больше одного раза?

Спасибо!

 
Integer писал(а) >>

По комментарию ордера можно определить.

Комментарий это что-то вроде свойства? Если Да, то то что надо - можно ли немного подробнее об этом?

 

Мои позиции открываются вручную, в этом случае комментарий будет эквивалентен ""?

 
chief2000 >>:

Мои позиции открываются вручную, в этом случае комментарий будет эквивалентен ""?

Вы можете сами заполнить поле "Комментарий". При переоткрытии комментарий будет пустой. Таким образом, позиции с комментарием вы должны закрыть, наполовину. Остальные - не трогать.


 
chief2000 писал(а) >>

Комментарий это что-то вроде свойства? Если Да, то то что надо - можно ли немного подробнее об этом?

Сделайте эксперимент в тестере, посмотрите на комментарий ордера оставшегося после частичного закрытия и все поймете.

 
Scriptong писал(а) >>

Вы можете сами заполнить поле "Комментарий". При переоткрытии комментарий будет пустой. Таким образом, позиции с комментарием вы должны закрыть, наполовину. Остальные - не трогать.

Задавать Комментарий вручную немного рискованно - если забуду его задать то и советник не будет работать, как я от него ожидаю.

Я подумал искать ордера, которые пересекли 20 пипс && ОrderComment()=="". А после закрытия половины думал задать ордеру любой комментарий.

Но что-то я не нашёл как это сделать.. Существует ли возможность изменить комментарий ордера?

Спасибо!

 
chief2000 >>:

Задавать Комментарий вручную немного рискованно - если забуду его задать то и советник не будет работать, как я от него ожидаю.

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

 

Решение подобных задач обычно кроется в условии задачи.

Если нужно просто 1 раз за всю историю работы советника закрыть ордер на половину, то это делается просто - учесть номер ордера в статической переменной.

Другое дело, что этим задача не ограничивается. Следующим шагом в развитии советника является возможность полузакрыть уже полузакрытый ордер или изменить настройку. Для этой цели нужно вести специальный учёт, а также обеспечить пользователя наглядными средствами управления.

Если интересно, посмотрите как это решено в AG 4.

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