Sunday, August 11, 2013

RSI with Dynamic levels

I am posting after a gap. Got hold of some original Wyckoff stuff and has been spending some time on it. More about it in a later post. Today I am presenting a Regular Classical Indicator RSI with a variation, a RSI with dynamic levels. No I am not talking about the RSI with Bollinger bands around it.

In the Stocks & Commodities V15:7 Leo Zamansky and David Stendahl talked about dynamic zones. They said that oscillator driven systems lack the ability to evolve with the market because they use fixed buy and sell zones. Typically the set of buy and sell zones for a bull market will be substantially different zones for a bear market. We need to have a system automatically define its own buy and sell zones and thereby profitably trade in any market — bull or bear. Dynamic zones offer a solution to the problem of fixed buy and sell zones for any oscillator-driven system. The idea of their system was to create a distribution of the signals in the given look back period. Then we have to find the value which is equal to the desired probability.

First of all the assumption is the distribution is normal distribution is a little far fetched actually. On that assumption we need to do the laborious calculation of the making the distribution and calculating the probability. But I would like to keep things simple. Trading is art and not complicated science. Precise calculation will not immensely improve your trading system.  In order to simplify the matters we can just assume uniform distribution and calculate the probability accordingly. I knew people will find it difficult to accept this. However even this simplification will provide a adequately dynamic zones.  Here I am presenting the conventional RSI with Dynamic Levels. Also in order not to confuse with widely available Dynamic Zone indicator with Bollinger bands I will call this indicator RSI with Dynamic Levels.


  1. hello sir, i am using ur MAMA positioning system since a year and it is working fine. Sir i want the logic used in it in simple English so i can use it in another charting software. please guide me thru it will help a lot. the code is: _SECTION_BEGIN("MAMA"); SetBarsRequired( 10000, 10000 ); SetChartOptions(0,chartShowArrows|chartShowDates); prc = ( High + Low ) / 2; fastlimit = 0.5; slowlimit = 0.05; pi=4*atan(1); RTD=180/pi; DTR=pi/180; Cyclepart=Optimize("Alpha",Param ("Alpha",0.2,0.1,1,0.1),0.1,1,0.1); Smooth[0] = Period = Detrender[0] = I1[0] = Q1[0] = 0; phase[0]=deltaphase[0]=MAMA[0]=FAMA[0]=0; for ( i = 6; i < BarCount; i++ ) { Smooth[i] = ( 4 * prc[i] + 3 * prc[i-1] + 2 * prc[i-2] + prc[i-3] ) / 10; AmpCorr[i] = 0.075 * Period[i-1] + 0.54; Detrender[i] = ( 0.0962 * Smooth[i] + 0.5769 * Smooth[i-2] - 0.5769 * Smooth[i-4] - 0.0962 * Smooth[i-6] ) * AmpCorr[i]; Q1[i] = ( 0.0962 * Detrender[i] + 0.5769 * Detrender[i-2] - 0.5769 * Detrender[i-4] - 0.0962 * Detrender[i-6] ) * AmpCorr[i]; I1[i] = Detrender[i-3]; if (I1[i] != 0) phase[i] = DTR*360/atan(q1[i]/I1[i]); deltaphase[i]=phase[i-1]-phase[i]; if (deltaphase[i] <1) deltaphase[i]=1; alpha[i]=fastlimit[i]/deltaphase[i]; if (alpha[i] < slowlimit[i]) alpha[i]=slowlimit[i]; MAMA[i]=alpha[i] * prc [i] +(1-alpha[i])*MAMA[i-1]; FAMA[i]=Cyclepart*alpha[i] * prc [i] +(1-Cyclepart*alpha[i])*FAMA[i-1]; } //Plot( MAMA, "MAMA", colorTurquoise, styleLine|styleThick ); //Plot( FAMA, "FAMA", colorYellow, styleLine|styleThick ); PlotOHLC(O,H,L,C,"MAMA",IIf(MAma>fama,colorLime,colorRed),styleCandle|styleThick); _SECTION_END(); _SECTION_BEGIN("TWI SYSTEM"); BuySetupValue=ValueWhen(Cross(MAMA,FAMA),H,1); shortsetupValue=ValueWhen(Cross(FAMA,MAMA),L,1); Buysetup =Cross(MAMA,FAMA) ; shortsetup = Cross(FAMA,MAMA); Longa = Flip(Buysetup,shortsetup); shrta = Flip(shortsetup,Buysetup); Buy=Longa AND Cross(C,BuySetupValue); Short=shrta AND Cross(shortsetupValue,C); Buy = ExRem(Buy,Short); Short = ExRem(Short,Buy); Sell = Short; Cover = Buy; t1= Flip(Buy,Short); t2= Flip(Short,Buy); BPrice=ValueWhen(t1 AND Ref(t1,-1)==0,C,1); SPrice=ValueWhen(t2 AND Ref(t2,-1)==0,C,1); GraphXSpace = 20; dist = 4.5*ATR(20); for( i = 0; i < BarCount; i++ ) { if( Buy[i] ) PlotText( "" + C[ i ], i, L[ i ]-dist[i], colorLime); if( Short[i] ) PlotText( "" + C[ i ], i, H[ i ]+dist[i], colorYellow ); } _SECTION_END();

  2. Hello sir,....How do i get exploration AFL for this indicator.Kindly help