Я вот только-что больше двух часов бился с проблемой направления индикаторных массивов.
Некоторое время назад, не скажу точно до какого билда, всегда было достаточно изменить индексацию только один раз
if(prev_calculated == 0) { ArraySetAsSeries(time, true); ArraySetAsSeries(high, true); ArraySetAsSeries(low, true); }
Теперь-же так не работает. Надо при каждом пересчёте индикатора менять серийность индикаторных массивов.
К счастью, индикаторные буферы достаточно перенаправить только один раз в int OnInit()
Как происходит расчет в тайм-сериях: слева на право или наоборот?
Как происходит заполнение массива индикатора?
Хотел разместить картинку в тексте для наглядности, но не где не нашел ответа как это сделать. Поэтому прикрепляю отдельным файлом.
А что для "лево", а что "право"? Лучше оперировать таким понятием: самый правый бар на графике соответствует индексу номер N в массиве.
Если работать с таймсериями (копирование информации) в советниках, то я поступаю так (пример из 1. VR---TRI-BOYCA)
Объявляю массив rates (структура MqlRates), далее при помощи ArraySetAsSeries устанавливаю этому массиву флаг AS_SERIES в "true" (теперь индексация элементов массива будет производиться как в таймсериях.) После запроса CopyRates в массиве rates (копирую шесть элементов начиная с "0") индекс элемента "0" будет соответствовать самому ПРАВОМУ бару на графике.
//+------------------------------------------------------------------+ //| Search trading signals | //+------------------------------------------------------------------+ bool SearchTradingSignals(void) { double ma_filter[]; MqlRates rates[]; ArraySetAsSeries(ma_filter,true); ArraySetAsSeries(rates,true); int start_pos=0,count=6; if(!iGetArray(handle_iMA,0,start_pos,count,ma_filter) || CopyRates(m_symbol.Name(),0,start_pos,count,rates)!=count) { return(false); } // }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Как происходит расчет в тайм-сериях: слева на право или наоборот?
Как происходит заполнение массива индикатора?
Хотел разместить картинку в тексте для наглядности, но не где не нашел ответа как это сделать. Поэтому прикрепляю отдельным файлом.