//+------------------------------------------------------------------+ //| MPT01.mq4 | //| by STS | //| | //+------------------------------------------------------------------+ #property copyright "STS" #property link "" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Red #property indicator_color2 Red #property indicator_color3 Red #property indicator_width1 4 #property indicator_width2 4 #property indicator_width3 4 //---- buffers double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; extern int step=34; extern int laenge=50; extern double fibo1=0.382; extern double fibo2=0.618; extern double fibo3=1.000; //0.25, 0.382, 0.618, 0.75, 1 extern bool drawarrors=False; extern int ICWRDepth=12; extern int ICWRDeviation=5; extern int ICWRBackstep=3; extern int Bar=300; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,216); SetIndexBuffer(1,ExtMapBuffer2); SetIndexEmptyValue(1,0.0); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,215); SetIndexBuffer(2,ExtMapBuffer3); SetIndexEmptyValue(2,0.0); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,220); SetIndexBuffer(3,ExtMapBuffer4); SetIndexEmptyValue(3,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- int r; r=1; ObjectDelete("ActiveWave1a" +r); ObjectDelete("ActiveWave1b" + r); ObjectDelete("ActiveWave1c" + r); ObjectDelete("AB1"); ObjectDelete("BC1"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int r; r=1; ObjectDelete("ActiveWave1a" +r); ObjectDelete("ActiveWave1b" + r); ObjectDelete("ActiveWave1c" + r); ObjectDelete("AB1"); ObjectDelete("BC1"); if (Period() ==1){ step=21; } else { step=34; } //Print(step); int counted_bars=IndicatorCounted(); //---- int c; c=0; int shift; int last0; int last1; int last2; double T1; double T2; double T3; int vorne; T1=0; T2=0; T3=0; last0=0; last1=0; last2=0; for (shift=Bar;shift>=0;shift--) { ExtMapBuffer2[shift]=0; ExtMapBuffer3[shift]=0; ExtMapBuffer4[shift]=0; } for (shift=Bar;shift>=0;shift--) { double icwr0; icwr0=iCustom(Symbol(),0,"ICWRr",ICWRDepth,ICWRDeviation,ICWRBackstep,step,0,shift); if (icwr0>0){ last2=last1; last1=last0; last0=shift; double last0val; double last1val; double last2val; last0val=iCustom(Symbol(),0,"ICWRr",ICWRDepth,ICWRDeviation,ICWRBackstep,step,0,last0); last1val=iCustom(Symbol(),0,"ICWRr",ICWRDepth,ICWRDeviation,ICWRBackstep,step,0,last1); last2val=iCustom(Symbol(),0,"ICWRr",ICWRDepth,ICWRDeviation,ICWRBackstep,step,0,last2); if (MathAbs(last2val-last1val)>= step*0.0001){ if (drawarrors){ ExtMapBuffer4[shift]=last0val; ExtMapBuffer3[last1]=last1val; ExtMapBuffer2[last2]=last2val; } T1=fibo1*(last1val-last2val)+last0val; T2=fibo2*(last1val-last2val)+last0val; T3=fibo3*(last1val-last2val)+last0val; c=1; string namea; namea="ActiveWave1a"+c; string nameb; nameb="ActiveWave1b"+c; string namec; namec="ActiveWave1c"+c; string named; named="AB1"; string namee; namee="BC1"; vorne=shift; int l; if (vorne>=laenge){ vorne=laenge; } l=laenge-vorne; if (l > laenge){ l=0; } l=5; if(ObjectFind(namea) != 0) { ObjectCreate(namea, OBJ_TREND, 0, Time[shift+l], T1, Time[shift-vorne], T1); ObjectSet(namea, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(namea, OBJPROP_COLOR, DarkOrange); ObjectSet(namea, OBJPROP_WIDTH, 3); ObjectSet(namea, OBJPROP_RAY, false); } else { ObjectMove(namea, 0, Time[shift+l], T1); ObjectMove(namea, 1, Time[shift-vorne], T1); } if(ObjectFind(nameb) != 0) { ObjectCreate(nameb, OBJ_TREND, 0, Time[shift+l], T2, Time[shift-vorne], T2); ObjectSet(nameb, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(nameb, OBJPROP_COLOR, Magenta); ObjectSet(nameb, OBJPROP_WIDTH, 3); ObjectSet(nameb, OBJPROP_RAY, false); } else { ObjectMove(nameb, 0, Time[shift+l], T2); ObjectMove(nameb, 1, Time[shift-vorne], T2); } if(ObjectFind(namec) != 0) { ObjectCreate(namec, OBJ_TREND, 0, Time[shift+l], T3, Time[shift-vorne], T3); ObjectSet(namec, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(namec, OBJPROP_COLOR, Red); ObjectSet(namec, OBJPROP_WIDTH, 3); ObjectSet(namec, OBJPROP_RAY, false); } else { ObjectMove(namec, 0, Time[shift+l], T3); ObjectMove(namec, 1, Time[shift-vorne], T3); } if(ObjectFind(named) != 0) { ObjectCreate(named, OBJ_TREND, 0, Time[last1], last1val, Time[last0], last0val); ObjectSet(named, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(named, OBJPROP_COLOR, Red); ObjectSet(named, OBJPROP_WIDTH, 3); ObjectSet(named, OBJPROP_RAY, false); } else { ObjectMove(named, 0, Time[last1], last1val); ObjectMove(named, 1, Time[last0], last0val); ObjectSet(named, OBJPROP_COLOR, Red); } if(ObjectFind(namee) != 0) { ObjectCreate(namee, OBJ_TREND, 0, Time[last2], last2val, Time[last1], last1val); ObjectSet(namee, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(namee, OBJPROP_COLOR, Red); ObjectSet(namee, OBJPROP_WIDTH, 3); ObjectSet(namee, OBJPROP_RAY, false); } else { ObjectMove(namee, 0, Time[last2], last2val); ObjectMove(namee, 1, Time[last1], last1val); ObjectSet(namee, OBJPROP_COLOR, Red); } } } //---- } } return(0); //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Indicator Curves created:
Implements a curve of type DRAW_ARROW
Indicators Used:
Custom Indicators Used:
ICWRr
Order Management characteristics:
Other Features: