ALXIMIKS: посмотрите эту статью, все не на столько просто как кажется, и в общем весьма полезно.
посмотрел. на ее детально изучение у меня уйдет неделя. но хуже того, что я не нашел там мест которые бы были связаны с моей задачей. я не раскрашиваю индикаторы, и вообще никак их не модифицирую. я лишь хочу найти максимумы и минимумы на n-последних барах. есть там намек на сходство в RSI_Extremums_Sample.mq4 но мне этот код не осилить. там много лишнего, там индикатор РИСУЕТСЯ.... а мне это не нужно...
посмотрел. на ее детально изучение у меня уйдет неделя. но хуже того, что я не нашел там мест которые бы были связаны с моей задачей. я не раскрашиваю индикаторы, и вообще никак их не модифицирую. я лишь хочу найти максимумы и минимумы на n-последних барах. есть там намек на сходство в RSI_Extremums_Sample.mq4 но мне этот код не осилить. там много лишнего, там индикатор РИСУЕТСЯ.... а мне это не нужно...
из учебника взял этот код. все в принципе понятно. не понятно только как вместо расчета экстремумов цены за n периодов, рассчитать экстремумы MACD-индикатора, например ?
в ключевом блоке видимо нужно поменять HIGH и LOW на MACD... но я не понимаю как...все попытки танцев с бубном заканчиваются обнулением.
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 17.05.2008 |//| Описание : Возвращает значение максимального элемента массива. |//+----------------------------------------------------------------------------+//| Параметры: |//| x - массив значений числового ряда |//+----------------------------------------------------------------------------+double ArrayMax(double& x[]) {
if (ArraySize(x)>0) return(x[ArrayMaximum(x)]);
else {
Print("ArrayMax(): Массив пуст!");
return(0);
}
}
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- last counted bar will be recountedif(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- macd counted in the 1-st bufferfor(int i=0; i<limit; i++)
MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd bufferfor(i=0; i<limit; i++)
SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- donereturn(0);
}
посмотрите эту статью, все не на столько просто как кажется, и в общем весьма полезно.
посмотрел. на ее детально изучение у меня уйдет неделя. но хуже того, что я не нашел там мест которые бы были связаны с моей задачей. я не раскрашиваю индикаторы, и вообще никак их не модифицирую. я лишь хочу найти максимумы и минимумы на n-последних барах. есть там намек на сходство в RSI_Extremums_Sample.mq4 но мне этот код не осилить. там много лишнего, там индикатор РИСУЕТСЯ.... а мне это не нужно...
посмотрел. на ее детально изучение у меня уйдет неделя. но хуже того, что я не нашел там мест которые бы были связаны с моей задачей. я не раскрашиваю индикаторы, и вообще никак их не модифицирую. я лишь хочу найти максимумы и минимумы на n-последних барах. есть там намек на сходство в RSI_Extremums_Sample.mq4 но мне этот код не осилить. там много лишнего, там индикатор РИСУЕТСЯ.... а мне это не нужно...
Возможно ли с помощью функции " ArrayMaximum", расчитать ближайший максимум пользовательского индикатора?
Или для этого нужны иные функции?
Попробовал сделать так:
И ничего не выходит. Гуру, подскажите, как сделать?из учебника взял этот код. все в принципе понятно. не понятно только как вместо расчета экстремумов цены за n периодов, рассчитать экстремумы MACD-индикатора, например ?
в ключевом блоке видимо нужно поменять HIGH и LOW на MACD... но я не понимаю как...все попытки танцев с бубном заканчиваются обнулением.
понимаю что нужно создать массив MACD...
double MACDBuffer[];
так же видел в других советниках такую строку
но тупо замерить одно на другое не получается...
подскажите как это сделать?
Cтатья .
нашел у Кима что-то похожее
вопрос: как создать массив значений индикатора?
нашел у Кима что-то похожее
вопрос: как создать массив значений индикатора?
перечитал что спрашивали, не так понял сперва(
чтобы получить буфер с данными индюка можно:
1) прогнать цикл с сбором в буфер значений iMACD
2) взять исходный код с MACD, там есть буфер
перечитал что спрашивали, не так понял сперва(
чтобы получить буфер с данными индюка можно:
1) прогнать цикл с сбором в буфер значений iMACD
2) взять исходный код с MACD, там есть буфер
а как мне визуализировать буфер, иначе я не понимаю что с ним делать....
Print(MACDBuffer[1]); ?? принтует ноль...почему? по идее там должно быть значение 1-го бара....
и еще... зачем рассчитывать MACD через МА, когда есть прямая функция iMACD ???
а как мне визуализировать буфер, иначе я не понимаю что с ним делать....
Print(MACDBuffer[1]); ?? принтует ноль...почему? по идее там должно быть значение 1-го бара....
и еще... зачем рассчитывать MACD через МА, когда есть прямая функция iMACD ???
Скажите, пожалуйста, что Вам надо,
но по понятнее, чтобы и тупой понял.
Скажите, пожалуйста, что Вам надо,
но по понятнее, чтобы и тупой понял.
мне нужно определить минимальное (как на картинке) и максимальное значение индикатора MACD на заданном количестве баров. (в данном случае 20).
я нашел код который делает это для цены, и тупо пытался заменить HIGH LOW на MACD. но ничего не получилось....
Давать качественную историю - работа как раз ДЦ. Им лень, и они всегда на МК пеняют.
Спасибо!
мне нужно определить минимальное (как на картинке) и максимальное значение индикатора MACD на заданном количестве баров. (в данном случае 20).
я нашел код который делает это для цены, и тупо пытался заменить HIGH LOW на MACD. но ничего не получилось....
П.С. хотя так правильнее и лучше: