Results 1 to 2 of 2

Thread: 对象层指标的顺序

  1. #1
    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

  2. #2
    你好,我们又见面了。如果有人在他们可以请它的同时也告诉我如何将颜色设置为等级,例如像RSI的70-30级别那样,那将是非常好的。谢谢,Laurus编辑:找到答案
    这是#property indior_levelcolor

发布权限

  • 您不可发布新主题
  • 您不可回复
  • 您不可发布附件
  • 您不可编辑您的帖子
  •  
  • BB代码是打开的
  • 表情符号是打开的
  • [IMG]代码是打开的
  • [视频]代码是打开的
  • HTML代码是关闭的
histoforex网站使用cookie 文字跟踪
histoforex网站使用cookie 文字跟踪,某些设定已经固定。您可以点击此处阅读我们的Cookie使用说明。 请点击右键接受我们的cookies。如果您选择继续使用histoforex网站,我们将认为您接受我们的cookies。