分类
打造被動收入超過薪水

在MT4上怎么将均线指标与MACD指标叠加在一起?

MT4加载KDJ

MT4中KDJ指标源代码

怎么在MT4上面添加双线MACD指标?


Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

求助!! MT4编程达人请进来指导MACD面积指标

MACD面积和红绿柱转折指标图(通达信)

#property indicator_separate_window
#property indicator_buffers 6
#property indicator_color1 White
#property indicator_color2 Yellow
#property indicator_color3 Red
#property indicator_color4 Green
//---- indicator parameters
extern int FastEMA=5;
extern int SlowEMA=9;
extern int SignalEMA=4;
//---- indicator buffers

double ind_buffer1[]; //DIF-WHITE
double ind_buffer2[]; //DEA-YELLOW
double ind_buffer3[]; //MACD-RED
double ind_buffer4[]; //MACD-GREEN
double ind_buffer5[]; //RED AREA
double ind_buffer6[]; //GREEN AREA

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
//---- 2 additional buffers are used for counting.
// IndicatorBuffers(6);
//---- drawing settings
SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_SOLID,1);
IndicatorDigits(int(MarketInfo(Symbol(),MODE_DIGITS)+1));
SetIndexDrawBegin(2,SignalEMA);
SetIndexDrawBegin(3,SignalEMA);
//---- 4 indicator buffers mapping

SetIndexBuffer(0,ind_buffer1); //DIF-WHITE
SetIndexBuffer(1,ind_buffer2); //DEA-YELLOW
SetIndexBuffer(2,ind_buffer3); //MACD-RED
SetIndexBuffer(3,ind_buffer4); //MACD-GREEN
SetIndexBuffer(4,ind_buffer5); //RED AREA
SetIndexBuffer(5,ind_buffer6); //GREEN AREA


SetIndexLabel(0,"DIF"); //DIF-WHITE
SetIndexLabel(1,"DEA"); //DEA-YELLOW
SetIndexLabel(2,"Red"); //MACD-RED
SetIndexLabel(3,"Green"); //MACD-GREEN
SetIndexLabel(4,"Red_Area"); //RED AREA
SetIndexLabel(5,"Green_Area");//GREEN AREA
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("MACD-3 ("+string(FastEMA)+","+string(SlowEMA)+","+string(SignalEMA)+")");
//---- initialization done
return(0);
>
//+------------------------------------------------------------------+
//| Oscillator |
//+------------------------------------------------------------------+
int start()
double prev,current;

int counted_bars = IndicatorCounted(); 在MT4上怎么将均线指标与MACD指标叠加在一起?
if(counted_bars < 0) return(-1);
if(counted_bars > 0) counted_bars--;
int limit = Bars - counted_bars;
if(counted_bars==0) limit-=2;

