//+------------------------------------------------------------------+ //| PIVOT | //| Darma | //| http://darmasdt.com | //+------------------------------------------------------------------+ #property copyright "Darma" #property link "http://groups.yahoo.com/group/indotraders" #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 Red #property indicator_color2 Goldenrod #property indicator_color3 Blue #property indicator_color4 Black #property indicator_color5 Green #property indicator_color6 Green #property indicator_color7 Green #property indicator_color8 Green //---- input parameters extern int change_day_hour=0; extern bool HLCCper4=false; extern bool HLCper3=false; extern bool HLper2=false; extern bool DailyOpen=true; extern bool Sup_Res4=false; extern bool Sup_Res3=false; //---- buffers double Pivot4[]; double Pivot3[]; double Pivot2[]; double Pivot1[]; double Res4[]; double Sup4[]; double Res3[]; double Sup3[]; //---- variables int limit, cur_day, prev_day, barChangeDay; double y_c,t_o,y_h,y_l,P4,P3,P2,R4,S4,R3,S3; double day_high, day_low, dayHprev, dayLprev; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE,STYLE_DASHDOTDOT,1); SetIndexBuffer(0,Pivot4); SetIndexStyle(1,DRAW_LINE,STYLE_DASHDOTDOT,1); SetIndexBuffer(1,Pivot3); SetIndexStyle(2,DRAW_LINE,STYLE_DASHDOTDOT,1); SetIndexBuffer(2,Pivot2); SetIndexStyle(3,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(3,Pivot1); SetIndexStyle(4,DRAW_LINE,STYLE_DASHDOTDOT,1); SetIndexBuffer(4,Res4); SetIndexStyle(5,DRAW_LINE,STYLE_DASHDOTDOT,1); SetIndexBuffer(5,Sup4); SetIndexStyle(6,DRAW_LINE,STYLE_DASHDOTDOT,1); SetIndexBuffer(6,Res3); SetIndexStyle(7,DRAW_LINE,STYLE_DASHDOTDOT,1); SetIndexBuffer(7,Sup3); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here ObjectsRedraw(); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); if (counted_bars<0) return(-1); if (counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- for(int i=limit; i>=0; i--) { cur_day = TimeDay(Time[i]); if ( TimeHour(Time[i]) == change_day_hour && TimeMinute(Time[i]) == 0 ) { barChangeDay = i; y_c = Close[i+1]; t_o = Open[i]; y_h = day_high; y_l = day_low; P4 = (y_h + y_l + y_c + t_o) / 4; P3 = (y_h + y_l + y_c) / 3; P2 = (y_h + y_l) / 2; R4 = P4 + (P4 - y_l); R3 = P3 + (P3 - y_l); S4 = P4 + (P4 - y_h); S3 = P3 + (P3 - y_h); day_high = High[i]; day_low = Low[i]; } // if dayHprev = day_high; dayLprev = day_low; day_high = MathMax(day_high, High[i]); day_low = MathMin(day_low, Low[i]); if (HLCCper4) { Pivot4[i]=P4; } if (HLCper3) { Pivot3[i]=P3; } if (HLper2) { Pivot2[i]=P2; } if (DailyOpen) { Pivot1[i]=t_o; } if (Sup_Res4) { Res4[i]=R4; Sup4[i]=S4; } if (Sup_Res3) { Res3[i]=R3; Sup3[i]=S3; } } // for //---- done return(0); } //+------------------------------------------------------------------+