/*-----------------------------+ | | | Shared by www.Aptrafx.com | | | +------------------------------*/ //+------------------------------------------------------------------+ //| MA + MFI + AO | //+------------------------------------------------------------------+ #property copyright "Ron T" #property link "http://www.lightpatch.com/forex" #property indicator_chart_window #property indicator_buffers 5 #property indicator_color1 Red #property indicator_color2 White #property indicator_color3 Aqua #property indicator_color4 LightGreen #property indicator_color5 DodgerBlue extern int MovingAvg1=8; extern int MovingAvg2=21; extern int MFIPeriod=14; //---- buffers double Buffer0[]; double Buffer1[]; double Buffer2[]; double Buffer3[]; double Buffer4[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //|------------------------------------------------------------------| int init() { // 233 up arrow // 234 down arrow // 241 hollow up // 242 hollow down // 159 big dot // 158 little dot // 168 open square // 120 box with X SetIndexStyle(0,DRAW_ARROW); SetIndexBuffer(0, Buffer0); SetIndexArrow(0,242); SetIndexStyle(1,DRAW_ARROW); SetIndexBuffer(1, Buffer1); SetIndexArrow(1,241); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2, Buffer2); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3, Buffer3); SetIndexStyle(4,DRAW_LINE); SetIndexBuffer(4, Buffer4); return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { int i; for( i=0; i<Bars; i++ ) Buffer0[i]=0; 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; return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int pos=Bars-100; // leave room for moving average periods int ctr=0; double p=Point(); double i0, i1, i2, i3, i4; while(pos>=0) { i0=iMA(Symbol(),0,MovingAvg1,0,PRICE_OPEN,MODE_EMA,pos); i1=iMA(Symbol(),0,MovingAvg2,0,PRICE_OPEN,MODE_EMA,pos); i2=iAO(Symbol(),0,pos); i3=iMFI(Symbol(),0,MFIPeriod,pos); Buffer2[pos]=i0; Buffer3[pos]=i1; //Long AO above 0 and MFI above 60 if (i2>0 && i3>=60) { Buffer1[pos]=High[pos]; } //Short AO below 0 and MFI below 40 if (i2<0 && i3<=40) { Buffer0[pos]=Low[pos]; } pos--; } 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_ARROW
Implements a curve of type DRAW_LINE
Indicators Used:
Moving average indicator
Bill Williams Awesome oscillator
Money flow index
Custom Indicators Used:
Order Management characteristics:
Other Features: