Как проверить, была ли позиция модифицирована вручную? - страница 6

 
Dmitry Fedoseev #:

Использованием глобальных переменных терминала задача решается. 

При открытии ордера создаем глобальную переменную, ее имя включает тикет ордера и еще что-нибудь, например "_SL", а значение - текущее значение стоплосса.

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

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

что означает, что больше советник не должен модифицировать стоплосс у этого ордера.

Не прокатит, или чуток надо менять алгоритм

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Как проверить, была ли позиция модифицирована вручную?

Elena Baranova, 2022.09.15 10:25

Добрый день, коллеги.

Столкнулась с такой проблемой:

Есть советник, который управляет позициями открытыми вручную и другим советником - выставляет SL и TP, и трейлит SL по определенному алгоритму.

Нужно, чтобы советник перестал управлять теми позициями, у которых SL был изменен вручную. Есть версии советника для MT4 и MT5.

Можно ли идентифицировать посредством MQL4/MQL5, что модификация позиции была произведена вручную, а не данным советником?

Я такой возможности пока не вижу. Мне казалось, что в MQL5 это можно сделать через OnTradeTransaction(), но возможно я ошибаюсь, так как не нашла нужный параметр.

Буду благодарна за совет )

Наверное не при открытии ордера, а при первом изменении TP/SL. И при обнаружении стороннего вмешательства не писать -1, а удалять переменную. Иначе может забить под завязку.

Если это прокатит, наверное для МТ4 лучший вариант.

 

чем использование глобальных терминала лучше использования файлов/СУБД ?

только дополнительные сложности. И хронится только в приведении к double и именования надо придумывать и атомарность под большим вопросом (транзакция для изменения нескольких переменных - тот ещё геморой на ровном месте)

и перенос с места на место (с одного компа на другой) так вообще нетривиальная для новичка задача. Попробуйте описать действия "как перенести советник на другой VDS" :-)

в добавок они (глоб.переменные) ещё и тормозят

 
Maxim Kuznetsov #:

чем использование глобальных терминала лучше использования файлов/СУБД ?

только дополнительные сложности. И хронится только в приведении к double и именования надо придумывать и атомарность под большим вопросом (транзакция для изменения нескольких переменных - тот ещё геморой на ровном месте)

и перенос с места на место (с одного компа на другой) так вообще нетривиальная для новичка задача. Попробуйте описать действия "как перенести советник на другой VDS" :-)

в добавок они (глоб.переменные) ещё и тормозят

Что? Глобальные переменные терминала использовать сложно? 

 
Alexey Viktorov #:

Не прокатит, или чуток надо менять алгоритм

Наверное не при открытии ордера, а при первом изменении TP/SL. И при обнаружении стороннего вмешательства не писать -1, а удалять переменную. Иначе может забить под завязку.

Если это прокатит, наверное для МТ4 лучший вариант.

Я мог бы объяснить почему так... но как уже понял, в этом нет смысла)))

 
Ребята, а вам еще не надоело идиотами себя изображать? 
 
Dmitry Fedoseev #:

Что? Глобальные переменные терминала использовать сложно? 

атомарно больше 1-й уже сложно

это не база данных, не надо в неё пихать невпихуемое

 
Maxim Kuznetsov #:

атомарно больше 1-й уже сложно

это не база данных, не надо в неё пихать невпихуемое

сочувствую

 
Dmitry Fedoseev #:

сочувствую

себе посочуствуй..может начнёшь книжки читать, а может (чем чёрт не шутит), даже и программировать

 
Maxim Kuznetsov #:

себе посочуствуй..может начнёшь книжки читать, а может (чем чёрт не шутит), даже и программировать

Сразу, как только ты букварь осилишь

 
Dmitry Fedoseev #:

Я мог бы объяснить почему так... но как уже понял, в этом нет смысла)))

А я уж было подумал, хоть одна умная мысль прозвучала в этой теме которую можно обсудить. И вот облом…