//+----------------------------------------------------------------------------------+ //| RSIOMA_v3LMA by Mladen & fxbs Kalenzo | fxtsd.com |ik| //| Hornet(RSIOnArray) 2007, FxTSD.com MetaQuotes Software Corp. | //| //Hist & Levels 20/80;30/70 CrossSig web: http://www.fxservice.eu | //| //Rsioma/MaRsioma X sig () email: bartlomiej.gorski@gmail.com | //+----------------------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/ Kalenzo|bartlomiej.gorski@gmail.com " #property indicator_separate_window #property indicator_buffers 2 #property indicator_minimum -20 #property indicator_maximum 110 #property indicator_color1 Blue #property indicator_color2 BlueViolet // #property indicator_width1 2 // #property indicator_level1 100 #property indicator_level2 80 //76.4 #property indicator_level3 70 //61.8 #property indicator_level4 50 #property indicator_level5 30 //38.2 #property indicator_level6 20 //23.6 #property indicator_levelcolor DarkSlateGray //------------------------------------------ //---- input parameters // extern int RSIOMA = 14; extern int RSIOMA_MODE = MODE_EMA; extern int RSIOMA_PRICE = PRICE_CLOSE; extern int Ma_RSIOMA = 20; extern int Ma_RSIOMA_MODE = MODE_EMA; // extern int BarsToCount = 500; //---- buffers // // // "indexes" // double MABuffer1[]; double RSIBuffer1[]; // // // indexes // // double RSIBuffer[]; double marsioma[]; // // // // // int correction; datetime lastBarTime; string short_name; double lengthvar; // extern string JMA = "iCustom JMA settings"; extern int Len = 14; extern int phase= 0; extern int BarCount =1500; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { short_name = StringConcatenate("RSIOMA jma(",Len,")[",RSIOMA,"]rsi(",Ma_RSIOMA,")"); IndicatorShortName(short_name); // // // // // SetIndexBuffer(0,RSIBuffer); SetIndexBuffer(1,marsioma); // // SetIndexLabel(0,"Rsioma("+RSIOMA+")"); SetIndexLabel(1,"MaRsioma("+Ma_RSIOMA+")"); // // // additional buffer(s) // // correction = RSIOMA+RSIOMA+Ma_RSIOMA; BarsToCount = MathMin(Bars,MathMax(BarsToCount,300)); ArrayResize( MABuffer1 ,BarsToCount+correction); ArrayResize( RSIBuffer1,BarsToCount+correction); ArraySetAsSeries(MABuffer1 ,true); ArraySetAsSeries(RSIBuffer1,true); lastBarTime = EMPTY_VALUE; // // // return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { static bool init=false; int counted_bars=IndicatorCounted(); int limit,i=0; // // // if(counted_bars<0) return(-1); if(lastBarTime != Time[0]) { lastBarTime = Time[0]; counted_bars = 0; } if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; limit=MathMin(limit,BarsToCount+correction); // // // for(i=limit;i>=0;i--) // MABuffer1[i] = LSMA(i,RSIOMA,false,RSIBuffer1); MABuffer1[i] = iCustom(NULL, 0, "JMA",Len,phase,BarCount,0,i); // MABuffer1[i]=iCustom(NULL,0,"LSMA",20,500,0, i); // for(i=limit;i>=0;i--) RSIBuffer1[i] = iRSIOnArray(MABuffer1,0,RSIOMA,i); //Sample: double val=iCustom(NULL, 0, "SampleInd",13,1,0); for(i=limit;i>=0;i--) RSIBuffer1[i] = iRSIOnArray(MABuffer1,0,RSIOMA,i); // RSIBuffer1[i] = iCCIOnArray(MABuffer1,0,RSIOMA,i); //double iRSIOnArray( double array[], int total, int period, int shift) //double iCCIOnArray( double array[], int total, int period, int shift) //double iMomentumOnArray( double array[], int total, int period, int shift) for(i=limit;i>=0;i--) { RSIBuffer[i]= RSIBuffer1[i]; marsioma[i] = LSMA(i,Ma_RSIOMA,true,RSIBuffer1); // // // } // // // for (i=0;i<indicator_buffers;i++) SetIndexDrawBegin(i,Bars-BarsToCount); return(0); } //+------------------------------------------------------------------+ // // // // // double LSMA(int shift,int period,bool onArray,double& values[]) { double sum = 0; double res = 0; lengthvar = period + 1; lengthvar /= 3; // // // // // for(int i = period; i >= 1 ; i--) if (onArray && (shift+period-i) <= (BarsToCount+correction)) sum += (i-lengthvar)*values[shift+period-i]; else sum += (i-lengthvar)* Close[shift+period-i]; res = sum*6/(period*(period+1)); // // // // // return(res); } // { MABuffer1[i]=iMA(Symbol(),0,RSIOMA,0,RSIOMA_MODE,RSIOMA_PRICE,i); //double iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift) //double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift) ///// // { marsioma[i] = iMAOnArray(RSIBuffer,0,Ma_RSIOMA,0,Ma_RSIOMA_MODE,i); // double iMAOnArray( double array[], int total, int period, int ma_shift, int ma_method, int shift) //////// //double iRSIOnArray( double array[], int total, int period, int shift) //double iCCIOnArray( double array[], int total, int period, int shift) //double iMomentumOnArray( double array[], int total, int period, int shift) //double iStdDevOnArray( double array[], int total, int ma_period, int ma_shift, int ma_method, int shift) //double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift) //Sample: double val=iCustom(NULL, 0, "SampleInd",13,1,0);
Sample
Analysis
Market Information Used:
Series array that contains open time of each bar
Series array that contains close prices for each bar
Indicator Curves created:
Indicators Used:
Relative strength index
Custom Indicators Used:
JMA
Order Management characteristics:
Other Features: