//+------------------------------------------------------------------+ //| High_Low v2 (ZigZag).mq4 | //| rewritten by CrazyChart | //| | //+------------------------------------------------------------------+ #property copyright "rewritten by CrazyChart, modify by prasxz www.freefxsystem.com" #property link "" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Yellow //---- input parameters //extern double TakeProfit=250.0; //extern double Lots=1; extern int barn=1300; extern int Length=1; //---- buffers double ExtMapBuffer1[]; //double ExtMapBuffer2[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexEmptyValue(0,0.0); //SetIndexDrawBegin(0, barn); SetIndexStyle(0,DRAW_SECTION); SetIndexBuffer(0,ExtMapBuffer1); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int cnt,ticket,counted_bars=IndicatorCounted(); int shift,Swing,Swing_n,uzl,i,zu,zd,mv; double LL,HH,BH,BL,NH,NL; double Uzel[10000][3]; string text; if (High[1]> High[0]) {Comment("SELL !!");} else if (High[1]< High[0]) {Comment("BUY !!");} // loop from first bar to current bar (with shift=0) Swing_n=0;Swing=0;uzl=0; BH =High[barn];BL=Low[barn];zu=barn;zd=barn; for (shift=barn;shift>=0;shift--) { LL=10000000;HH=-100000000; for (i=shift+Length;i>=shift+1;i--) { if (Low[i]< LL) {LL=Low[i];} if (High[i]>HH) {HH=High[i];} //==== // if (High[1]> High[0]) {Comment("SELL !!"); { // ticket=OrderSend(Symbol(),OP_SELL,Lots,Ask,3,0,Ask+TakeProfit*Point,"My EA",12345,0,Green); // if(ticket>0) // { // if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice()); // } // else Print("Error opening BUY order : ",GetLastError()); // return(0); // }} //===== } //If (High[i]< High[i-1]) Comment(High[i],High[i-1]," ","STAY AWAY !!"); // if (Low[shift]<LL && High[shift]>HH){ Swing=2; if (Swing_n==1) {zu=shift+1;} if (Swing_n==-1) {zd=shift+1;} } else { if (Low[shift]<LL) {Swing=-1;} if (High[shift]>HH) {Swing=1;} } if (Swing!=Swing_n && Swing_n!=0) { if (Swing==2) { Swing=-Swing_n;BH = High[shift];BL = Low[shift]; } uzl=uzl+1; if (Swing==1) { Uzel[uzl][1]=zd; Uzel[uzl][2]=BL; } if (Swing==-1) { Uzel[uzl][1]=zu; Uzel[uzl][2]=BH; } BH = High[shift]; BL = Low[shift]; } if (Swing==1) { if (High[shift]>=BH) {BH=High[shift];zu=shift;}} if (Swing==-1) { if (Low[shift]<=BL) {BL=Low[shift]; zd=shift;}} Swing_n=Swing; } for (i=1;i<=uzl;i++) { //text=DoubleToStr(Uzel[i][1],0); //text=; mv=StrToInteger(DoubleToStr(Uzel[i][1],0)); ExtMapBuffer1[mv]=Uzel[i][2]; } return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Indicator Curves created:
Implements a curve of type DRAW_SECTION
Indicators Used:
Custom Indicators Used:
Order Management characteristics:
Other Features: