Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Александр
17
Александр  

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

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

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

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

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

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

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

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

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


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

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

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

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

Александр
17
Александр  
elmucon:

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

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

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

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


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

NormalizeDouble(Ask, Digits)

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

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

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

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


так

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

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

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

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

сергей
91
сергей  
Roman.:


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


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

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

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

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

Роман
7939
Роман  
vasek:


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

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

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

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


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