Помощь в кодировании - страница 462

 
wranger:
Привет mladen, спасибо, что направили меня в нужном направлении. Не знаю, прошел ли мой последний ответ, но я только что скачал этот:

Forex TSD - форекс форум - Скачать Угол MA NonLag 1.01.mq4

И это похоже на то, что я искал.

Однако я видел более раннюю версию, в которой было именно то, что я имел в виду:

https://www.mql5.com/en/forum/173056/page4 (файл Forex TSD - Форекс форум - Скачать !!! Angle of average.mq4 )

К сожалению, это больше не работает для настоящего mt4.... возможно ли сделать MA на графике версия этого Forex TSD - форекс форум - Скачать Angle of NonLag MA 1.01.mq4?

wranger

Обновленная версия "angle of average", совместимая с новым mt4, выложена здесь: https: //www.mql5.com/en/forum/173056/page5.

 

здравствуйте, что мне нужно добавить в код индикатора, если я хочу видеть цену, которая вызвала тревогу в окне тревоги?

 

Здравствуйте, Младен,

Я хочу попросить вас о большом одолжении ...... Не могли бы вы изменить этот код на индикатор Mt4 ...... Он написан на языке Amibroker ...

Не могли бы вы мне помочь .... Его можно изменить на синий, красный и нейтральный серый цвет в версии гистограммы.

Спасибо большое.

*************************************************************

_SECTION_BEGIN("Elder Impulse");

radius = 0.1 * Status("pxheight"); // получите высоту графика в пикселях и используйте 45% для радиуса круговой диаграммы

textoffset = 0.1 * radius;

GfxSelectFont("Arial", 9, 500, True );

///////////////////////////////////////////////////

SetChartOptions(0,chartShowArrows|chartShowDates);

EnableTextOutput(False);

// Определяемый пользователем параметр для периодов EMA

EMA_Type = Param("EMA-1, TEMA-2, JMA-3", 2, 1, 3, 1);

EMA_prds = Param("EMA_periods", 7, 1, 30, 1);

Std_MACD = Param("Standard MACD? No-0, Yes-1", 1, 0, 1, 1);

Plot_fashion = Param("Bar+Arrows-1, Impulse Bars-2", 2, 1, 2, 1);

// Позволяет пользователю определить расположение и высоту ленты недельного и месячного графиков

WR_P1 = Param("Расположение ленты на неделю", 5.2, -1000, 1000, 0.1);

WR_P2 = Param("Weekly Ribbon Height", 199, -0.001, 500, 0.1);

// Вычисляем гистограмму EMA и MACD

if(EMA_Type == 1)

{

DayEMA = EMA(Close, EMA_prds);

}

if (EMA_Type == 2)

{

DayEMA = TEMA(Close, EMA_prds);

}

Histogram = MACD() - Signal();

// Определяем, есть ли у нас импульс ВВЕРХ, ВНИЗ или нет

Impulse_Up = DayEMA > Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1);

Impulse_Down = DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1);

Impulse_None = (NOT Impulse_UP) AND (NOT Impulse_Down);

// Вычисляем недельный MACD и определяем, является ли он растущим или падающим

TimeFrameSet(inWeekly);

if (Std_MACD == 0)

{

MACD_val = MACD(5, Cool);

Signal_val = Signal(5, 8, 5);

}

else

{

MACD_val = MACD(12, 26);

Signal_val = Signal(12, 26, 9);

}

Hist_in_w = MACD_val - Signal_val;

wh_rising = Hist_in_w > Ref(Hist_in_w, -1);

wh_falling = Hist_in_w < Ref(Hist_in_w, -1);

wh_none = (NOT wh_rising) AND (NOT wh_falling);

TimeFrameRestore();

// Теперь получим месячную MACD-гистограмму.....

TimeFrameSet(inMonthly);

MACD_val = MACD(5, 8);

Signal_val = Signal(5, 8, 5);

Hist_in_m = MACD_val - Signal_val;

mh_rising = Hist_in_m > Ref(Hist_in_m, -1);

mh_falling = Hist_in_m < Ref(Hist_in_m, -1);

TimeFrameRestore();

wh_rising = TimeFrameExpand( wh_rising, inWeekly, expandLast );

wh_falling = TimeFrameExpand( wh_falling, inWeekly, expandLast);

wh_none = TimeFrameExpand( wh_none, inWeekly, expandLast);

mh_rising = TimeFrameExpand(mh_rising, inMonthly, expandLast);

mh_falling = TimeFrameExpand(mh_falling, inMonthly, expandLast);

kol = IIf( wh_rising, colorBrightGreen, IIf(wh_falling, colorRed, IIf(wh_none, colorCustom11, colorLightGrey));

mkol = IIf( mh_rising, colorBlue, IIf(mh_falling, colorRed, colorLightGrey));

if (Plot_fashion == 1)

{

}

else

{

bar_kol = IIf(impulse_UP, colorBrightGreen, IIf(impulse_Down, colorRed, colorCustom11));

}

Impulse_State = WriteIf(Impulse_Up, "Bulllish", WriteIf(Impulse_Down, "Bearish", "Neutral"));

GfxTextOut( "IMPULSE STATE = " +Impulse_State, textoffset + 0, 30 );

// Установите цвет фона для колонки состояния импульса

Impulse_Col = IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed, colorGrey40));

bars_in_bull = Min(BarsSince(impulse_none), BarsSince(impulse_down));

bars_in_bear = Min(BarsSince(impulse_up), BarsSince(impulse_none));

bars_in_neut = Min(BarsSince(impulse_down), BarsSince(impulse_up));

// Устанавливаем единственную переменную для отображения количества баров в текущем состоянии в зависимости от того.

// фактического состояния импульса - бычьего, медвежьего или нейтрального

bars_in_state = IIf(Impulse_Up, bars_in_bull, IIf(Impulse_down, bars_in_bear, bars_in_neut));

// недельный разворот

k1=-1;

SetChartBkColor(16 ) ;

k=IIf(ParamList("select type", "daily|next day")=="daily",-1,0);

k1=-1;

TimeFrameSet(inDaily);

day_h= LastValue(Ref(H,K));

day_l= LastValue(Ref(L,K));

day_c= LastValue(Ref(C,K));

TimeFrameRestore();

// день

WriteVal( StochK(39) - StochK(12) );

GfxSelectFont("Arial", 8 );

_SECTION_END();

Еще раз спасибо...

 
rpasupathy:
Привет, Младен,

Я хочу попросить вас о большом одолжении ...... Не могли бы вы изменить этот код на индикатор Mt4 ...... Он написан на языке Amibroker ...

Вы можете, пожалуйста, помочь мне .... Он может быть изменен на синий, красный и нейтральный серый цвет в версии гистограммы.

Спасибо большое.

*************************************************************

_SECTION_BEGIN("Elder Impulse");

radius = 0.1 * Status("pxheight"); // получите высоту графика в пикселях и используйте 45% для радиуса круговой диаграммы

textoffset = 0.1 * radius;

GfxSelectFont("Arial", 9, 500, True );

///////////////////////////////////////////////////

SetChartOptions(0,chartShowArrows|chartShowDates);

EnableTextOutput(False);

// Определяемый пользователем параметр для периодов EMA

EMA_Type = Param("EMA-1, TEMA-2, JMA-3", 2, 1, 3, 1);

EMA_prds = Param("EMA_periods", 7, 1, 30, 1);

Std_MACD = Param("Standard MACD? No-0, Yes-1", 1, 0, 1, 1);

Plot_fashion = Param("Bar+Arrows-1, Impulse Bars-2", 2, 1, 2, 1);

// Позволяет пользователю определить расположение и высоту ленты недельного и месячного графиков

WR_P1 = Param("Расположение ленты на неделю", 5.2, -1000, 1000, 0.1);

WR_P2 = Param("Weekly Ribbon Height", 199, -0.001, 500, 0.1);

// Вычисляем гистограмму EMA и MACD

if(EMA_Type == 1)

{

DayEMA = EMA(Close, EMA_prds);

}

if (EMA_Type == 2)

{

DayEMA = TEMA(Close, EMA_prds);

}

Histogram = MACD() - Signal();

// Определяем, есть ли у нас импульс ВВЕРХ, ВНИЗ или нет

Impulse_Up = DayEMA > Ref(DayEMA, -1) AND Histogram > Ref(Histogram, -1);

Impulse_Down = DayEMA < Ref(DayEMA, -1) AND Histogram < Ref(Histogram, -1);

Impulse_None = (NOT Impulse_UP) AND (NOT Impulse_Down);

// Вычисляем недельный MACD и определяем, является ли он растущим или падающим

TimeFrameSet(inWeekly);

if (Std_MACD == 0)

{

MACD_val = MACD(5, Cool);

Signal_val = Signal(5, 8, 5);

}

else

{

MACD_val = MACD(12, 26);

Signal_val = Signal(12, 26, 9);

}

Hist_in_w = MACD_val - Signal_val;

wh_rising = Hist_in_w > Ref(Hist_in_w, -1);

wh_falling = Hist_in_w < Ref(Hist_in_w, -1);

wh_none = (NOT wh_rising) AND (NOT wh_falling);

TimeFrameRestore();

// Теперь получим месячную MACD-гистограмму.....

TimeFrameSet(inMonthly);

MACD_val = MACD(5, 8);

Signal_val = Signal(5, 8, 5);

Hist_in_m = MACD_val - Signal_val;

mh_rising = Hist_in_m > Ref(Hist_in_m, -1);

mh_falling = Hist_in_m < Ref(Hist_in_m, -1);

TimeFrameRestore();

wh_rising = TimeFrameExpand( wh_rising, inWeekly, expandLast );

wh_falling = TimeFrameExpand( wh_falling, inWeekly, expandLast);

wh_none = TimeFrameExpand( wh_none, inWeekly, expandLast);

mh_rising = TimeFrameExpand(mh_rising, inMonthly, expandLast);

mh_falling = TimeFrameExpand(mh_falling, inMonthly, expandLast);

