Проблема в следующем.
Я три дня пытаюсь получить данные при тестировании эксперта.
Все 4 вызова функции возвращают исключительно ноль.
Получается получить данные только по текущему бару. (т.е. MA_bar0 )
Бары по 15 минут.
Подскажите где я ошибаюсь?
MA_bar0 = iMA(NULL, 0, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar1 = iMA(NULL, 1, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar2 = iMA(NULL, 2, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar3 = iMA(NULL, 3, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar4 = iMA(NULL, 4, 7, 0, MODE_EMA, PRICE_CLOSE,0);
С уважением.
Александр.
double iMA( | string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift) |
symbol | - | Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ. |
timeframe | - | Период. Может быть одним из периодов графика. 0 означает период текущего графика. |
period | - | Период усреднения для вычисления скользящего среднего. |
ma_shift | - | Сдвиг индикатора относительно ценового графика. |
ma_method | - | Метод усреднения. Может быть любым из значений методов скользящего среднего (Moving Average). |
applied_price | - | Используемая цена. Может быть любой из ценовых констант. |
shift | - | Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад). |
AlligatorJawsBuffer[i]=iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i);
Хорошо пьёт тот, кто плохо закусывает :)
https://docs.mql4.com/ru/constants/timeframes
Спасибо за ответ я книжку по этому вопросу прочитал 20 раз.
Я не догоняю что вы имеете ввиду - "Период. Может быть одним из периодов графика. 0 означает период текущего графика."
А какие могут быть периоды графика, TimeFrame как то связан с period ?
т.е. функция iMA не имеет таймфрэйм массив?
Я думал что TimeFrame - это и емть индекс в таймфрэймовом массива iMA.
Если нет массива, то значит я зделаю его сам но мне нужно разобраться в сути вопроса.
Проша Вас помогите разобраться.
Стою на месте 3-й день.
MA_bar0 = iMA(NULL, 0, 7, 0, MODE_EMA, PRICE_CLOSE,0);
-
MA_bar1 = iMA(NULL, 1, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar2 = iMA(NULL, 5, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar3 = iMA(NULL, 15, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar4 = iMA(NULL, 30, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar5 = iMA(NULL, 60, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar6 = iMA(NULL, 240, 7, 0, MODE_EMA, PRICE_CLOSE,0);
и т.д.
Я похоже понял. Но не до конца.
Поясню суть задачи.
Индикатор Moving Average прикрепленный к графику, и чертящий линию.
Имеет таймфрэйм масиив. Если я вызываю iMA, то я получаю данные разово для данной конкретной свечки.
И следовательно для получения массива истории, данные я должен писать сам в массив?

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Проблема в следующем.
Я три дня пытаюсь получить данные при тестировании эксперта.
Все 4 вызова функции возвращают исключительно ноль.
Получается получить данные только по текущему бару. (т.е. MA_bar0 )
Бары по 15 минут.
Подскажите где я ошибаюсь?
MA_bar0 = iMA(NULL, 0, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar1 = iMA(NULL, 1, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar2 = iMA(NULL, 2, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar3 = iMA(NULL, 3, 7, 0, MODE_EMA, PRICE_CLOSE,0);
MA_bar4 = iMA(NULL, 4, 7, 0, MODE_EMA, PRICE_CLOSE,0);
С уважением.
Александр.