Типичные ошибки и способы их устранения при работе с торговым окружением - страница 6

 
Комбинатор:
уже обсудили. универсально не получится, т.к. одному надо одно, другому другое.
Я призываю возвращать реальность. А если есть неопределённость в виде маркет-ордера, то либо ждать его результата и выдавать уже свершившееся, либо давать программе решать как это обработать. Но точно не возвращать количество на авось.
 
Artyom Trishkin:
Я призываю возвращать реальность. А если есть неопределённость в виде маркет-ордера, то либо ждать его результата и выдавать уже свершившееся, либо давать программе решать как это обработать. Но точно не возвращать количество на авось.

Это не авось, а как есть. Есть две полностью доступные для изменения позици и одна замороженная (не изменить). Всего три позиции. Вполне укладывается в MT4-логику, которую Вы же взяли за эталонную.

 
Artyom Trishkin:

если бы МК сделали нормальную синхронную операцию, таких вопросов вообще бы не было.

мало того, fxsaber объяснил почему он делает так как делает и чем его не устраивает моя логика.

 

Этот пример оказался гораздо круче. Зареджектился TP, выставленный самим брокером! И почти сразу (ждал аж 115 мс - баг MT5, видимо) после реджекта брокер выставил следующий TP, который исполнился. На скрин комментарии к ордерам не попали. Зеленый цвет - ORDER_REASON_TP. И у reject-ордера, соответственно, даже ORDER_POSITION_ID имеется.

 
Комбинатор:

если бы МК сделали нормальную синхронную операцию, таких вопросов вообще бы не было.

Такой OrderSend может написать сам кодер. Когда использую синхронный вариант OrderSend, то именно такое решение и использую.

При этом надо понимать, что МК могли бы напороться на таймаут, если бы написали такое самостоятельно. Логично, что МК не отвечает за маркет-ордера, отправленные в стороннюю систему.

Очень старался, но так и не смог придумать, где важно, чтобы 2 + 1 != 3.


ЗЫ Есть же еще и асинхронный варинт. И там вполне вероятно нарваться на маркет-ордер. Поэтому такая функция подсчета количества позиций была бы актуальна, даже если бы МК сделали "нормальную синхронную операцию".

 
fxsaber:

Такой OrderSend может написать сам кодер. Когда использую синхронный вариант OrderSend, то именно такое решение и использую.

При этом надо понимать, что МК могли бы напороться на таймаут, если бы написали такое самостоятельно. Логично, что МК не отвечает за маркет-ордера, отправленные в стороннюю систему.

Очень старался, но так и не смог придумать, где важно, чтобы 2 + 1 != 3.

Не, не так. В вашем случае: 2 + 1 - 1 = 3
 
Artyom Trishkin:
Не, не так. В вашем случае: 2 + 1 - 1 = 3

Понял, что у нас разная арифметика. Наверное, не стоит продолжать. Но вот повлиять на КБ, чтобы прекратили постить код с багами, думаю, стоило бы.

 
fxsaber:

Понял, что у нас разная арифметика. Наверное, не стоит продолжать. Но вот повлиять на КБ, чтобы прекратили постить код с багами, думаю, стоило бы.

А чтобы повлиять, нужно чтобы меня поняли и обсудили возможность шагов по устранению этого недочёта. Но вы упорно не видите возможную ошибку в предложенном вами подходе. Что тут я могу? Уговаривать прислушаться, а не лелеять свой метод? Так вы не слышите.
 
fxsaber:

Очень старался, но так и не смог придумать, где важно, чтобы 2 + 1 != 3.

когда стратегия подразумевает немедленную реакцию на открытую позицию. в этом случае реджект может поломать логику.

в подавляющем большинстве случаев любой учет (и ордер как позиция, и ордер как промежуточное, нерабочее состояние) убирает проблемы.

fxsaber:

Такой OrderSend может написать сам кодер.

странная логика, так я и терминал могу написать. после МТ4 это выглядит как перекладывание проблем на голову кодера. и так очень много с чем.

 
Комбинатор:

когда стратегия подразумевает немедленную реакцию на открытую позицию. в этом случае реджект может поломать логику.

Боюсь, что это кривая логика. Но могу и ошибаться, конечно. Было бы интересно услышать логику.

странная логика, так я и терминал могу написать. после МТ4 это выглядит как перекладывание проблем на голову кодера. и так очень много с чем.

Наверное, дело все же в неинформированности или слабой Документации. Думаю, если бы там было все расписано нормально по этому поводу, ошибок и таких разговоров было бы меньше. Но для этого и форум, наверное. Потому как очевидно, что все в Документации учесть невозможно.

ЗЫ Исходный код своего готового решения выкладывал в паблик.