//---- DIF counted in the 1-st additional buffer
for(int i=0; i ind_buffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- DEA counted in the 2-nd additional buffer
for(i=0; i ind_buffer2[i]=iMAOnArray(ind_buffer1,Bars,SignalEMA,0,MODE_SMA, i);
//---- dispatch values between 2 buffers
bool up=true;
for(i=limit-1; i>=0; i--)
current=ind_buffer1[i]-ind_buffer2[i];
prev=ind_buffer1[i+1]-ind_buffer2[i+1];
if(current>prev) up=true; 在MT4上怎么将均线指标与MACD指标叠加在一起?
if(current if(!up)
ind_buffer4[i]=3*current;
ind_buffer3[i]=0.0;
>
else
ind_buffer3[i]=3*current;
ind_buffer4[i]=0.0;
>

int r,z,g; //定义变量r,z,g分别计数红柱、零柱和绿柱
r=z=g=0;
int k=limit;
for (k=limit-1-r-z-g; k>=0;k--) //

if (ind_buffer3[k]>0) //如果第一根柱子是红柱:
<
ind_buffer5[k]=ind_buffer3[k]; //最左(早)第1根红柱赋值给面积,准备累加总面积
r=1; //红柱计数为1根
for (k=limit-1-1; k>=0;k--) //从最左第2根开始判断右边1根是否仍是红柱,若是红柱,累加红柱面积并开始循环
if (ind_buffer3[k]>0) //如果右边1根仍是红柱
ind_buffer5[k]=ind_buffer3[k]+ind_buffer5[k+1]; //将左边红柱面积累加到当前总面积
r++; //红柱计数增加1根
>
break;
> //循环完成,完成一波连续红柱的面积累计,红柱数量共计r根
> //上面循环完成r根连续红柱计算,剩下共k-r根继续累加,并进入零柱判断循环
k=limit-1-r;

if (ind_buffer3[k]==0&&ind_buffer4[k]==0) //如果第一根柱子是零柱:
<
ind_buffer5[k]=ind_buffer3[k]; //最左(早)第1根零柱柱赋值给面积,准备累加总面积
ind_buffer6[k]=ind_buffer4[k];
z=1; //零柱计数为1根
for (k=limit-1-1; k>=0;在MT4上怎么将均线指标与MACD指标叠加在一起? k--) //从最左第2根开始判断右边1根是否仍是零柱,若是零柱,累加零柱面积并开始循环
if (ind_buffer3[k]==0&&ind_buffer4[k]==0) //如果右边1根仍是零柱
ind_buffer5[k]=ind_buffer3[k]; //将左边零柱面积累加到当前总面积
ind_buffer6[k]=ind_buffer4[k];
z++; //零柱计数增加1根
>
break;
> //循环完成,完成一波连续零柱的面积累计,零柱数量共计z根
> //上面循环完成z根连续红柱及零柱计算,剩下共k-r-z根继续累加,并进入绿柱循环
k=limit-1-r-z;
if (在MT4上怎么将均线指标与MACD指标叠加在一起? ind_buffer4[k] <0) //如果第一根柱子是绿柱:
<
ind_buffer6[k]=ind_buffer4[k]; //最左(早)第1根绿柱赋值给面积,准备累加总面积
g=1; //绿柱计数为1根
for (k=limit-1-1; i>=0;k--) 在MT4上怎么将均线指标与MACD指标叠加在一起? //从最左第2根开始判断右边1根是否仍是绿柱,若是绿柱,累加绿柱面积并开始循环
if (ind_buffer4[k] <0) //如果右边1根仍是绿柱
ind_buffer6[k]=ind_buffer4[k]+ind_buffer6[k+1]; //将左边绿柱面积累加到当前总面积
g++; //绿柱计数增加1根
>
break;
> //循环完成,完成一波连续绿柱的面积累计,绿柱数量共计g根
> //上面循环完成g根连续绿柱计算,剩下共k-r-z-g根继续累加,并进入红柱判断循环

在MT4上使用KDJ指标

EA开发-青衫码客 于 2021-12-20 20:39:00 发布 1055 收藏 1

KDJ指标的计算公式是:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3
K-2*D;

KDJ指标的一般使用:
1.指标>80时,回档机率大;指标 2.K在20左右向上交叉D时,视为买进信号;
3.K在80左右向下交叉D时,视为卖出信号;
4.J>100时,股价易反转下跌;J 5.KDJ波动于50左右的任何信号,其作用不大。

在这里插入图片描述

MT4加载KDJ

MT4中KDJ指标源代码

在这里插入图片描述

工欲善其事,必先利其器,交易最重要的是遵守规则,严格执行。关注公众号,学习MQL入门到精通EA教程,学习更多EA编程,畅写属于自己的EA,锻造属于自己的神兵利器。

在MT4上使用KDJ指标

EA开发-青衫码客 于 2021-12-20 20:39:00 发布 1056 收藏 1

KDJ指标的计算公式是:
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))100;
K:SMA(RSV,M1,1);
D:SMA(K,M2,1);
J:3
K-2*D;

KDJ指标的一般使用:
1.指标>80时,回档机率大;指标 2.K在20左右向上交叉D时,视为买进信号;
3.K在80左右向下交叉D时,视为卖出信号;
4.J>100时,股价易反转下跌;J 5.KDJ波动于50左右的任何信号,其作用不大。

在这里插入图片描述

MT4加载KDJ

MT4中KDJ指标源代码

在这里插入图片描述

工欲善其事,必先利其器,交易最重要的是遵守规则,严格执行。关注公众号,学习MQL入门到精通EA教程,学习更多EA编程,畅写属于自己的EA,锻造属于自己的神兵利器。