//+------------------------------------------------------------------+ //| VininI_Cyber | //| Copyright © 2009, Victor Nicolaev | //| e-mail: vinin@mail.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, Victor Nicolaev" #property link "e-mail: vinin@mail.ru" #property indicator_separate_window #property indicator_buffers 3 #property indicator_color1 Yellow #property indicator_color2 Lime #property indicator_color3 Red #property indicator_level1 -0.5 #property indicator_level2 0 #property indicator_level3 0.5 #property indicator_minimum -1.05 #property indicator_maximum 1.05 //---- input parameters extern int StoKPeriod = 5; extern int StoDPeriod = 3; extern int StoSlowing = 3; extern int StoMAMethod = 0; extern int StoPriceField = 0; extern int StoLineMode = 0; extern int FO_MA_Period =9; extern int FO_MA_Method =3; //---- buffers double Value[]; double MA[]; double iFish[]; double Buy[]; double Sell[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { IndicatorBuffers(5); SetIndexBuffer(0, iFish); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(1, Buy); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(2, Sell); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(3, Value); SetIndexBuffer(4, MA); return(0); } int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars = IndicatorCounted(), i; if (counted_bars < 0) return(-1); if (counted_bars > 0) counted_bars--; int limit=Bars - counted_bars; for(i = limit; i >= 0; i--) Value[i]=0.1*(iStochastic(NULL,0,StoKPeriod,StoDPeriod,StoSlowing,StoMAMethod,StoPriceField,StoLineMode,i)-50.0); for(i = limit; i >= 0; i--) MA[i]=iMAOnArray(Value,0,FO_MA_Period,0,FO_MA_Method,i); for(i = limit; i >= 0; i--) { iFish[i]=(MathExp(2.0*MA[i])-1.0)/(MathExp(2.0*MA[i])+1.0); if (iFish[i]> 0.5) {Buy[i] =iFish[i]; Buy[i+1] =iFish[i+1];} if (iFish[i]<-0.5) {Sell[i]=iFish[i]; Sell[i+1]=iFish[i+1];} } return(0); } //+------------------------------------------------------------------+
Sample
Analysis
Market Information Used:
Indicator Curves created:
Implements a curve of type DRAW_LINE
Indicators Used:
Stochastic oscillator
Moving average indicator
Custom Indicators Used:
Order Management characteristics:
Other Features: