Добрый вечер. Как отследить событие закрытия рыночной позиции по тейку? Только не просто сработка тейка, а уточнение какой тип позиции закрылся (покупка или продажа).
Я пользуюсь своими классами для написания кода. В общем, прилагаю метод из своего класса, чтобы пояснить что у меня написано:
По сути, реализацию choiceDealPrimary() можно не смотреть. Он лишь отсеивает "НЕ СВОИ" позиции.
Остальное и так понятно для тех, кто видит с чем я сравниваю.
Если его вызвать в OnTradeTransaction() вот так:
Всё работает. Но, если в условии проверить какая позиция закрыта по тейку, получается не то, что нужно, потому что я не нашёл как это сделать.
Как узнать позиция какого типа закрыта по тейку в событии?
Так ведь позиция BUY всегда закрывается сделкой SELL хоть по тейку, хоть по стопу или руками закрыта…
Так ведь позиция BUY всегда закрывается сделкой SELL хоть по тейку, хоть по стопу или руками закрыта…
Я понимаю нужно задать условия вот такие?
if (transaction.deal_type == DEAL_TYPE_BUY) { // ЗАКРЫЛАСЬ SELL-ПОЗИЦИЯ } else if (transaction.deal_type == DEAL_TYPE_SELL) { // ЗАКРЫЛАСЬ BUY-ПОЗИЦИЯ }
Думал, есть вариант узнать, позиция какого типа закрылась, а не позицией какого типа закрылась другая позиция..
Так их всего две, на север и на йух. Если закрывающая BUY значит закрываемая SELL и наоборот. Других вариантов нет.
Отложенный ордер не закрывается, а удаляется. Это другой тип транзакции.
Я бы, например, для начала, собрал бы все открытые позиции в структуру или в массив.
И сравнивая количество записей в структуре/массиве со списком открытых позиций в терминале, нашел бы все необходимое, и не только ответ на вопрос ветки, не заморачиваясь стандартными функциями.
Я бы, например, для начала, собрал бы все открытые позиции в структуру или в массив.
И сравнивая количество записей в структуре/массиве со списком открытых позиций в терминале, нашел бы все необходимое, и не только ответ на вопрос ветки, не заморачиваясь стандартными функциями.
Ренат, это самый плохой вариант. Если в mql4 есть только ордер и его тикет по которому в истории можно найти всё что надо, то в mql5 есть ордер открывающий позицию, сделка открывающая позицию, сама позиция, ордер закрывающий и сделка закрывающая. Позиции в истории нет. Ни тикета её нет, ни цены, ни времени. И что даст изменение количества открытых позиций? Только головную боль и гемор…
Ренат, это самый плохой вариант. Если в mql4 есть только ордер и его тикет по которому в истории можно найти всё что надо, то в mql5 есть ордер открывающий позицию, сделка открывающая позицию, сама позиция, ордер закрывающий и сделка закрывающая. Позиции в истории нет. Ни тикета её нет, ни цены, ни времени. И что даст изменение количества открытых позиций? Только головную боль и гемор…
вот епт... беда, реально

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый вечер. Как отследить событие закрытия рыночной позиции по тейку? Только не просто сработка тейка, а уточнение какой тип позиции закрылся (покупка или продажа).
Я пользуюсь своими классами для написания кода. В общем, прилагаю метод из своего класса, чтобы пояснить что у меня написано:
По сути, реализацию choiceDealPrimary() можно не смотреть. Он лишь отсеивает "НЕ СВОИ" позиции.
Остальное и так понятно для тех, кто видит с чем я сравниваю.
Если его вызвать в OnTradeTransaction() вот так:
if (prEvent.isPositionAcquireTP(transaction, sym, g_magic)) { }
Всё работает. Но, если в условии проверить какая позиция закрыта по тейку, получается не то, что нужно, потому что я не нашёл как это сделать.
Как узнать позиция какого типа закрыта по тейку в событии?