Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Использованием глобальных переменных терминала задача решается.
При открытии ордера создаем глобальную переменную, ее имя включает тикет ордера и еще что-нибудь, например "_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" :-)
в добавок они (глоб.переменные) ещё и тормозят
чем использование глобальных терминала лучше использования файлов/СУБД ?
только дополнительные сложности. И хронится только в приведении к double и именования надо придумывать и атомарность под большим вопросом (транзакция для изменения нескольких переменных - тот ещё геморой на ровном месте)
и перенос с места на место (с одного компа на другой) так вообще нетривиальная для новичка задача. Попробуйте описать действия "как перенести советник на другой VDS" :-)
в добавок они (глоб.переменные) ещё и тормозят
Что? Глобальные переменные терминала использовать сложно?
Не прокатит, или чуток надо менять алгоритм
Наверное не при открытии ордера, а при первом изменении TP/SL. И при обнаружении стороннего вмешательства не писать -1, а удалять переменную. Иначе может забить под завязку.
Если это прокатит, наверное для МТ4 лучший вариант.
Я мог бы объяснить почему так... но как уже понял, в этом нет смысла)))
Что? Глобальные переменные терминала использовать сложно?
атомарно больше 1-й уже сложно
это не база данных, не надо в неё пихать невпихуемое
атомарно больше 1-й уже сложно
это не база данных, не надо в неё пихать невпихуемое
сочувствую
сочувствую
себе посочуствуй..может начнёшь книжки читать, а может (чем чёрт не шутит), даже и программировать
себе посочуствуй..может начнёшь книжки читать, а может (чем чёрт не шутит), даже и программировать
Сразу, как только ты букварь осилишь
Я мог бы объяснить почему так... но как уже понял, в этом нет смысла)))
А я уж было подумал, хоть одна умная мысль прозвучала в этой теме которую можно обсудить. И вот облом…