Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2171

 

Григорий, кажется так:

ObjectGetDouble(eChartId,eName,OBJPROP_PRICE,1);
 

Подскажите, пожалста. Весь мозг уже сломал. 

МТ5. В индикаторе пытаюсь сделать расчет на тф отличающимся от графика, BarsCalculated возвращает  - 1. Тк слип в индикаторе не работает, сделал паузу с помощью ArrayResize

bool checkCalculated(int bufferHandle, int in_total, string checkDescription)
{       
        for(int i = 5; i > 0 ; i --)
        {
        int calculated = BarsCalculated(bufferHandle);
        if(calculated == in_total)
        {
                return(true);
        }
      Print("Not all data of " + checkDescription + " calculated (", (string)(in_total - calculated), " in_total - calculated )", "  in_total ", in_total,  "  calculated ",  calculated);
        int arr[];
        for(int j = 0; j < 30000; j++)
        {
                ArrayResize(arr, j, 0);         
        }
        }
        
   return(false);
}

но все равно не помогает. При этом если выбран тф графика то все норм.


Файлы:
 
Aleksei Stepanenko #:

Григорий, кажется так:

Спасибо, но я уже все возможные варианты перебрал:

ObjectGetDouble(eChartId,eName,OBJPROP_PRICE,1);
ObjectGetDouble(eChartId,eName,OBJPROP_PRICE,0);
ObjectGetDouble(eChartId,eName,OBJPROP_PRICE,2);
ObjectGetDouble(eChartId,eName,OBJPROP_PRICE,-1);
ObjectGetDouble(eChartId,eName,OBJPROP_PRICE1);
ObjectGetDouble(eChartId,eName,OBJPROP_PRICE2);
ObjectGetDouble(eChartId,eName,OBJPROP_PRICE3);

Всегда возвращает нижнюю цену.

 
Такая проблема на терминал установленный на виртуальном сервере от Зомро, не устанавливаются советники и индикаторы с MQL5.com - пишет - Установка не удалась. На десктопном компе всё ок. В чём может быть причина?
 
Andrei Sokolov #:

Подскажите, пожалста. Весь мозг уже сломал. 

МТ5. В индикаторе пытаюсь сделать расчет на тф отличающимся от графика, BarsCalculated возвращает  - 1. Тк слип в индикаторе не работает, сделал паузу с помощью ArrayResize

но все равно не помогает. При этом если выбран тф графика то все норм.


На сколько я помню суть проблемы в том, что расчет индикаторов происходит последовательно с нижнего ТФ на верхний. Соответственно верхний ТФ не рассчитан ещё.

 
Aleksey Vyazmikin #:

На сколько я помню суть проблемы в том, что расчет индикаторов происходит последовательно с нижнего ТФ на верхний. Соответственно верхний ТФ не рассчитан ещё.

А как сделать то?

 
Andrei Sokolov #:

А как сделать то?

Считать верно со второго тика по сути...

Или делать расчет непосредственно в индикаторе без запроса данных с индикатора на верхнем ТФ.
 
Aleksey Vyazmikin #:

Считать верно со второго тика по сути...

Или делать расчет непосредственно в индикаторе без запроса данных с индикатора на верхнем ТФ.

Надеюсь есть какие-то фен-шуйные способы получения данных индикатором с другого тф.

 
Andrei Sokolov #:

А как сделать то?

вот точно не надо делать паузу методом ArrayResize :-) 

в разделе документации есть пример про докачку истории - надо на его основе сделать своё и при старте докачивать нужное по требуемым таймфреймам. https://www.mql5.com/ru/docs/series/timeseries_access

внутри OnCalculate/OnTick/OnTimer проверять признак SERIES_SYNCHRINZED https://www.mql5.com/ru/docs/constants/tradingconstants/enum_series_info_integer , про другие таймфреймы, если не синхронизовано то выйти до следующего раза. 

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Информация об исторических данных по инструменту
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Информация об исторических данных по инструменту
  • www.mql5.com
Информация об исторических данных по инструменту - Торговые константы - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Andrei Sokolov #:

Подскажите, пожалста. Весь мозг уже сломал. 

МТ5. В индикаторе пытаюсь сделать расчет на тф отличающимся от графика, BarsCalculated возвращает  - 1. Тк слип в индикаторе не работает, сделал паузу с помощью ArrayResize

но все равно не помогает. При этом если выбран тф графика то все норм.


А зачем это делать в цикле? Это ошибка.

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