首页 技术指标 帖子

MetaTrader 5 周日颜色指示器详解

附件
20207.zip (1.28 KB, 下载 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_buffers 2 
#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)