//+------------------------------------------------------------------+ //| EGEN Power Painter.mq4 | //| Copyright © 2011, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2011, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #define D1 0 #define H4 1 #define H1 2 int POWER[PERIOD_D1],MAX[3],MIN[3]; bool EQ(int value1,int value2) { return(value1==value2); } bool ZERO(int value) { return(value==0); } bool MR(int value1,int value2) { return(value1>value2); } bool BARS(int shift) { return(shiftPOWER[S]) S=i; return(S); } int MIN(int period) { int S=0; for(int i=0; iP2) return(+1); if(S1P1) return(+2); return(0); } bool INCREASE() { int S1=MIN[D1]; int S2=MIN[H4]; int S3=MIN[H1]; if(C(S1)C(S2)) if(C(S2)>C(S3)) return(true); return(false); } int WAVE(int shift) { Comment(shift); INIT(shift); MAX[D1]=MAX(PERIOD_D1)+shift; MIN[D1]=MIN(PERIOD_D1)+shift; MAX[H4]=MAX(PERIOD_H4)+shift; MIN[H4]=MIN(PERIOD_H4)+shift; MAX[H1]=MAX(PERIOD_H1)+shift; MIN[H1]=MIN(PERIOD_H1)+shift; if(EQ(MAX[D1],MAX[H4])) if(EQ(MAX[H4],MAX[H1])) if(MR(MIN[D1],MIN[H4])) if(MR(MIN[H4],MIN[H1])) if(EQ(GAP(D1),GAP(H4))) if(EQ(GAP(H4),GAP(H1))) if(INCREASE()) return(+1); if(EQ(MIN[D1],MIN[H4])) if(EQ(MIN[H4],MIN[H1])) if(MR(MAX[D1],MAX[H4])) if(MR(MAX[H4],MAX[H1])) if(EQ(GAP(D1),GAP(H4))) if(EQ(GAP(H4),GAP(H1))) if(DECREASE()) return(-1); return(0); } bool DRAW(int shift) { if(ZERO(WAVE(shift))) return(false); ObjectsDeleteAll(); DRAW.D1(); DRAW.H4(); DRAW.H1(); return(true); } void PAINT() { for(int i=1; BARS(i); i++) if(DRAW(i)) break; } void start() { PAINT(); }