
- www.mql5.com
Проще отслеживать OnTrade (нужно отслеживать только кол-во позиций). OnTradeTransaction заставит вас попариться над внутренней обработкой торговых событий.
// ----------------------------------------------------------------------------- // Проверить открытие или закрытие позиции // запускать в OnTrade() эксперта // ----------------------------------------------------------------------------- bool AnalyserTrade::Run() { SelectPositions(); // выбрать тикеты позиций по текущему символу if (m_newTickets.Total() == m_oldTickets.Total()) return false; long ticket; if (m_newTickets.Total() > m_oldTickets.Total()) { // ищем тикет новой позиции ticket = FindExtraTicket(m_newTickets, m_oldTickets); if (ticket > 0) { PrintFormat("%s / opened %I64d", __FUNCTION__, ticket); } } else if (m_newTickets.Total() < m_oldTickets.Total()) { // ищем тикет закрытой позиции ticket = FindExtraTicket(m_oldTickets, m_newTickets); if (ticket > 0) { PrintFormat("%s / closed %I64d", __FUNCTION__, ticket); } } // запоминаем текущие тикеты m_oldTickets.Clear(); if (m_newTickets.Total() > 0) m_oldTickets.AddArray(m_newTickets); return true; }
Меня как трейдера (хеджингового счета) интересует только события:
- открылась позиция
- сработала отложка
- закрылась позиция
Проще отслеживать OnTrade (нужно отслеживать только кол-во позиций). OnTradeTransaction заставит вас попариться над внутренней обработкой торговых событий.
Меня как трейдера (хеджингового счета) интересует только события:
- открылась позиция
- сработала отложка
- закрылась позиция
AnalyserTrade?
Разве подобный код спасет от того, что терминал по три раза подряд его будет запускать? Пардон за нубский вопрос, но что это за функции такие ?
AnalyserTrade - мой класс анализа трейдов (ордеров, сделок и позиций)
Кстати, по количеству срабатываний обработчик событий OnTrade меньше OnTradeTransaction. Сначала срабатывает OnTradeTransaction, затем OnTrade.
P.S. Каждый пишет свой "велосипед" по обработке трейдов, из-за кучи торговых событий терминала. Меня, например, интересуют только 2 события - открытие и закрытие позиции. Остальные просто игнорирую.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Приветствую!
Хочу записывать все торговые события с терминала. Решил использовать OnTrade. Но почему-то терминал при закрытии ордера, например, присылает аж три аллерта из кода ниже
Почему так происходит и как этого избежать?
ЗЫ: В гугле только про квик есть похожие обсуждения.