Комбинатор: уже обсудили. универсально не получится, т.к. одному надо одно, другому другое.
Я призываю возвращать реальность. А если есть неопределённость в виде маркет-ордера, то либо ждать его результата и выдавать уже свершившееся, либо давать программе решать как это обработать. Но точно не возвращать количество на авось.
Artyom Trishkin: Я призываю возвращать реальность. А если есть неопределённость в виде маркет-ордера, то либо ждать его результата и выдавать уже свершившееся, либо давать программе решать как это обработать. Но точно не возвращать количество на авось.
Это не авось, а как есть. Есть две полностью доступные для изменения позици и одна замороженная (не изменить). Всего три позиции. Вполне укладывается в MT4-логику, которую Вы же взяли за эталонную.
Покажу даже, как выглядят такие отмененные маркет-ордера
Только ошибки нет.
Этот пример оказался гораздо круче. Зареджектился TP, выставленный самим брокером! И почти сразу (ждал аж 115 мс - баг MT5, видимо) после реджекта брокер выставил следующий TP, который исполнился. На скрин комментарии к ордерам не попали. Зеленый цвет - ORDER_REASON_TP. И у reject-ордера, соответственно, даже ORDER_POSITION_ID имеется.
если бы МК сделали нормальную синхронную операцию, таких вопросов вообще бы не было.
Такой OrderSend может написать сам кодер. Когда использую синхронный вариант OrderSend, то именно такое решение и использую.
При этом надо понимать, что МК могли бы напороться на таймаут, если бы написали такое самостоятельно. Логично, что МК не отвечает за маркет-ордера, отправленные в стороннюю систему.
Очень старался, но так и не смог придумать, где важно, чтобы 2 + 1 != 3.
ЗЫ Есть же еще и асинхронный варинт. И там вполне вероятно нарваться на маркет-ордер. Поэтому такая функция подсчета количества позиций была бы актуальна, даже если бы МК сделали "нормальную синхронную операцию".
Такой OrderSend может написать сам кодер. Когда использую синхронный вариант OrderSend, то именно такое решение и использую.
При этом надо понимать, что МК могли бы напороться на таймаут, если бы написали такое самостоятельно. Логично, что МК не отвечает за маркет-ордера, отправленные в стороннюю систему.
Очень старался, но так и не смог придумать, где важно, чтобы 2 + 1 != 3.
Понял, что у нас разная арифметика. Наверное, не стоит продолжать. Но вот повлиять на КБ, чтобы прекратили постить код с багами, думаю, стоило бы.
А чтобы повлиять, нужно чтобы меня поняли и обсудили возможность шагов по устранению этого недочёта. Но вы упорно не видите возможную ошибку в предложенном вами подходе. Что тут я могу? Уговаривать прислушаться, а не лелеять свой метод? Так вы не слышите.
когда стратегия подразумевает немедленную реакцию на открытую позицию. в этом случае реджект может поломать логику.
Боюсь, что это кривая логика. Но могу и ошибаться, конечно. Было бы интересно услышать логику.
странная логика, так я и терминал могу написать. после МТ4 это выглядит как перекладывание проблем на голову кодера. и так очень много с чем.
Наверное, дело все же в неинформированности или слабой Документации. Думаю, если бы там было все расписано нормально по этому поводу, ошибок и таких разговоров было бы меньше. Но для этого и форум, наверное. Потому как очевидно, что все в Документации учесть невозможно.
ЗЫ Исходный код своего готового решения выкладывал в паблик.
уже обсудили. универсально не получится, т.к. одному надо одно, другому другое.
Я призываю возвращать реальность. А если есть неопределённость в виде маркет-ордера, то либо ждать его результата и выдавать уже свершившееся, либо давать программе решать как это обработать. Но точно не возвращать количество на авось.
Это не авось, а как есть. Есть две полностью доступные для изменения позици и одна замороженная (не изменить). Всего три позиции. Вполне укладывается в MT4-логику, которую Вы же взяли за эталонную.
если бы МК сделали нормальную синхронную операцию, таких вопросов вообще бы не было.
мало того, fxsaber объяснил почему он делает так как делает и чем его не устраивает моя логика.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Типичные ошибки и способы их устранения при работе с торговым окружением
fxsaber, 2018.02.24 16:25
Покажу даже, как выглядят такие отмененные маркет-ордера
Только ошибки нет.
Этот пример оказался гораздо круче. Зареджектился TP, выставленный самим брокером! И почти сразу (ждал аж 115 мс - баг MT5, видимо) после реджекта брокер выставил следующий TP, который исполнился. На скрин комментарии к ордерам не попали. Зеленый цвет - ORDER_REASON_TP. И у reject-ордера, соответственно, даже ORDER_POSITION_ID имеется.
если бы МК сделали нормальную синхронную операцию, таких вопросов вообще бы не было.
Такой OrderSend может написать сам кодер. Когда использую синхронный вариант OrderSend, то именно такое решение и использую.
При этом надо понимать, что МК могли бы напороться на таймаут, если бы написали такое самостоятельно. Логично, что МК не отвечает за маркет-ордера, отправленные в стороннюю систему.
Очень старался, но так и не смог придумать, где важно, чтобы 2 + 1 != 3.
ЗЫ Есть же еще и асинхронный варинт. И там вполне вероятно нарваться на маркет-ордер. Поэтому такая функция подсчета количества позиций была бы актуальна, даже если бы МК сделали "нормальную синхронную операцию".
Такой OrderSend может написать сам кодер. Когда использую синхронный вариант OrderSend, то именно такое решение и использую.
При этом надо понимать, что МК могли бы напороться на таймаут, если бы написали такое самостоятельно. Логично, что МК не отвечает за маркет-ордера, отправленные в стороннюю систему.
Очень старался, но так и не смог придумать, где важно, чтобы 2 + 1 != 3.
Не, не так. В вашем случае: 2 + 1 - 1 = 3
Понял, что у нас разная арифметика. Наверное, не стоит продолжать. Но вот повлиять на КБ, чтобы прекратили постить код с багами, думаю, стоило бы.
Понял, что у нас разная арифметика. Наверное, не стоит продолжать. Но вот повлиять на КБ, чтобы прекратили постить код с багами, думаю, стоило бы.
Очень старался, но так и не смог придумать, где важно, чтобы 2 + 1 != 3.
когда стратегия подразумевает немедленную реакцию на открытую позицию. в этом случае реджект может поломать логику.
в подавляющем большинстве случаев любой учет (и ордер как позиция, и ордер как промежуточное, нерабочее состояние) убирает проблемы.
Такой OrderSend может написать сам кодер.
странная логика, так я и терминал могу написать. после МТ4 это выглядит как перекладывание проблем на голову кодера. и так очень много с чем.
когда стратегия подразумевает немедленную реакцию на открытую позицию. в этом случае реджект может поломать логику.
Боюсь, что это кривая логика. Но могу и ошибаться, конечно. Было бы интересно услышать логику.
странная логика, так я и терминал могу написать. после МТ4 это выглядит как перекладывание проблем на голову кодера. и так очень много с чем.
Наверное, дело все же в неинформированности или слабой Документации. Думаю, если бы там было все расписано нормально по этому поводу, ошибок и таких разговоров было бы меньше. Но для этого и форум, наверное. Потому как очевидно, что все в Документации учесть невозможно.
ЗЫ Исходный код своего готового решения выкладывал в паблик.