Ошибки, баги, вопросы - страница 1971

 

Как бороться с глюклм, когда после добавления внешней переменной её нет в настройках советника (вкладка параметры)?

В MT4 достаточно было пару раз перекомпилировать и рандомна она появлялась или перезагрузить терминал, а в MT5 какая то упоратость.

Пойду инишки искать...

 
Aleksey Vyazmikin:

Как бороться с глюклм, когда после добавления внешней переменной её нет в настройках советника (вкладка параметры)?

В MT4 достаточно было пару раз перекомпилировать и рандомна она появлялась или перезагрузить терминал, а в MT5 какая то упоратость.

Пойду инишки искать...


Помогло добавление переменной в конец списка - появилась та, что не была видна в центре.

 
При использовании CopyTicksRange вижу, что некоторые тики имеют нулевой объем - как такое может быть? Согласно документации любой тип тика имеет все поля, заполненные либо обновленной информацией, либо с предыдущих тиков, а отсутствие объема - это отсутствие торговых операций.
 
Подскажите, пожалуйста, алгоритм подсчета объемов для конкретного бара (может быть где-то уже описано?). Например, запрашиваем с помощью CopyTicksRange все тики за конкретный бар и нужно получить в результате вычислений тот же объем (и реальный, и тиковый), который отображается в Окне Данных. У меня расхождения по обоим объемам для биржевых инструментов на порядки (для конкретики - возьмем AFLT на MQ-Demo). Для форекса тиковые объемы совпадают, про реальные там речи нет.
 
Stanislav Korotky:
При использовании CopyTicksRange вижу, что некоторые тики имеют нулевой объем - как такое может быть? Согласно документации любой тип тика имеет все поля, заполненные либо обновленной информацией, либо с предыдущих тиков, а отсутствие объема - это отсутствие торговых операций.

Ненулевой объем только у "ленточных" тиков.

 
Stanislav Korotky:
Подскажите, пожалуйста, алгоритм подсчета объемов для конкретного бара (может быть где-то уже описано?). Например, запрашиваем с помощью CopyTicksRange все тики за конкретный бар и нужно получить в результате вычислений тот же объем (и реальный, и тиковый), который отображается в Окне Данных. У меня расхождения по обоим объемам для биржевых инструментов на порядки (для конкретики - возьмем AFLT на MQ-Demo). Для форекса тиковые объемы совпадают, про реальные там речи нет.

Должны совпадать. https://www.mql5.com/ru/forum/96537/page4#comment_2866477

Загадочный биржевой индикатор
Загадочный биржевой индикатор
  • 2016.10.01
  • www.mql5.com
Ниже приведен сильно упрощенный (ООП полностью отсутствует) индикатор, который показывает проторгованный оборот на основании тиковой биржевой истор...
 
Stanislav Korotky:
Подскажите, пожалуйста, алгоритм подсчета объемов для конкретного бара (может быть где-то уже описано?). Например, запрашиваем с помощью CopyTicksRange все тики за конкретный бар и нужно получить в результате вычислений тот же объем (и реальный, и тиковый), который отображается в Окне Данных. У меня расхождения по обоим объемам для биржевых инструментов на порядки (для конкретики - возьмем AFLT на MQ-Demo). Для форекса тиковые объемы совпадают, про реальные там речи нет.

Попробуйте CopyTicksRange с флагом COPY_TICKS_TRADE и последующим подсчётом в цикле по массиву структур MqlTick

Я получил в 13ти часовой свече AFLT на MQ-Demo реального объёма 411

[Удален]  
fxsaber:

Должны совпадать. https://www.mql5.com/ru/forum/96537/page4#comment_2866477

Серверы MQ-Demo до сих под допускают тики неопределенного направления (N/A). У Вас этот момент не отлавливается. Так что, итоговый объем может (в чем я сильно не уверен) и будет совпадать, но компоненты бай и селл - нет.
 
Alexey Viktorov:

Попробуйте CopyTicksRange с флагом COPY_TICKS_TRADE и последующим подсчётом в цикле по массиву структур MqlTick

Я получил в 13ти часовой свече AFLT на MQ-Demo реального объёма 411

Работает. Правда приходится менять для форекса на _ALL (там нет _TRADE).

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

 
Stanislav Korotky:

Работает. Правда приходится менять для форекса на _ALL (там нет _TRADE).

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

А разве CopyRates не подходит? Ведь в структуре MqlRates есть тиковые объёмы и они сходятся со значениями в окне данных. Разве что миллисекунды определить невозможно...