MetaTrader5
DemoBufferPattern: ตัวชี้วัดสุดเจ๋งสำหรับ MetaTrader 5
สวัสดีเพื่อนนักเทรดทุกคน! วันนี้เราจะมาพูดถึง DemoBufferPattern ซึ่งเป็นตัวชี้วัดที่น่าสนใจสำหรับ MetaTrader 5 ที่รวมฟังก์ชันต่างๆ อย่าง เช่น แท่งเทียน (Candles), แฟรคทัล (Fractals), ซิกแซก (Zigzag) และเส้นค่าเฉลี่ยเคลื่อนที่ (ColorMaLine) มาไว้ด้วยกัน
ตัวชี้วัดนี้ใช้สไตล์การวาดดังนี้:
DRAW_COLOR_CANDLES
DRAW_ARROW
DRAW_COLOR_ZIGZAG
DRAW_COLOR_LINE
//+------------------------------------------------------------------+
//| ฟังก์ชันสำหรับการเริ่มต้นตัวชี้วัด |
//+------------------------------------------------------------------+
int OnInit()
{
//--- การแมพบัฟเฟอร์ของตัวชี้วัด
SetIndexBuffer( 0,P1B1,INDICATOR_DATA);
SetIndexBuffer( 1,P1B2,INDICATOR_DATA);
SetIndexBuffer( 2,P1B3,INDICATOR_DATA);
SetIndexBuffer( 3,P1B4,INDICATOR_DATA);
SetIndexBuffer( 4,P1BC,INDICATOR_COLOR_INDEX);
SetIndexBuffer( 5,P2B1,INDICATOR_DATA);
SetIndexBuffer( 6,P3B1,INDICATOR_DATA);
SetIndexBuffer( 7,P4B1,INDICATOR_DATA);
SetIndexBuffer( 8,P4B2,INDICATOR_DATA);
SetIndexBuffer( 9,P4BC,INDICATOR_COLOR_INDEX);
SetIndexBuffer(10,P5B1,INDICATOR_DATA);
SetIndexBuffer(11,P5BC,INDICATOR_COLOR_INDEX);
//--- บัฟเฟอร์เสริมสำหรับการคำนวณระหว่าง
SetIndexBuffer(12,P4M1,INDICATOR_CALCULATIONS);
SetIndexBuffer(13,P4M2,INDICATOR_CALCULATIONS);
//--- ควรวางหลังจากบัฟเฟอร์ทั้งหมดที่จะแสดง ไม่งั้น ... ลองทำดูเอง
//--- ลูกศร
PlotIndexSetInteger(1,PLOT_ARROW,217);
PlotIndexSetInteger(2,PLOT_ARROW,218);
PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,-iArrowShift);
PlotIndexSetInteger(2,PLOT_ARROW_SHIFT,iArrowShift);
PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);
PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//--- ซิกแซก
PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,0.0);
//--- MA
maHandle=iMA(Symbol(),0,ExtPeriod,0,MODE_EMA,PRICE_CLOSE);
return(0);
}
//+------------------------------------------------------------------+
//| ฟังก์ชันสำหรับการวนรอบตัวชี้วัด |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& time[],
const double& open[],
const double& high[],
const double& low[],
const double& close[],
const long& tick_volume[],
const long& volume[],
const int& spread[])
{
//---
CalcCandles(rates_total,prev_calculated,open,high,low,close);
CalcFractal(rates_total,prev_calculated,high,low,P2B1,P3B1);
CalcZigzag (rates_total,prev_calculated,high,low,P4B1,P4B2,P4BC,P4M1,P4M2);
CalcColorMA(rates_total,prev_calculated,P5B1,P5BC);
//--- คืนค่า prev_calculated สำหรับการเรียกครั้งถัดไป
return(rates_total);
}
2010.03.25