Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если я Вас правильно понял, то вот так будет правильнее. Как более опытный товарищ, подскажите плиз, с целью отлова новорожденных позиций такой фильтр сработает ??? Или может есть более верный вариант ???
Это к Алексею - я не работаю с OnTradeTransaction() по некоторым причинам.
Тем самым предлагаешь отодвинуть другие сообщения взад? Пусть о них никто не вспоминает? Не правильно это.
На мой взгляд, лучше определить отдельный раздел форума в котором каждая проблема будет отдельной темой. Количество тем гораздо меньше количества сообщений по одной теме. Поэтому не смотря на немалое количество тем, отодвигаться они будут не так далеко как отодвигаются сейчас отдельные вопросы и сообщения об ошибках.
Ну вот ты выделил красным, что ты не знаешь. А проблема-то в чём была? Как она проявлялась? И что за новый метод?
А насчёт сообщений об ошибках: "правильно-не-правильно", но если хочешь сообщить о ней, то сообщишь. А если нет желания, то и нет желания. И отгораживаться типа "даю людям поговорить о своём" - это отмазка.
Если я Вас правильно понял, то вот так будет правильнее. Как более опытный товарищ, подскажите плиз, с целью отлова новорожденных позиций такой фильтр сработает ??? Или может есть более верный вариант ???
На мой взгляд эта строка
лишняя. А вообще, я сейчас пересматриваю работу OnTradeTransaction на такой вариант
В момент добавления сделки нет тикета ордера породившего сделку. Но если нужен тикет ордера и его свойства, как мне сейчас нужно цену открытия ордера, чтобы не сбивался шаг сетки из-за проскальзывания, то это лучший вариант. имхо.
В общем я сторонник писать под конкретную задачу. А в СБ нагромоздили универсальности которая требует дополнительных, иногда совершенно не нужных переменных.
Ну вот ты выделил красным, что ты не знаешь. А проблема-то в чём была? Как она проявлялась? И что за новый метод?
А насчёт сообщений об ошибках: "правильно-не-правильно", но если хочешь сообщить о ней, то сообщишь. А если нет желания, то и нет желания. И отгораживаться типа "даю людям поговорить о своём" - это отмазка.
На мой взгляд эта строка
лишняя. А вообще, я сейчас пересматриваю работу OnTradeTransaction на такой вариант
В момент добавления сделки нет тикета ордера породившего сделку. Но если нужен тикет ордера и его свойства, как мне сейчас нужно цену открытия ордера, чтобы не сбивался шаг сетки из-за проскальзывания, то это лучший вариант. имхо.
В общем я сторонник писать под конкретную задачу. А в СБ нагромоздили универсальности которая требует дополнительных, иногда совершенно не нужных переменных.
Крайне благодарен за указание правильного направления. Сделал так (ниже, вроде работает):
Теперь ломаю голову как-бы потехничнее отлавливать тикеты позиций закрывшихся либо по тейкпрофиту, либо по прямому указанию. От них нужны только тикеты, чтобы убрать эти позиции из основного массива позиций.
Крайне благодарен за указание правильного направления. Сделал так (ниже, вроде работает):
Теперь ломаю голову как-бы потехничнее отлавливать тикеты позиций закрывшихся либо по тейкпрофиту, либо по прямому указанию. От них нужны только тикеты, чтобы убрать эти позиции из основного массива позиций.
Я-бы добавил ещё проверку на символ и магик
Вот кусок из моего кода где отлавливается закрытие позиции.
Можно ещё разделить по причинам закрытия из перечисления ENUM_DEAL_REASON
Вот в другом советнике
В первом случае мне нужен ордер, во втором достаточно сделки. В общем когда что нужней, то и буду писать.
Я-бы добавил ещё проверку на символ и магик
Вот кусок из моего кода где отлавливается закрытие позиции.
Можно ещё разделить по причинам закрытия из перечисления ENUM_DEAL_REASON
Вот в другом советнике
В первом случае мне нужен ордер, во втором достаточно сделки. В общем когда что нужней, то и буду писать.
Добрый вечер. Ваша отзывчивость и внимание делают мне честь. Крайне признателен. как говорит молодежь - респект и уважуха.
Спасибо за дельные советы. Магик и символ не включаю почти осознано, во первых потому-что они не очень сейчас нужны, у советника нет и скорее всего не будет конкурентов, потому-что он высокочастотный, огромное количество минимальных позиций. Он сам от себя задыхается, куда ему еще конкурировать с другими. Будет один в терминале и на счету, если до этого дойдет конечно. Вторая скорее всего надуманная, я просто не очень разбираюсь пока, но возможно это хоть чуть сэкономит ресурсы.
Ваши примеры хороши, я их обязательно сохраню, но у меня нету ни тикета, ни ордера, ни сделки. Точнее у меня их сотни и какая из них сейчас закроется мне не известно. Выше Вы натолкнули меня на мысль, что факт закрытия позиции можно вытащить из
Сейчас засяду и попробую вывести на принт все что он выдает в потоке. в качестве генератора позиций будет мой советник, он уже умеет активно накидывать позиции и не менее активно их закрывать. останется только потом разобраться какое, из кучи сообщений, однозначно информирует о закрытии позиции. Останется найти эту позицию (тикет позиции) в массиве/структуре и удалить. Вот как-то так.
А в качестве печатной машинки попробую использовать код примера из справочника, в разделе про эту функцию, он там называется:
//| OnTradeTransaction_Sample.mq5 |
//| Copyright 2018, MetaQuotes Software Corp. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property description "Пример слушателя событий TradeTransaction"
Добрый вечер. Ваша отзывчивость и внимание делают мне честь. Крайне признателен. как говорит молодежь - респект и уважуха.
Спасибо за дельные советы. Магик и символ не включаю почти осознано, во первых потому-что они не очень сейчас нужны, у советника нет и скорее всего не будет конкурентов, потому-что он высокочастотный, огромное количество минимальных позиций. Он сам от себя задыхается, куда ему еще конкурировать с другими. Будет один в терминале и на счету, если до этого дойдет конечно. Вторая скорее всего надуманная, я просто не очень разбираюсь пока, но возможно это хоть чуть сэкономит ресурсы.
Ваши примеры хороши, я их обязательно сохраню, но у меня нету ни тикета, ни ордера, ни сделки. Точнее у меня их сотни и какая из них сейчас закроется мне не известно. Выше Вы натолкнули меня на мысль, что факт закрытия позиции можно вытащить из
Сейчас засяду и попробую вывести на принт все что он выдает в потоке. в качестве генератора позиций будет мой советник, он уже умеет активно накидывать позиции и не менее активно их закрывать. останется только потом разобраться какое, из кучи сообщений, однозначно информирует о закрытии позиции. Останется найти эту позицию (тикет позиции) в массиве/структуре и удалить. Вот как-то так.
А в качестве печатной машинки попробую использовать код примера из справочника, в разделе про эту функцию, он там называется:
Всегда приятно поделиться своими небольшими знаниями с человеком который на основе этих советов что-то самостоятельно выясняет из документации. © И.А. Крылов. Кукушка хвалит Петуха, за то, что хвалит он Кукушку. )))
Если советник пишется исключительно для себя, конечно можно допускать какие-то вольности. Считаете не обязательным проверять символ и магик, значит не надо.
По поводу выделенного:
Есть всё, и тикет позиции, и тикет ордера, и тикет сделки. И даже не составляет труда вытащить сделку и\или ордер открывающий позицию. Всё это в структуре MqlTradeTransaction
Если позицию выбрать не получилось, значит она закрыта Ой-ли?
Алексей, это всё относится исключительно к обработке события OnTradeTransaction
Произошло событие, совершена сделка закрывающая позицию. Позиции уже в этот момент нет. Подтвердить это можно выбрав список ордеров и сделок (в коде отсутствует) и прочитав
И надо учитывать, что разговор идёт о счёте hadge где позиция, как правило, имеет только по два ордера и две сделки.