Не могу приклеить массив к последнему значению MA!
Задача: Получить максимальную и минимальную цену на последних 100 барах iMA
Задрался уже с for'м, i Lowest, Highest, Фигаест... 8(((
double MA14=iMA(Symbol(),PERIOD,14,0,MODE_SMA,PRICE_CLOSE,???);
int iMA( string symbol, // имя символа ENUM_TIMEFRAMES period, // период int ma_period, // период усреднения int ma_shift, // смещение индикатора по горизонтали ENUM_MA_METHOD ma_method, // тип сглаживания ENUM_APPLIED_PRICE applied_price // тип цены или handle );
Не double, а int возвращаемое значение.
И что Вы хотите "втиснуть" вместо знаков ???
int MA14 = iMA( Symbol(), PERIOD_H1 , 14, 0, MODE_SMA, PRICE_CLOSE );
Не могу приклеить массив к последнему значению MA!
Задача: Получить максимальную и минимальную цену на последних 100 барах iMA
Задрался уже с for'м, i Lowest, Highest, Фигаест... 8(((
double MA14=iMA(Symbol(),PERIOD,14,0,MODE_SMA,PRICE_CLOSE,???);
ArrayMinimum() - это понятно. но он копает в массиве который я не знаю как вытащить из iMA.
Что то я запутался.
double MA14=iMA(Symbol(),PERIOD,14,0,MODE_SMA,PRICE_CLOSE,???);
Там где вопросы крепим смещение от последнего бара. Получаем значение на одном каком то баре. А мне нужно на 100 последних.
Видимо массив. Но как так прописать не пойму...
Задача: Получить все значения МА за последние 100 баров!
Не прописывать же эту строку 100 раз! 8))))))))) что видимо мне светит, а потом перебирать все переменные! Гы.. 8)
double MA14=iMA(Symbol(),PERIOD,14,0,MODE_SMA,PRICE_CLOSE,???);
----------------
Как то так? Или я что то не догоняю! 8\
for(int i=0; i<100; i++){
double MA14=iMA(Symbol(),PERIOD,14,0,MODE_SMA,PRICE_CLOSE,i);
}
double max=ArrayMaximum(???,WHOLE_ARRAY,0); ???-что там рисовать
double min=ArrayMaximum(???,WHOLE_ARRAY,0);
------- или же как то так?:
double MA14=iMA(Symbol(),PERIOD,14,0,MODE_SMA,PRICE_CLOSE,???);
double bar[100]={ ?сюда нужно запихнуть, как то, значения iMA 100та последних баров? };
double max=ArrayMaximum(bar,WHOLE_ARRAY,0);
double min=ArrayMinimum(bar,WHOLE_ARRAY,0);
Хелп! Напишите кусочек кода хотя бы... а то совсем запутался... У меня с массивами в голове совсем беда.... 8(((((((
Хелп! Напишите кусочек кода хотя бы... а то совсем запутался... У меня с массивами в голове совсем беда.... 8(((((((
Уточню, Вы на mq4 хотите получить данные? И еще:
Задача: Получить все значения МА за последние 100 баров!
Надеюсь, Вы понимаете, что получаете только последнее значение индикатора на каждом баре?
Если да, то код получения выглядит так:
// Получаем значения МА с периодом 14 на текущем символе/ТФ // Чтобы получить значение на конкретном баре, нужно указать номер этого бара в последнем параметре функции: shift double array[ 100 ]; // Массив для получения данных for( int i = 0; i < 100; i++ ) // Цикл по последним 100 свечам (вкл. текущую свечу, значение МА которой еще может измениться) { array[ i ] = iMA( _Symbol, _Period, 14, 0, MODE_SMA, PRICE_CLOSE, i ); }
Уточню, Вы на mq4 хотите получить данные? И еще:
Надеюсь, Вы понимаете, что получаете только последнее значение индикатора на каждом баре?
Если да, то код получения выглядит так:
8)))), Tapochun Большое Спасибо! Да я понимаю, что получаю PRICE_CLOSE. Супер. То что надо!!! Будем учиться... 8) В чем разница mql4 и mql5? вроде основа одна! я в MT4.
На форуме иногда бывает неприятность: Форум: при ответе курсор заскакивает в цитату.
Разница между MQL4 и MQL5: в "пятёрке" Вы в OnInit() создаёте хендл индикатора и потом уже в OnCalculate() с помощью хендла созданного индикатора копируете данные из индикаторного буфера. В "четвёрке" Вы обращаетесь к iMA на каждом тике. Как пример я уже советовал рассмотреть индикатор:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
barabashkakvn, 2015.03.18 05:39
... А простой пример работы с iMA - индикатор "Alligator".
Не могу приклеить массив к последнему значению MA!
Задача: Получить максимальную и минимальную цену на последних 100 барах iMA
Задрался уже с for'м, i Lowest, Highest, Фигаест... 8(((
double MA14=iMA(Symbol(),PERIOD,14,0,MODE_SMA,PRICE_CLOSE,???);
Если рассматриваем MQL4, то код будет следующим:
extern int p =120;//количество для заполнения буфера double val[];//массив с данными индикатора ///////////////////////////////////то что выше размещаем на глобальном уровне, то есть, где внешние настройки советника, ниже код в старте ArrayInitialize(val,0);//инициализация массива вначале нолем for(int k=0;k<p;k++)//цикл для заполнения массива данными с индикатора { ArrayResize(val_min,p);//установка размера массива val[k]=iCustom(NULL,0,"indikator",period,razbeg,0,k);//собственно сами данные на каждом индексе } int iMin=ArrayMinimum(val,WHOLE_ARRAY,0);//индекс минимума int iMax=ArrayMaximum(val,WHOLE_ARRAY,0);//индекс максимума double min=val[iMin];//минимальное значение индикатора double max=val[iMax];//максимальное значение индикатора
ресурсы данный код поджирает, поэтому вызывайте раз на новом баре.
"iCustom" для примера, можете заменить на индикатор, который Вам нужен.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Не могу приклеить массив к последнему значению MA!
Задача: Получить максимальную и минимальную цену на последних 100 барах iMA
Задрался уже с for'м, i Lowest, Highest, Фигаест... 8(((
double MA14=iMA(Symbol(),PERIOD,14,0,MODE_SMA,PRICE_CLOSE,???);