Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 548

 
evillive:

Digits
тоже из соответствующего символа желательно "вытаскивать" ;)
И это ещё не всё. Для нормализации цены другого инструмента нужно и digits брать с другого инструмента, а ещё для вывода в комментариях нужно не нормализацию действительного числа делать, а DoubleToString();
 
evillive:

Digits
тоже из соответствующего символа желательно "вытаскивать" ;)

Спасибо, заработало.
 
artmedia70:
И это ещё не всё. Для нормализации цены другого инструмента нужно и digits брать с другого инструмента, а ещё для вывода в комментариях нужно не нормализацию действительного числа делать, а DoubleToString();

Мне комментарии не столь важны, мне главное что бы ордера открывало, но терминал все равно ошибку выдает, даже с DoubleTtoStr(), пишет неправильные цены.

 
Example2:

Мне комментарии не столь важны, мне главное что бы ордера открывало, но терминал все равно ошибку выдает, даже с DoubleTtoStr(), пишет неправильные цены.

Замечания вам сделали правильные, а вот что нормализация действительно иногда не проходит это нехорошо. Надо в ветку MetaTrader 4 Client Terminal build 610 разработчикам на проверку написать. Мне правда всего два раза удалось воспроизвести неверную нормализацию

DoubleTtoStr() то обрежет, а во само число то от этого не изменится, это может привести к ошибке при сравнении переменных, выставлении ордера и т.д. Не могу сейчас сказать насколько важно при выставлении ордера 1 в 16 разряде, но сравнение чисел точно некорректно

 
GSB:

Замечания вам сделали правильные, а вот что нормализация действительно иногда не проходит это нехорошо. Надо в ветку MetaTrader 4 Client Terminal build 610 разработчикам на проверку написать. Мне правда всего два раза удалось воспроизвести неверную нормализацию

DoubleTtoStr() то обрежет, а во само число то от этого не изменится, это может привести к ошибке при сравнении переменных, выставлении ордера и т.д. Не могу сейчас сказать насколько важно при выставлении ордера 1 в 16 разряде, но сравнение чисел точно некорректно

Советник ордера через раз открывает, выходит нужно писать на каждую пару отдельно?
 
Example2:
Советник ордера через раз открывает, выходит нужно писать на каждую пару отдельно?
Нет, не надо. Ордера вряд ли открываются "через раз" по этой причине, смотрите лог и перед выставлением ордера обязательно ResetLastError(); а потом if(GetLastError()>1) Print(GetLastError()); И обязательно исправьте ошибку с Digits
 
GSB:
Нет, не надо. Ордера вряд ли открываются "через раз" по этой причине, смотрите лог и перед выставлением ордера обязательно ResetLastError(); а потом if(GetLastError()>1) Print(GetLastError()); И обязательно исправьте ошибку с Digits


GetLastError() говорит "неправильные цены". Digits я уже взял отдельно для каждой валютной пары.
 
Example2:

GetLastError() говорит "неправильные цены". Digits я уже взял отдельно для каждой валютной пары.

Стоп-левел учли? Чему он равен проверте скриптом
 
GSB:

Стоп-левел учли? Чему он равен проверте скриптом


У меня рыночные ордера.

 

129 ошибка возникает когда цена успевает измениться,прежде чем ДЦ выполнит ваш ордер,используйте слиппаж побольше.