วันนี้เรามาพูดถึงการปรับปรุง Indicator สีวัน ซึ่งในเวอร์ชันนี้แต่ละวันในสัปดาห์จะมีสีที่แตกต่างกันเพื่อให้ง่ายต่อการมองเห็น:



ในการทำงานของ Indicator นี้ เราจะต้องใช้ DRAW_COLOR_HISTOGRAM ซึ่งต้องการ สอง buffers (buffer ของค่า HistogramBuffer และ buffer ของสี HistogramColors):
//+------------------------------------------------------------------+//| Days of the week color.mq5 |//| Copyright © 2018, Vladimir Karputov |//| http://wmua.ru/slesar/ |//+------------------------------------------------------------------+#property copyright"Copyright © 2018, Vladimir Karputov"#property link "http://wmua.ru/slesar/"#property version "1.000"#property indicator_separate_window#property description"Days of the week in the form of a color histogram"#property indicator_separate_window#property indicator_buffers2#property indicator_plots 1//--- plot Histogram #property indicator_label1 "Day colors"#property indicator_type1 DRAW_COLOR_HISTOGRAM//--- define 8 colors for coloring sections#property indicator_color1 clrCyan,clrRed,clrYellowGreen,clrBlue,clrYellow,clrNavy,clrGold,clrMediumSeaGreen#property indicator_style1 STYLE_SOLID#property indicator_width1 2//--- indicator buffers double HistogramBuffer[];double HistogramColors[]; //+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+
สีถูกกำหนดในบรรทัดนี้
//--- define 8 colors for coloring sections#property indicator_color1 clrCyan,clrRed,clrYellowGreen,clrBlue,clrYellow,clrNavy,clrGold,clrMediumSeaGreen
โดยที่ clrCyan มีดัชนีเป็น "0", clrRed มีดัชนีเป็น "1" และต่อไปเรื่อยๆ
การจัดการสีของ histogram จะทำโดยการกำหนด ดัชนีสี เฉพาะให้กับแต่ละดัชนีใน HistogramColors buffer:
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