Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

ChimpTrader

Random Walk Index by E. Michael Poulos

Recommended Posts

Greetings All,

This is my first post here. And would like to gain some knowledge on a classic which was developed by E. Michael Poulos about 30 years back that were published in these TASC articles.

I use Amibroker as my Charting and TA tool. Like most of the other charting applications it too provides ready-made functions for the same:
1. RWIHi
2. RWILo
3. RWI

Adding the functions onto one section:

_SECTION_BEGIN( "Random Walk Index" );
     minperiods = Param( "Min Periods", 9, 1, 200, 1 );
     maxperiods = Param( "Max Periods", 40, 1, 200, 1 );
     Plot( RwIHi( minperiods, maxperiods), "RwIHi", colorGreen, ParamStyle("Style") );
     Plot( RwILO( minperiods, maxperiods), "RwILO", colorRed, ParamStyle("Style") );
     Plot( RwI( minperiods, maxperiods), "RwI", colorWhite, ParamStyle("Style") );
_SECTION_END();

Objective is to replicate the inbuilt functions, by coding them raw from scratch for better understanding of the concept proposed by Poulos as Random Walk Index. I am unable to discern the use of two periods - minperiods, maxperiods - here. Well below is what I have so far managed to code "Random Walk Index of Highs" in Amibroker but the results do not match with the inbuilt ones. And need your kind help in this regard!

_SECTION_BEGIN( "Unveil RwIHi" );
     mthd = ParamList( "Select Method", "Method 1|Method 2|Method 3", 1 );
     pMin = Param( "Min Periods", 9, 1, 200, 1 );
     pMax = Param( "Max Periods", 40, 1, 200, 1 );
     
     switch( mthd )
     {
         case "Method 1":
             // https://www.tradingview.com/script/eXHlEXzw-Random-Walk-Index-RWI-RWIhi-RWIlo/
             RWH = 0;
             for( i = pMin; i <= pMax; i++ )
             {
                 RWH = IIf( i == pMin, ( H - L[ i ] ) / ( ATR( i ) * sqrt( i ) ), Max( ( H - L[ i ] ) / ( ATR( i ) * sqrt( i ) ), RWH ) );
             }
         break;
         case "Method 2":
             // https://www.mail-archive.com/amibroker@yahoogroups.com/msg30080.html
             RWHmin = ( H - Ref( L, -pMin ) ) / ( Max( ATR( 1 ), ATR( pMin ) ) * sqrt( pMin ) );
             RWHmax = ( H - Ref( L, -pMax ) ) / ( Max( ATR( 1 ), ATR( pMax ) ) * sqrt( pMax ) );
             RWH = Max( RWHmin, RWHmax );
         break;
         case "Method 3":
             // http://www.amibroker.com/members/library/detail.php?id=924&hilite=RWIHi
             VarMaxHi = 0;
             for( i = 5; i <= BarCount - 1; i++ )
             {
                 VarMaxHi[ i ] = Max( ( H[ i ] - L[ i - 1 ] ) / ( ( H[ i ] - L[ i ] ) * sqrt( i - 4 ) ), ( H[ i ] - L[ i - 2 ] ) / ( ( H[ i ] - L[ i ] ) * sqrt( i - 3 ) ) );
                 RWH[ i ] = Max( VarMaxHi[ i ], VarMaxHi[ i - 1 ] );
             }
         break;
     }
     
     Title = "RWH: " + RWH;
     Plot( RWH, "RWH", ParamColor( "Color", colorCycle ), ParamStyle("Style") ); 
_SECTION_END();

Any suggestions?

Thank you for reading. Appreciate your time!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site, you agree to our Terms of Use.