kol = IIf( wh_rising, colorBrightGreen, IIf(wh_falling, colorRed, IIf(wh_none, colorCustom11, colorLightGrey));

mkol = IIf( mh_rising, colorBlue, IIf(mh_falling, colorRed, colorLightGrey));

if (Plot_fashion == 1)

{

}

else

{

bar_kol = IIf(impulse_UP, colorBrightGreen, IIf(impulse_Down, colorRed, colorCustom11));

}

Impulse_State = WriteIf(Impulse_Up, "Bulllish", WriteIf(Impulse_Down, "Bearish", "Neutral"));

GfxTextOut( "IMPULSE STATE = " +Impulse_State, textoffset + 0, 30 );

// Установите цвет фона для колонки состояния импульса

Impulse_Col = IIf(Impulse_Up, colorGreen, IIf(Impulse_Down, colorRed, colorGrey40));

bars_in_bull = Min(BarsSince(impulse_none), BarsSince(impulse_down));

bars_in_bear = Min(BarsSince(impulse_up), BarsSince(impulse_none));

bars_in_neut = Min(BarsSince(impulse_down), BarsSince(impulse_up));

// Устанавливаем единственную переменную для отображения количества баров в текущем состоянии в зависимости от того.

// фактического состояния импульса - бычьего, медвежьего или нейтрального

bars_in_state = IIf(Impulse_Up, bars_in_bull, IIf(Impulse_down, bars_in_bear, bars_in_neut));

// недельный разворот

k1=-1;

SetChartBkColor(16 ) ;

k=IIf(ParamList("select type", "daily|next day")=="daily",-1,0);

k1=-1;

TimeFrameSet(inDaily);

day_h= LastValue(Ref(H,K));

day_l= LastValue(Ref(L,K));

day_c= LastValue(Ref(C,K));

TimeFrameRestore();

// день

WriteVal( StochK(39) - StochK(12) );

GfxSelectFont("Arial", 8 );

_SECTION_END();

Еще раз спасибо...

Один из вариантов импульса бузины вы можете найти здесь: https: //www.mql5.com/en/forum/178416/page20.

Или вы можете просмотреть этот список: Elder impluse, поскольку существует уже довольно много версий этого индикатора.

 
marley60:
здравствуйте, что мне нужно добавить в код индикатора, если я хочу видеть цену, которая вызвала тревогу в окне тревоги?

извините, может быть, "alarm" - это не английский и должно быть "предупреждение".

или я что-то сделал не так, потому что последние несколько раз, когда я спрашивал что-то, я не получил никаких ответов?

 
marley60:
Извините, возможно, я не знаю английского языка и должен написать "alert". или я что-то сделал не так, потому что последние несколько раз, когда я что-то спрашивал, я не получил никаких ответов?

Добавьте что-то вроде DoubleToStr(PriceThatTriggered,_Digits) к Alert(alertText1,alertText2,...).

 

Здравствуйте,

Я пытаюсь сделать индикатор, который основан на максимуме, минимуме и закрытии другого индикатора. Данные о закрытии, естественно, доступны, но как мне получить самое высокое и самое низкое значение, которое индикатор сделал во время определенного бара? Я уже искал в Интернете и нашел функции типа iHigh() и iHighest(), но они, похоже, допускают только параметры типа NULL (текущий символ). Кажется, есть что-то вроде OnCalculate(), но я не уверен, что параметры high[], low[] и т.д. дают максимум индикатора или символа. Не мог бы кто-нибудь подсказать мне, есть ли в mt4 способ измерять high и low данных индикатора?

С уважением,

 
mrcodix:
Здравствуйте,

Я пытаюсь создать индикатор, основанный на максимуме, минимуме и закрытии другого индикатора. Данные о закрытии, естественно, доступны, но как мне захватить самое высокое и самое низкое значение, которое индикатор сделал во время определенного бара? Я уже искал в Интернете и нашел функции типа iHigh() и iHighest(), но они, похоже, допускают только параметры типа NULL (текущий символ). Кажется, есть что-то вроде OnCalculate(), но я не уверен, что параметры high[], low[] и т.д. дают максимум индикатора или символа. Не мог бы кто-нибудь подсказать, есть ли в mt4 способ измерять high и low данных индикатора?

С уважением,

high[] и low[] дают высокие и низкие цены.

Вы должны использовать ArrayMaximum() и ArrayMinimum(), чтобы найти самое высокое и самое низкое значение какого-либо индикатора (сначала вы должны сохранить значения индикатора в буфере).

 
mladen:
high[] и low[] дают высокие цены и низкие цены Вы должны использовать ArrayMaximum() и ArrayMinimum(), чтобы найти максимальное и минимальное значение какого-либо индикатора (сначала вы должны сохранить значения индикатора в буфере).

Привет, Младен,

ArrayMaximum() хранит максимальное значение каждого бара или максимальное значение всего массива? Потому что мне нужно максимальное и минимальное значение для каждого последующего бара или элемента массива.

С уважением,

 

Здравствуйте,

ArrayMaximum - Документация MQL4

Я изучил ее, и кажется, что эта функция возвращает наибольшее значение из всех значений в массиве. Я же ищу функцию, которая сообщает наибольшее значение, достигнутое индикатором в течение одного бара таймфрейма. Как я могу это записать? Например, индикатор X формирует самый последний бар. Он переходит от 3 к 5 к 4 к 7, а затем, когда бар таймфрейма закрывается, он заканчивает на значении 2. Наибольшее значение, которого он достиг, было 7. Как я могу записать это значение?

Причина обращения: