MetaTrader 5 周日颜色指示器详解

Mike 2018.04.19 02:19 31 0 0
附件

今天我们来聊聊 周日颜色指示器 的改进版本。这款指示器将每个星期天都用不同的颜色标记,让你一目了然:

使用 DRAW_COLOR_HISTOGRAM 样式时,需要设置 两个缓冲区(一个是值缓冲区 HistogramBuffer,另一个是颜色缓冲区 HistogramColors):

//+------------------------------------------------------------------+//|                                       周日颜色.mq5 |//|                              版权 © 2018, Vladimir Karputov |//|                                           http://wmua.ru/slesar/ |//+------------------------------------------------------------------+#property copyright"版权 © 2018, Vladimir Karputov"#property link      "http://wmua.ru/slesar/"#property version   "1.000"#property indicator_separate_window#property description"以颜色直方图形式显示的周日"#property indicator_separate_window#property indicator_buffers2#property indicator_plots   1//--- 绘制直方图 #property indicator_label1  "日期颜色"#property indicator_type1   DRAW_COLOR_HISTOGRAM//--- 定义8种颜色用于着色#property indicator_color1  clrCyan,clrRed,clrYellowGreen,clrBlue,clrYellow,clrNavy,clrGold,clrMediumSeaGreen#property indicator_style1  STYLE_SOLID#property indicator_width1  2//--- 指标缓冲区 double         HistogramBuffer[];double         HistogramColors[];
//+------------------------------------------------------------------+//| 自定义指标初始化函数                         |//+------------------------------------------------------------------+

颜色设置在以下代码行:

//--- 定义8种颜色用于着色#property indicator_color1  clrCyan,clrRed,clrYellowGreen,clrBlue,clrYellow,clrNavy,clrGold,clrMediumSeaGreen

在这里,clrCyan 的索引为 "0",clrRed 的索引为 "1",依此类推。

直方图颜色的管理是通过为每个 HistogramColors 缓冲区的索引分配一个独立的 颜色索引 来实现的:

switch(STime.day_of_week)
        {
         case  0:
            HistogramBuffer[i]=0;
            HistogramColors[i]=0;
            break;
         case  1:
            HistogramBuffer[i]=1;
            HistogramColors[i]=1;
            break;
         case  2:
            HistogramBuffer[i]=2;
            HistogramColors[i]=2;
            break;
         case  3:
            HistogramBuffer[i]=3;
            HistogramColors[i]=3;
            break;
         case  4:
            HistogramBuffer[i]=4;
            HistogramColors[i]=4;
            break;
         case  5:
            HistogramBuffer[i]=5;
            HistogramColors[i]=5;
            break;
         case  6:
            HistogramBuffer[i]=6;
            HistogramColors[i]=6;
            break;
        }
列表
评论 0