求教!!!一个从不同周期取指标值产生的问题,谢谢!!!有图

 


#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Silver
#property indicator_width1 1
double LLL[];
double M21[];
double M22[];
double M1[];
double M2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(5);
SetIndexStyle(0, DRAW_ARROW, 0, 1); //原来想画竖线也不成功,???
SetIndexBuffer(0, LLL);
SetIndexBuffer(1, M21);
SetIndexBuffer(2, M22);
SetIndexBuffer(3, M1);
SetIndexBuffer(4, M2);
//----
return(0);
}
//----
int start()
{
int i, counted_bars=IndicatorCounted();
//----
i = Bars - counted_bars - 1;
while(i>=0)
{
M21[i]=iMA(NULL,60,55,0,MODE_SMA,PRICE_CLOSE,i);
M22[i]=iMA(NULL,60,21,0,MODE_SMA,PRICE_CLOSE,i);
M1[i]=iMA(NULL,1,55,0,MODE_SMA,PRICE_CLOSE,i);
M2[i]=iMA(NULL,1,21,0,MODE_SMA,PRICE_CLOSE,i);

if(M21[i]==0) LLL[i]=(High[i+1]+Low[i+1])/2-10*Point;
//这行并不是我想要的,由于出现不正常现象才加上去检验程序,才知道出现0值
//但也不全是0值,只是图表的前部是,正常是不可能有那么值会是0,最多是图表的前小部啊
//????
i--;
}

i = Bars - counted_bars - 1;
while(i>=0)
{
if(M1[i+1]>M2[i+1] && M2[i]>M1[i])
LLL[i]=High[i]+10*Point; //1MN出现金叉时,在交叉点上方标记
//但从1MN换到大周期图表时,交叉点会变少,并不是重叠的原因
//而且出现的地方时间不对, ????

//如果这里能用竖线就更好了,可是它就是不出,郁闷
i--;
}

//----
return(0);
}
//+------------------------------------------------------------------+

我想不管在什么周期下都可以知道此时一分钟或其它周期下的情况,此程序只是作为一个试验的开始,但我就是找不出是什么卡壳了,请各位知道问题所在的朋友赐教。谢谢!!!

 
M22[i]=iMA(NULL,60,21,0,MODE_SMA,PRICE_CLOSE,i);

M1[i]=iMA(NULL,1,55,0,MODE_SMA,PRICE_CLOSE,i);


两个周期对应关系不正确,M22[i]=iMA(NULL,60,21,0,MODE_SMA,PRICE_CLOSE,i/60); 这样试试 看

 
xszjg 写道 >>
M22[i]=iMA(NULL,60,21,0,MODE_SMA,PRICE_CLOSE,i);

M1[i]=iMA(NULL,1,55,0,MODE_SMA,PRICE_CLOSE,i);

两个周期对应关系不正确,M22[i]=iMA(NULL,60,21,0,MODE_SMA,PRICE_CLOSE,i/60); 这样试试 看

谢谢你的解答,但问题还是没解决,甚至在H1里连叉点也没法标出。

可能我上次没有表达清楚,在1MN已能正确标出叉点,但直接换到1H时却不能正确标出各叉点,而且还出现不应该出现的零值,

困惑之极,还请那位知道的朋友帮帮忙。

另外,在主图里不能用竖线---DRAW_HISTOGRAM

 

你想在一个图表中画多周期的ma?

你可以参照下面的。

下面的连接的楼主的想法是将不同周期的ma画在一个图表中,但是他的算法有误,别人的回复是正确的算法。

https://www.mql5.com/en/code/8306

原因: