Помогите разрулить парадокс. - страница 3

 
nys2000:
Модификация ордера с теми же параметрами возвращает ошибку 1?

В справке MQL4 по OrderModify написано: "Если в качестве параметров функции передать неизмененные значения, то в этом случае будет сгенерирована ошибка 1 (ERR_NO_RESULT)".

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

Надо еще понять, что следует считать неизменным значением. В частности, должен ли нуль быть нормализован при передаче значения в OrderModify в роли SL, TP. Пока значения SL, TP ненулевые, они должны быть нормализованы для этого символа. А в каком представлении нужно указывать нулевые SL, TP, не припомню. Это я о том, что взятый из ордера "нулевой" TP может иметь меньше значащих нулей, чем заданный прямо в b_TP=0.

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

 
Vlad143:

В справке MQL4 по OrderModify написано: "Если в качестве параметров функции передать неизмененные значения, то в этом случае будет сгенерирована ошибка 1 (ERR_NO_RESULT)".

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

Надо еще понять, что следует считать неизменным значением. В частности, должен ли нуль быть нормализован при передаче значения в OrderModify в роли SL, TP. Пока значения SL, TP ненулевые, они должны быть нормализованы для этого символа. А в каком представлении нужно указывать нулевые SL, TP, не припомню. Это я о том, что взятый из ордера "нулевой" TP может иметь меньше значащих нулей, чем заданный прямо в b_TP=0.

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

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

И, конечно, торговые функции кормить надо нормализованными значениями. 

Причина обращения: