1附件我有这个经典的MACD直方图,其中直方图被绘制在MACD和信号线的前面。有人可以告诉我如何在后面设置直方图吗?我试图弄明白,但没有成功。
谢谢,
劳勒斯
编辑:得到帮助。不得不切换缓冲区的顺序
。如果有人愿意,可以在后面附上带有直方图的indior文件。
// ----------------------------------------------- ----------------------------
//| _MACD.mq4 |
//| |
//|具有直方图的经典MACD |
// ----------------------------------------------- ----------------------------
//----室内设置
#property indior_separate_window
#property indior_buffers 3
#property indior_color1黑色
#property indior_color2红色
#property indior_color3 SteelBlue
#property indior_width1 1
#property indior_width2 1
#property indior_width3 2
//----室内参数
extern int FastEMA = 12;
extern int SlowEMA = 26;
extern int SignalEMA = 9;
//----室内缓冲区
double MACD_Buffer [];
double SIGNAL_Buffer [];
double HISTOGRAM_Buffer [];
// ----------------------------------------------- -------------------
//|自定义室内初始化功能|
// ----------------------------------------------- -------------------
int init(){
//----绘图设置
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_HISTOGRAM);
SetIndexDrawBegin(1,SignalEMA);
IndiorDigits(位数 1);
//----室内缓冲区映射
SetIndexBuffer(0,MACD_Buffer);
SetIndexBuffer(1,SIGNAL_Buffer);
SetIndexBuffer(2,HISTOGRAM_Buffer);
//---- DataWindow的名称和室内子窗口标签
IndiorShortName(_MACD( FastEMA , SlowEMA , SignalEMA ));
SetIndexLabel(0,MACD);
SetIndexLabel(1,信号);
SetIndexLabel(2,直方图);
//----初始化完成
返回(0);
}
// ----------------------------------------------- -------------------
//|移动平均线收敛/发散|
// ----------------------------------------------- -------------------
int start(){
int i;
int limit;
int counts_bars = IndiorCounted();
if(counts_bars lt; 0)return(-1);/----检查可能的错误
if(counting_bars gt; 0)counting_bars--;/----将重新计算最后计算的栏
limit = Bars - counts_bars;
//----绘制MACD线
for(i = 0; ilt; limit; i ){// - 从当前条到第一个条的循环
MACD_Buffer [i] = iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i) - iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
}
//----绘制信号线和直方图
for(i = 0; ilt; limit; i ){// - 上面的相同循环
SIGNAL_Buffer [i] = iMAOnArray(MACD_Buffer,Bars,SignalEMA,0,MODE_EMA,i);
HISTOGRAM_Buffer [i] = MACD_Buffer [i] - SIGNAL_Buffer [i];
}
//----完成
返回(0);
}
// ----------------------------------------------- ------------------
https://www.histoforex.com/attachmen...9674855516.mq4