Нужна подсказка

 

Доброго времени суток! Недавно начал изучать MQL5 (с нуля). Столкнулся с проблемой при создания индикатора. Создал простенький пробный индикатор, который в отдельном окне графиком отображает цену закрытия бара. Решил попробовать сделать отображение не цены а Volume из функции:

int OnCalculate(const int rates_total,      // размер входных таймсерий 
                 const int prev_calculated,  // обработано баров на предыдущем вызове 
                 const datetime& time[],     // Time 
                 const double& open[],       // Open 
                 const double& high[],       // High 
                 const double& low[],        // Low 
                 const double& close[],      // Close 
                 const long& tick_volume[],  // Tick Volume 
                 const long& volume[],       // Real Volume 
                 const int& spread[]         // Spread 
                )

Возникла проблема. Volume имеет тип Long. И при связывании массива с буфером SetIndexBuffer(0,MoyMassiv,INDICATOR_DATA); вылетает ошибка о разности типов. То есть  в SetIndexBuffer можно указывать только массив Double. То есть я не могу потом из массива volume с типом long, перенести информацию в буфер MoyMassiv с типом Double. 

Подскажите что можно сделать?

Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
Как самому создать советника или индикатор - Алгоритмический трейдинг, торговые роботы - MetaTrader 5
  • www.metatrader5.com
Для разработки торговых систем в платформу встроен собственный язык программирования MetaQuotes Language 5 (MQL5), среда разработки MetaEditor и инструменты тестирования стратегий. Любую информацию о разработке торговых стратегий на языке MQL5 можно найти на официальном сайте MQL5.community. На этом же сайте в разделе Code Base могут быть...
 

1. Пожалуйста, Вставляйте код правильно.

2. Массив связанный с индикаторным буфером может быть только double. То есть нужно объявлять массив с типом double. Чтобы такой массив отображал "Volume" нужно в OnInit() прописать точность отображения ноль знаков после запятой - пример в коде Days of the week color:

//--- indicator digits
   IndicatorSetInteger(INDICATOR_DIGITS,0);

и уже в процессе работы просто передавать в индикаторный буфер Ваше значение - пример из-того же кода:

            HistogramBuffer[i]=3;

Как видите, "HistogramBuffer" - это индикаторный буфер (double), но я в него передаю целые значения.

 
Vladimir Karputov:

1. Пожалуйста, Вставляйте код правильно.

2. Массив связанный с индикаторным буфером может быть только double. То есть нужно объявлять массив с типом double. Чтобы такой массив отображал "Volume" нужно в OnInit() прописать точность отображения ноль знаков после запятой - пример в коде Days of the week color:

и уже в процессе работы просто передавать в индикаторный буфер Ваше значение - пример из-того же кода:

Как видите, "HistogramBuffer" - это индикаторный буфер (double), но я в него передаю целые значения.

Огромное спасибо! 

P.S. Первая тема, впредь буду добавлять код правильно. Ещё раз спасибо!

 
Umahan:

Огромное спасибо! 

P.S. Первая тема, впредь буду добавлять код правильно. Ещё раз спасибо!

А не подскажите ветку пожалуйста (если есть) про аналитику и торговлю крипты например , и обсуждение торговли на форекс? Не могу найти уже час капаюсь( Интересно обмениваться мнениями по торговле.

 
kavabata:

А не подскажите ветку пожалуйста (если есть) про аналитику и торговлю крипты например , и обсуждение торговли на форекс? Не могу найти уже час капаюсь( Интересно обмениваться мнениями по торговле.

https://www.mql5.com/ru/forum/223827

FOREX - Тенденции, прогнозы и следствия 2018
FOREX - Тенденции, прогнозы и следствия 2018
  • 2018.01.03
  • www.mql5.com
Правила ветки: в ветке жёсткая модерация. Ругань, оскорбления - под запретом...
Причина обращения: