//+------------------------------------------------------------------+ //| Pivot Points by Va$iliy.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| http://www.teletrade.ru feat. vs_zone@mal.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net feat. vs_zone@mal.ru" #property indicator_chart_window //#property indicator_separate_window #property indicator_buffers 7 #property indicator_color1 Yellow #property indicator_color2 Aqua #property indicator_color3 DeepPink #property indicator_color4 Aqua #property indicator_color5 DeepPink #property indicator_color6 Aqua #property indicator_color7 DeepPink //---- input parameters //---- buffers double PBuffer[]; double S1Buffer[]; double R1Buffer[]; double S2Buffer[]; double R2Buffer[]; double S3Buffer[]; double R3Buffer[]; string Pivot="PP",Sup1="S 1",Res1="R 1"; string Sup2="S 2",Res2="R 2",Sup3="S 3",Res3="R 3"; int fontsize=12; double P,S1,R1,S2,R2,S3,R3; double LastHigh,LastLow,x; //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here ObjectDelete("Pivot"); ObjectDelete("Sup1"); ObjectDelete("Res1"); ObjectDelete("Sup2"); ObjectDelete("Res2"); ObjectDelete("Sup3"); ObjectDelete("Res3"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- indicator line SetIndexStyle(0,DRAW_ARROW,2,1,Yellow); SetIndexArrow(0,158); SetIndexStyle(1,DRAW_ARROW,2,1,DeepPink); SetIndexArrow(1,158); SetIndexStyle(2,DRAW_ARROW,2,1,Aqua); SetIndexArrow(2,158); SetIndexStyle(3,DRAW_ARROW,2,1,DeepPink); SetIndexArrow(3,158); SetIndexStyle(4,DRAW_ARROW,2,1,Aqua); SetIndexArrow(4,158); SetIndexStyle(5,DRAW_ARROW,2,1,DeepPink); SetIndexArrow(5,158); SetIndexStyle(6,DRAW_ARROW,2,1,Aqua); SetIndexArrow(6,158); SetIndexBuffer(0,PBuffer); SetIndexBuffer(1,S1Buffer); SetIndexBuffer(2,R1Buffer); SetIndexBuffer(3,S2Buffer); SetIndexBuffer(4,R2Buffer); SetIndexBuffer(5,S3Buffer); SetIndexBuffer(6,R3Buffer); //---- name for DataWindow and indicator subwindow label short_name="PivotPoint"; IndicatorShortName(short_name); SetIndexLabel(0,short_name); short_name="Resistance1"; IndicatorShortName(short_name); SetIndexLabel(2,short_name); short_name="Resistance2"; IndicatorShortName(short_name); SetIndexLabel(4,short_name); short_name="Resistance3"; IndicatorShortName(short_name); SetIndexLabel(6,short_name); short_name="Support1"; IndicatorShortName(short_name); SetIndexLabel(1,short_name); short_name="Support2"; IndicatorShortName(short_name); SetIndexLabel(3,short_name); short_name="Support3"; IndicatorShortName(short_name); SetIndexLabel(5,short_name); //---- SetIndexDrawBegin(0,6); //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int limit,i; //---- indicator calculation if(counted_bars==0) { x=Period(); if(x>240) return(-1); ObjectCreate("Pivot",OBJ_TEXT,0,0,0); ObjectSetText("Pivot","P",12,"Arial",White); ObjectCreate("Sup1",OBJ_TEXT,0,0,0); ObjectSetText("Sup1","s1",12,"Arial",White); ObjectCreate("Res1",OBJ_TEXT,0,0,0); ObjectSetText("Res1","r1",12,"Arial",White); ObjectCreate("Sup2",OBJ_TEXT,0,0,0); ObjectSetText("Sup2","s2",12,"Arial",White); ObjectCreate("Res2",OBJ_TEXT,0,0,0); ObjectSetText("Res2","r2",12,"Arial",White); ObjectCreate("Sup3",OBJ_TEXT,0,0,0); ObjectSetText("Sup3","s3",12,"Arial",White); ObjectCreate("Res3",OBJ_TEXT,0,0,0); ObjectSetText("Res3","r3",12,"Arial",White); } if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; if(counted_bars==0) limit-=2; for(i=limit; i>=0;i--) { if(High[i+1]>LastHigh) LastHigh=High[i+1]; if(Low[i+1]