编码帮助 - 页 462

 
wranger:
嗨,mladen,谢谢你给我指出了正确的方向。不知道我上次的回复是否通过,但我刚下载了这个。

Forex TSD - 外汇论坛 - 下载Angle of NonLag MA 1.01.mq4

这看起来像是我在寻找的东西。

然而,我从那里看到了一个较早的版本,虽然有我所想的。

https://www.mql5.com/en/forum/173056/page4(fileForex TSD - forex forum - Download !! Angle of average.mq4)

不幸的是,这对于现在的mt4....,是否有可能在图表上做一个MA的版本,外汇TSD - 外汇论坛 - 下载NonLag MA 1.01.mq4的角度

巫师

这里发布的与新的MT4兼容的 "平均线角度 "的更新版本:https://www.mql5.com/en/forum/173056/page5

 

你好,如果我想在报警窗口看到触发报警的价格,我需要在指标代码中添加什么?

 

HI Mladen,

我想请你帮个大忙 .....请你把这段代码改成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("周线高度", 199, -0.001, 500, 0.1);

// 计算EMA和MACD柱状图

如果(EMA_Type == 1)

{

DayEMA = EMA(Close, EMA_prds);

}

如果(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);

如果(Std_MACD == 0)

{

MACD_val = MACD(5, Cool);

Signal_val = Signal(5, 8, 5);

}

否则

{

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))。

如果(Plot_fashion == 1)

{

}

否则

{

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")=="day",-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:
HI Mladen,

我想请你帮个大忙 .....请你把这段代码改成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("周线高度", 199, -0.001, 500, 0.1);

// 计算EMA和MACD柱状图

如果(EMA_Type == 1)

{

DayEMA = EMA(Close, EMA_prds);

}

如果(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);

如果(Std_MACD == 0)

{

MACD_val = MACD(5, Cool);

Signal_val = Signal(5, 8, 5);

}

否则

{

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))。

如果(Plot_fashion == 1)

{

}

否则

{

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")=="day",-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 impuse,因为该指标已经有很多版本了。

 
marley60:
你好,如果我想在警报窗口中看到触发警报的价格,我需要在指标代码中添加什么?

对不起,也许报警不是英语,它应该是 "警报"。

还是我做错了什么,因为前几次我问的问题都没有得到任何答复?

 
marley60:
对不起,也许警报不是英语,它应该是 "alert"。或者我做错了什么,因为过去几次我问的问题都没有得到任何答案?

在警报(alertText1,alertText2,...)中添加类似DoubleToStr(PriceThatTriggered,_Digits)的内容。

 

你好。

我想做一个基于另一个指标的高点、低点和收盘的指标。收盘数据自然是可用的,但我如何捕捉该指标在一个特定柱状图中的最高和最低值?我已经在网上找过了,发现了iHigh()和iHighest()这样的函数,但这些函数 似乎只允许NULL(当前符号)这样的参数。似乎也有像OnCalculate()这样的函数,但我不确定参数high[]、low[]等是指指标的高点还是符号。谁能告诉我mt4是否有办法测量指标数据的高点和低点?

好心的问候。

 
mrcodix:
你好。

我想做一个基于另一个指标的高点、低点和收盘的指标。收盘数据自然是可用的,但我如何捕捉该指标在一个特定柱状图中的最高和最低值?我已经在网上找过了,发现了iHigh()和iHighest()这样的函数,但这些函数似乎只允许NULL(当前符号)这样的参数。似乎也有像OnCalculate()这样的函数,但我不确定参数high[]、low[]等是指指标的高点还是符号。谁能告诉我mt4是否有办法测量指标数据的高点和低点?

亲切的问候。

high[]和low[]给出的是高价和低价。

你必须使用ArrayMaximum() 和ArrayMinimum()来找到一些指标的最高值和最低值(首先你必须将指标的值存储在一个缓冲区内)。

 
mladen:
你必须使用ArrayMaximum()和ArrayMinimum()来找到一些指标的最高值和最低值(首先你必须将指标的值存储在一个缓冲区内)。

Hi mladen,

ArrayMaximum()是存储每个条形的最大值还是整个数组的最大值?因为我需要数组中每个连续的条形或元素的最大值和最小值。

问好。

 

你好。

ArrayMaximum - MQL4 文档

我查过了,似乎这个函数返回数组中所有数值的最高值。我所寻找的是一个能告诉你一个指标在一个时间框架内达到的最高值的函数。我怎样才能记录这个?例如,指标X正在形成最近的条形。它从3到5到4到7,然后当时间框架栏关闭时,它完成了2的值。它达到的最高值是7。我如何记录这个值?