Скачать MetaTrader 5

Помогите!!! с iMA (Moving Average)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Создавай темы на форуме и увеличивай рейтинг!
Alexander
300
Alexander 2010.05.03 17:46 

Проблема в следующем.
Я три дня пытаюсь получить данные при тестировании эксперта.
Все 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);

С уважением.
Александр.

Victor Nikolaev
Модератор
14491
Victor Nikolaev 2010.05.03 18:09  
Alex2112 писал(а) >>

Проблема в следующем.
Я три дня пытаюсь получить данные при тестировании эксперта.
Все 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);
richie
3171
richie 2010.05.03 18:17  

Хорошо пьёт тот, кто плохо закусывает :)
https://docs.mql4.com/ru/constants/timeframes

Alexandr Krivoshey
980
Alexandr Krivoshey 2010.05.03 18:18  
Человеку явно нужно в МТ5 смотреть... Там с такими таймфреймами ему явно попроще будет...
Alexander
300
Alexander 2010.05.03 18:22  

Спасибо за ответ я книжку по этому вопросу прочитал 20 раз.

Я не догоняю что вы имеете ввиду - "Период. Может быть одним из периодов графика. 0 означает период текущего графика."
А какие могут быть периоды графика, TimeFrame как то связан с period ?

т.е. функция iMA не имеет таймфрэйм массив?
Я думал что TimeFrame - это и емть индекс в таймфрэймовом массива iMA.
Если нет массива, то значит я зделаю его сам но мне нужно разобраться в сути вопроса.

Проша Вас помогите разобраться.
Стою на месте 3-й день.

Alexandr Krivoshey
980
Alexandr Krivoshey 2010.05.03 18:25  
Таймфрейм оставьте в покое (М1 например), а для получения данных нужного периода для Вашей задачи варьируйте параметр "int ma_method" (период сглаживания) и получите нужный результат...
richie
3171
richie 2010.05.03 18:28  

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);
и т.д.

Alexander
300
Alexander 2010.05.03 18:30  

Я похоже понял. Но не до конца.

Поясню суть задачи.

Индикатор Moving Average прикрепленный к графику, и чертящий линию.
Имеет таймфрэйм масиив. Если я вызываю iMA, то я получаю данные разово для данной конкретной свечки.
И следовательно для получения массива истории, данные я должен писать сам в массив?

Петр
6084
Петр 2010.05.03 18:31  
Да, а метод МА не при чем. Это я про совет Joker'а. // тогда уж логичнее период кратно тф увеличивать. Наверно, он это имел ввиду.
richie
3171
richie 2010.05.03 18:35  

Alex2112, а что вы хотите, я так и не понял. Подробнее можно?

Alexandr Krivoshey
980
Alexandr Krivoshey 2010.05.03 18:35  
Svinozavr >>:
Да, а метод МА не при чем. Это я про совет Joker'а. // тогда уж логичнее период кратно тф увеличивать. Наверно, он это имел ввиду.

именно...

А то человек уж историю рынка собрался писать в массивы истории... Машину времени однозначно пишет )))

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий