NexusFi: Find Your Edge


Home Menu

 





Random Walk Index by E. Michael Poulos


Discussion in Platforms and Indicators

Updated
    1. trending_up 1,658 views
    2. thumb_up 0 thanks given
    3. group 1 followers
    1. forum 0 posts
    2. attach_file 0 attachments




 
Search this Thread

Random Walk Index by E. Michael Poulos

  #1 (permalink)
Lennon
Ohio USA
 
Posts: 2 since May 2017
Thanks Given: 0
Thanks Received: 0

Greetings All,

This is my first post here. And would like to gain some knowledge on this classic which was developed by E. Michael Poulos about 30 years back that were published in 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. RWIH
2. RWILo
3. RWI

Adding the inbuilt functions onto one section:
 
Code
_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. Need your kind help in this regard!
 
Code
_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":
             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":
             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":
             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!

Reply With Quote




Last Updated on June 9, 2018


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts