Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не воспроизводится.
Вывод:
ты что, никогда не торговал что-ли ?????
А как мне поможет анализ открытых позиций, если ордер после достижения tp становится закрытым?
ты что, никогда не торговал что-ли ?????
Переход на личности.
А ну так я и изначально планировал в onTimer, как и описал в вопросе. Ответили, что каждая секунда будет редко.
ордертотал в начале кода в онтике - если кол ордеров изменилось то смотрите в историю ордеров и по комменту ордера узнаёте был ли это тп, это будет похоже на функцию онтрейд или онтрейтранзакшн из мкл5
как и предыдущему оратору :
1) OrdersTotal и OrdersHistoryTotal много чего внутри себя делают помимо того что возвращают кол-во. Они долго работают и вообще нужны для инициализации цикла прохода по ордерам, а не выявления признака "пора/не_пора". Когда активная торговля, много ордеров, несколько роботов, можно нехорошо встрять.
2) OrdersTotal() может не поменятся сразу. Ваш ордер закрытый по TP остаётся в пуле TRADES, у него просто будет OrderCloseTime() != 0. И только потом переедет в History. То есть темп вы потеряете и протормозите с реакцией на событие
3) OrdersTotal() может вообще не поменятся. Ордер закрылся по TP, а где-то другой открылся.
проверяйтесь по более быстрым и надёжным признакам : AccountBalance, AccountMargin. При закрытиях рыночных баланс и маржа изменятся. Для надёжности - дополнить редким таймером и (для 5-ки) в OnTrade ставить флажок "пора перепроверить"
свои ордера/позиции надо помнить и если_что_то_случилось (баланс/маржа/просто_пора) то проверять конкретно их, а не весь пул ордеров.
PS/ в OnTick надо только торговать. Тогда всё будет хорошо и шанс REQUOTE/NO_PRICE резко поубавится. Все остальные проверки, тесты, сигналы - всё в низкий приоритет (когда совсем нечего делать) и на таймер
как и предыдущему оратору :
1) OrdersTotal и OrdersHistoryTotal много чего внутри себя делают помимо того что возвращают кол-во. Они долго работают и вообще нужны для инициализации цикла прохода по ордерам, а не выявления признака "пора/не_пора". Когда активная торговля, много ордеров, несколько роботов, можно нехорошо встрять.
2) OrdersTotal() может не поменятся сразу. Ваш ордер закрытый по TP остаётся в пуле TRADES, у него просто будет OrderCloseTime() != 0. И только потом переедет в History. То есть темп вы потеряете и протормозите с реакцией на событие
3) OrdersTotal() может вообще не поменятся. Ордер закрылся по TP, а где-то другой открылся.
проверяйтесь по более быстрым и надёжным признакам : AccountBalance, AccountMargin. При закрытиях рыночных баланс и маржа изменятся. Для надёжности - дополнить редким таймером и (для 5-ки) в OnTrade ставить флажок "пора перепроверить"
свои ордера/позиции надо помнить и если_что_то_случилось (баланс/маржа/просто_пора) то проверять конкретно их, а не весь пул ордеров.
PS/ в OnTick надо только торговать. Тогда всё будет хорошо и шанс REQUOTE/NO_PRICE резко поубавится. Все остальные проверки, тесты, сигналы - всё в низкий приоритет (когда совсем нечего делать) и на таймер
Пункт 1 и 2 — Это вы от fxsaber`a заразились?
Пункт 3 — Абсолютно согласен. Такую ситуацию представить можно, следовательно можно и нарваться.
Пункт 1 и 2 — Это вы от fxsaber`a заразились?
Пункт 3 — Абсолютно согласен. Такую ситуацию представить можно, следовательно можно и нарваться.
А можно представить локирование, при котором баланс не изменится?
А можно представить локирование, при котором баланс не изменится?
можно представить и локирование, но маржа изменится. Чтобы при рыночных открытиях/закрытиях не изменились ни баланс ни маржа - фантастичная ситуация, и на то редкий таймер
и пункт 1,2 это практика..
как и предыдущему оратору :
1) OrdersTotal и OrdersHistoryTotal много чего внутри себя делают помимо того что возвращают кол-во. Они долго работают и вообще нужны для инициализации цикла прохода по ордерам, а не выявления признака "пора/не_пора". Когда активная торговля, много ордеров, несколько роботов, можно нехорошо встрять.
Будет воспроизводимый пример, тогда можно и дискутировать. В 5-ке - да, бывают накладки из-за асинхронности процессов, там ставка на скорость, но не в 4-ке, в которой все синхронизировано, но работает медленнее. Кроме того: причем здесь OrdersTotal()?
2) OrdersTotal() может не поменятся сразу. Ваш ордер закрытый по TP остаётся в пуле TRADES, у него просто будет OrderCloseTime() != 0. И только потом переедет в History. То есть темп вы потеряете и протормозите с реакцией на событие
3) OrdersTotal() может вообще не поменятся. Ордер закрылся по TP, а где-то другой открылся.
проверяйтесь по более быстрым и надёжным признакам : AccountBalance, AccountMargin. При закрытиях рыночных баланс и маржа изменятся. Для надёжности - дополнить редким таймером и (для 5-ки) в OnTrade ставить флажок "пора перепроверить"
свои ордера/позиции надо помнить и если_что_то_случилось (баланс/маржа/просто_пора) то проверять конкретно их, а не весь пул ордеров.
Это просто другой путь, который никак не отменяет OrdersHistoryTotal(). К тому же, пока по тестам выходит, что история ордеров выигрывает.
PS/ в OnTick надо только торговать. Тогда всё будет хорошо и шанс REQUOTE/NO_PRICE резко поубавится. Все остальные проверки, тесты, сигналы - всё в низкий приоритет (когда совсем нечего делать) и на таймер
Как раз эту позицию я и поддерживаю. Все правильно.
Необходимо в код внедрить логику моментального отслеживания ордера, который был закрыт сам по TP, а не принудительно.
Была идея каждую итерацию таймера (1 сек) пробегать по всем закрытым ордерам и искать последний закрытый ордер у которого
OrderClosePrice() >= OrderTakeProfit().
Какие у вас есть предложения?