Всем привет.
Решил применить индикатор IMA для анализа его значений за последние 10 часов.
Индикатор IMA(PERIOD_H1) производит расчёт в текущий момент средней за последний час.
Вопрос: Как сразу получить значение индикатора IMA(PERIOD_H1) за каждые прошедшие 10 часов?
MQL4
-----------------------------------------------
ты вообще вопрос понял?
ты вообще вопрос понял?
MQL4
-----------------------------------------------
ты вообще вопрос понял?
iMA
Возвращает значение технического индикатора Moving Average.
double iMA( http://docs.mql4.com/ru/indicators/ima |
Всем привет.
Решил применить индикатор IMA для анализа его значений за последние 10 часов.
Индикатор IMA(PERIOD_H1) производит расчёт в текущий момент средней за последний час.
Вопрос: Как сразу получить значение индикатора IMA(PERIOD_H1) за каждые прошедшие 10 часов?
Требуется уточнение: нужны значения МА за последние 10 часовых баров или за последние 10 часов? К примеру, если нужно знать показания МА за последние 10 часов, то в 02:00 понедельника у нас будут показания только за 00:00 и 01:00 понедельника, т. к. котировки интервале 16:00 - 24:00 воскресенья в большинстве случаев отсутствуют.
Если же нужны данные МА за последние 10 часовых баров, то выше уже предложили решение и не раз.
Хотя есть еще один вариант того, что хотел ТС. Может нужно вычислить значение МА за последние 10 баров? Тогда вообще просто:
double ma = iMA(NULL, PERIOD_H1, 10, 0, MODE_EMA, PRICE_CLOSE, 1);
Ihor Herasko:
...Хотя есть еще один вариант того, что хотел ТС. Может нужно вычислить значение МА за последние 10 баров? Тогда вообще просто:
double ma = iMA(NULL, PERIOD_H1, 10, 0, MODE_EMA, PRICE_CLOSE, 1);
Э-э-эм... Sorry. На подобное предложение от Andrey F. Zelinsky был ответ от автора темы, что в рамках вопроса этот вариант скорее всего не подходит: https://www.mql5.com/ru/forum/67532#comment_2062435
P./S.: Но понятно, что вы упомянули этот вариант будучи практиком, прорабатывающим разные варианты когда погружаетесь в вопрос.
Вот что я делаю (на примере минутка): При помощи массива запоминаю какие были значения средней каждую минуту и вывожу их на экран.
Целью этой темы является нахождение способа, чтобы обойтись без массива и не ждать 10 минут, когда он заполнится. Например могу ли я расчитать среднюю две-три минуты назад?
Потому как если брать часовой таймфрейм, то ждать 10 часов - это мазохизм.
Вот что я делаю (на примере минутка): При помощи массива запоминаю какие были значения средней каждую минуту и вывожу их на экран.
Целью этой темы является нахождение способа, чтобы обойтись без массива и не ждать 10 минут, когда он заполнится. Например могу ли я расчитать среднюю две-три минуты назад?
Потому как если брать часовой таймфрейм, то ждать 10 часов - это мазохизм.
Не надо ждать. Ответы есть выше.
Вот тестовый скрипт:
#property strict #property script_show_inputs //--- #define TEST_PRINT_TWO(x,y) Print(__LINE__,", ",__FUNCTION__,", ",(#x)," = ",(x),\ ", ",(#y)," = ",(y)) #define TEST_PRINT_THREE(x,y,z) Print(__LINE__,", ",__FUNCTION__,", ",(#x)," = ",(x),\ ", ",(#y)," = ",(y),", ",(#z)," = ",(z)) //+------------------------------------------------------------------+ input ushort quantBars=10;//Количество выводимых значений input ENUM_TIMEFRAMES time_frame=PERIOD_CURRENT; input int ma_period=5; input int ma_shift=0; input ENUM_MA_METHOD ma_method=MODE_SMA; input ENUM_APPLIED_PRICE applied_price=PRICE_OPEN; input ushort shift=1;//С какого бара выводить значения (0 = текущий) //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { int dig=Digits(), b=Bars-1, quant_bars=(quantBars<b)?quantBars:3, shift_ch=(quant_bars+shift<b)?shift:0; //--- TEST_PRINT_THREE(b,quant_bars,shift_ch); //--- quant_bars=quant_bars+shift_ch-1; //--- double value=0.0; //--- for(int i=quant_bars;i>=shift_ch;i--) { value=iMA(NULL,time_frame,ma_period,ma_shift,ma_method, applied_price,i); //--- TEST_PRINT_TWO(i,DoubleToString(value,dig)); } } //+------------------------------------------------------------------+
Вывод во вкладку "Эксперты" терминала:
P./S.: Поправила чуть код. Набросала-то его "на коленке".
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет.
Решил применить индикатор IMA для анализа его значений за последние 10 часов.
Индикатор IMA(PERIOD_H1) производит расчёт в текущий момент средней за последний час.
Вопрос: Как сразу получить значение индикатора IMA(PERIOD_H1) за каждые прошедшие 10 часов?