/*-----------------------------+ | | | Shared by www.Aptrafx.com | | | +------------------------------*/ //+------------------------------------------------------------------+ //| 5 Min RSI 12-period qual INDICATOR | //+------------------------------------------------------------------+ #property copyright "Ron T" #property link "http://www.lightpatch.com" #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 Red #property indicator_color2 HotPink #property indicator_color3 DarkGray #property indicator_color4 Red #property indicator_color5 White #property indicator_color6 LightGray #property indicator_color7 DarkGray #property indicator_color8 White //---- buffers double Buffer1[]; double Buffer2[]; double Buffer3[]; double Buffer4[]; double Buffer5[]; double Buffer6[]; double Buffer7[]; double Buffer8[]; // User Input //+------------------------------------------------------------------+ //| Custom indicator initialization function | //|------------------------------------------------------------------| int init() { // 233 up arrow // 234 down arrow // 159 big dot // 158 little dot // 168 open square // 120 box with X SetIndexStyle(0,DRAW_ARROW); SetIndexBuffer(0, Buffer1); SetIndexArrow(0,159); SetIndexStyle(1,DRAW_ARROW); SetIndexBuffer(1, Buffer2); SetIndexArrow(1,158); SetIndexStyle(2,DRAW_ARROW); SetIndexBuffer(2, Buffer3); SetIndexArrow(2,112); SetIndexStyle(3,DRAW_ARROW); SetIndexBuffer(3, Buffer4); SetIndexArrow(3,120); SetIndexStyle(4,DRAW_ARROW); SetIndexBuffer(4, Buffer5); SetIndexArrow(4,159); SetIndexStyle(5,DRAW_ARROW); SetIndexBuffer(5, Buffer6); SetIndexArrow(5,158); SetIndexStyle(6,DRAW_ARROW); SetIndexBuffer(6, Buffer7); SetIndexArrow(6,112); SetIndexStyle(7,DRAW_ARROW); SetIndexBuffer(7, Buffer8); SetIndexArrow(7,120); return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { int i; for( i=0; i<Bars; i++ ) Buffer1[i]=0; for( i=0; i<Bars; i++ ) Buffer2[i]=0; for( i=0; i<Bars; i++ ) Buffer3[i]=0; for( i=0; i<Bars; i++ ) Buffer4[i]=0; for( i=0; i<Bars; i++ ) Buffer5[i]=0; for( i=0; i<Bars; i++ ) Buffer6[i]=0; for( i=0; i<Bars; i++ ) Buffer7[i]=0; for( i=0; i<Bars; i++ ) Buffer8[i]=0; return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ // Current position if 55/45 or over/under. Does any of // the previous 'qual' period ever fall below55/above45? (last11) // // If qual*2 periods have been above55/below45 // then lets not try to transact any more (last22) int start() { int pos=Bars-100; // leave room for moving average periods int ctr=0; double cMAfst=0, pMAfst=0; double cMAmid=0, pMAmid=0; double cMAslo=0, pMAslo=0; double MA100=0; bool rising=false; bool falling=false; double p=Point(); while(pos>=1) { cMAfst=iMA(Symbol(),0,5 ,0,MODE_LWMA,PRICE_OPEN, pos); pMAfst=iMA(Symbol(),0,5 ,0,MODE_LWMA,PRICE_OPEN, pos+1); cMAmid=iMA(Symbol(),0,25 ,0,MODE_LWMA,PRICE_OPEN, pos); pMAmid=iMA(Symbol(),0,25 ,0,MODE_LWMA,PRICE_OPEN, pos+1); cMAslo=iMA(Symbol(),0,100,0,MODE_LWMA,PRICE_OPEN, pos); pMAslo=iMA(Symbol(),0,100,0,MODE_LWMA,PRICE_OPEN, pos+1); // rising if (pMAmid<=pMAslo && cMAmid>=cMAslo) { rising=true; falling=false; ctr=0; } //falling if (pMAmid>=pMAslo && cMAmid<=cMAslo) { rising=false; falling=true; ctr=0; } ctr++; if (ctr>30 && falling) {Buffer1[pos]=cMAmid;} if (ctr>30 && rising) {Buffer5[pos]=cMAmid;} pos--; } return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Implements a curve of type DRAW_ARROW
Indicators Used:
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features: