Советник вгоняется в цикл при открытии ордера на пятизнаке?

 

Доброго времени суток.

Есть бот написанный саморучно. Работал на паре eurusd на четырехзнаке было все норм. Сейчас сменил ДЦ, а в нем пятизнак по данной паре. Малость подстроил его под такую работу. На истории работает без проблем, запускаю в реале: при открытии ордера любого направления выдает ошибку неверная цена, и пробует еще раз. так как на пятизнаке котировки движутся очень быстро, он начинает трещать как гелекоптер с этой ошибкой и вешает тем самым терминал. точность при открытии позиции в нем ставил аж до 30 пп, однако, один хер выдает ошибку цена изменилась и тем самым вгоняет себя в цикл пытаясь открыть ордер. остановить сей процесс можно лишь перезагрузив сам терминал. Что здесь может быть не так ?

В приложенном файле кусок кода относящийся к открытии позиции.

*Бот писался на скорую руку, так что код межет быть агресивным, однако на четырехзнаке все работало норм!

Файлы:
open.txt  4 kb
 
belperson:

Доброго времени суток.

Есть бот написанный саморучно. Работал на паре eurusd на четырехзнаке было все норм. Сейчас сменил ДЦ, а в нем пятизнак по данной паре. Малость подстроил его под такую работу. На истории работает без проблем, запускаю в реале: при открытии ордера любого направления выдает ошибку неверная цена, и пробует еще раз. так как на пятизнаке котировки движутся очень быстро, он начинает трещать как гелекоптер с этой ошибкой и вешает тем самым терминал. точность при открытии позиции в нем ставил аж до 30 пп, однако, один хер выдает ошибку цена изменилась и тем самым вгоняет себя в цикл пытаясь открыть ордер. остановить сей процесс можно лишь перезагрузив сам терминал. Что здесь может быть не так ?

В приложенном файле кусок кода относящийся к открытии позиции.

*Бот писался на скорую руку, так что код межет быть агресивным, однако на четырехзнаке все работало норм!


нормализуйте цены до пяти знаков
 
elmucon:

нормализуйте цены до пяти знаков

Спасибо за столь быструю реакцию на вопрос

Можно ли поподробнее, если честно то вперые об этом слышу, правда опыт в этом деле всего около полгода, наверное сказывается)

 
elmucon:

нормализуйте цены до пяти знаков

буду очень благодарен если ссылочку сможете дать на инфу по данной тематик
 
заметил еще одну херь: дц иногда с ума сходит и присылает котировки вида 1.24801999999999999, если нормализировать до пятизнака, как он будет обрабатывать такую хрень?
 
belperson:

Спасибо за столь быструю реакцию на вопрос

Можно ли поподробнее, если честно то вперые об этом слышу, правда опыт в этом деле всего около полгода, наверное сказывается)


Выглядит это так

NormalizeDouble(Ask, Digits)

так же и с остальными переменными относящимися к цене....

в этом случаее -

NormalizeDouble(1.24801999999999999, Digits) будет равно 1.24801

 
belperson:
заметил еще одну херь: дц иногда с ума сходит и присылает котировки вида 1.24801999999999999, если нормализировать до пятизнака, как он будет обрабатывать такую хрень?


так

// Глобальные переменные
int SlipPips = 10;

int init()
{ 
   // Пересчеты пунктов для пятизначного ДЦ   
   if ((Digits == 3) || (Digits == 5))    SlipPips = SlipPips * 10;   
   return (0);
}
 

Благодарю за помощь. Воспользовался NormalizeDouble. Пока все работает без нареканий. Вродь помогло.

Проблема решена!

 
Roman.:


if ((Digits == 3) || (Digits == 5)) SlipPips = SlipPips * 10;


предположим, запустил я эксперта с такой строчкой в ините

решил я переключить фрейм при работающем на пятизнаке эксперте, например, или еще какое-нить действо произвел, запускающее инит...

и что я получу в результате этих действий? - каждый раз SlipPips будет умножаться на 10

SlipPips = 10, SlipPips = 100, SlipPips = 1000 SlipPips = 10000, SlipPips = 100000 ну и т.д....

 
vasek:


предположим, запустил я эксперта с такой строчкой в ините

решил я переключить фрейм при работающем на пятизнаке эксперте, например, или еще какое-нить действо произвел, запускающее инит...

и что я получу в результате этих действий? - каждый раз SlipPips будет умножаться на 10

SlipPips = 10, SlipPips = 100, SlipPips = 1000 SlipPips = 10000, SlipPips = 100000 ну и т.д....


нет. Читайте документацию. Порядок работы эксперта, выполнение соответствующих спец. функций. Если лень - на крайняк проверьте сами и все... :-)
Причина обращения: