STOCKS & COMMODITIES magazine. The Traders' Magazine
Request Information
From Advertisers
Traders.com
Stocks &
Commodities

  • Subscribers' Area
  • Current Issue

  •    - Opening Position
       - Letters to S&C
       - Traders' Tips
       - Futures Liquidity
       - News & Products
       - Books
       - Cover Art

  • Free Articles
  • Article Abstracts
    1996-Present
  • Complete Articles
    1982-Present
  • Novice Traders' Notebook
  • Glossary
  • Subscribe
  • Renew
  • Free Trial
  • Search
  • Working
    Money
    Traders.com
    Advantage
    Traders'
    Resource
    Online Store
    Message Boards
    Article Code
    Free Newsletter
    Products
    Search
    Help
    Subscribe
    Renew
    Contact Us
    Home

    Enter search terms:


    Products
    Small Book Image for Store.Traders.comStore.Traders.com
    Purchase past articles on hundreds of topics, along with software, books, and magazine subscriptions over a secure web connection. Click Here

     
    Search Products:

    @ Online Store!
    S&C Magazine Subscriber Login
    S&C Free Trial Issue
    S&C Volume Books
    S&C Magazine
    S&C on DVD
    Software
    Articles
    FREE ARTICLES! (while they last)
    VectorVest RealTime
    CrimsonMind.com
    The 21st-Century Technician
    Bennett McDowell
    Bill And Justine Williams
    Point & Figure for Forex
    Profitunity Home Study Course
    Support & Resistance ...
    BestChoice Software
    StrataSearch 3.0
    eSignal 10 and Advanced GET ...
    Elwave 9.0
    VisualTrader 4.0
    Forex Volatility Patterns
    Stock Trading Success
    Traders' Resource
    Advisory Services
    Books
    Brokerage
    Consultants
    Courses & Seminars
    Data Services
    Exchanges
    Hardware
    Mutual Funds
    Online Trading Services
    Publications & Newsletters
    Software
    Trading Systems

    Information Directory
    S&C Tour
    S&C Magazine
    Resources
    Products
    Subscribe
    This Month's Issue
    Home | S&C Magazine | Working Money | Traders' Resource | Message-Boards | Store


    January 2002
    TRADERS' TIPS

    Here is this month's selection of Traders' Tips, contributed by various developers of technical analysis software to help readers more easily implement some of the strategies presented in this and other issues.

    You can copy these formulas and programs for easy use in your spreadsheet or analysis software. Simply "select" the desired text by highlighting as you would in any word processing program, then use your standard key command for copy or choose "copy" from the browser menu. The copied text can then be "pasted" into any open spreadsheet or other software by selecting an insertion point and executing a paste command. By toggling back and forth between an application window and the open webpage, data can be transferred with ease.

    This month's tips include formulas and programs for:
     

    TRADESTATION: RELATIVE VIGOR INDEX
    WEALTH-LAB: RELATIVE VIGOR INDEX
    NEOTICKER: RELATIVE VIGOR INDEX
    INVESTOR/RT: RELATIVE VIGOR INDEX
    SMARTRADER: RELATIVE VIGOR INDEX
    WAVE WI$E MARKET SPREADSHEET: RELATIVE VIGOR INDEX
    METASTOCK FOR WINDOWS: RELATIVE VIGOR INDEX

    or return to January 2002 Contents


    TRADESTATION: RELATIVE VIGOR INDEX

    John Ehlers's article "Relative Vigor Index (RVI)" in this issue includes a version of EasyLanguage code for the indicator. That version includes hardcoded implementations of a symmetrically weighted moving average in three places, and also a hardcoded implementation of two summations. We provide an alternative version below that replaces these hardcoded implementations with function calls. This version produces identical results, except for minor initialization differences.

    The SWMA, also known as a triangular moving average, can be conveniently implemented as a double simple moving average, and this code can be separated out into a function that can than be called from the main body of the code as many times as necessary. TradeStation includes a TriAverage function, but the function required here is a little more generalized, so we call it TriAverage_gen and provide the code for it below, following the main indicator code. Summation is another built-in function in TradeStation, and we use that as is.
     

    Indicator: Relative Vigor Index
    inputs:
     Length( 10 ) ;
    variables:
     Change( 0 ),
     MyRange( 0 ),
     Num( 0 ),
     Den( 0 ),
     RVI( 0 ),
     RVISig( 0 ) ;
    Change = Close - Open ;
    MyRange = High - Low ;
    Value1 = TriAverage_gen( Change, 4 ) ;
    Value2 = TriAverage_gen( MyRange, 4 ) ;
    Num = Summation( Value1, Length ) ;
    Den = Summation( Value2, Length ) ;
    if Den > 0 then
     RVI = Num / Den ;
    RVISig = TriAverage_gen( RVI, 4 ) ;
    Plot1( RVI, "RVI" ) ;
    Plot2( RVISig, "Sig" ) ;
    Function: TriAverage_gen
    inputs:
     Price( numericseries ),
     Length( numericsimple ) ;
    variables:
     Length1( 0 ),
     Length2( 0 ) ;
    Length1 = Floor( ( Length + 1 ) * .5 ) ;
    Length2 = Ceiling( ( Length + 1 ) * .5 ) ;
    TriAverage_gen =
     Average( Average( Price, Length1 ), Length2 ) ;


    This code will also be available for download at www.tradestation2000i.com. Select Support -> EasyLanguage -> Strategies and Indicators -> Traders Tips, and look for the file "RelativeVigorIndex.ELS."

    -Ramesh Dhingra
    Director, EasyLanguage Consulting
    TradeStation Technologies, Inc. (formerly Omega Research, Inc.)
    a wholly owned subsidiary of TradeStation Group, Inc.
    http://www.TradeStation.com
    GO BACK

    WEALTH-LAB: RELATIVE VIGOR INDEX

    Wealth-Lab Developer 2.0 contains a native implementation of the relative vigor index and a finite response filter function that you can use to produce the RVI signal line as described in John Ehlers's article this issue.

    The FIR function is quite flexible and allows you to create a filter using any desired pattern of coefficients. You pass a string parameter to the FIR function that describes the coefficients that you want to apply. The RVI signal line used the values 1,2,2,1, so, in this case, you'd pass the string "1,2,2,1" to the FIR function.

    Figure 1: WEALTH-LAB, Relative Vigor Index. Here is a sample Wealth-Lab chart that implements the WealthScript for a simple trading system based on RVI/signal line crossovers.


    Here is the Wealth-Lab scripting code (WealthScript) that implements a simple trading system based on RVI/signal line crossovers. Use this as the basis for further development and investigation of these interesting concepts.
     

    var RVIPANE, RVISER, RVISIG, BAR: integer;
    { Plot RVI on the Chart }
    RVIPane := CreatePane( 100, true, true );
    RVISer := RVISeries( 10 );
    PlotSeries( RVISer, RVIPane, #Navy, #Thick );
    DrawLabel( 'RVI( 20 )', RVIPane );
    { Create Signal Line using Finite Impulse Response Function }
    RVISig := FIRSeries( RVISer, '1,2,2,1' );
    PlotSeries( RVISig, RVIPane, #Black, #Thin );
    { A Simple 1 Position Trading System Based on RVI/Signal Line }
    InstallBreakevenStop( 3 );
    for Bar := 15 to BarCount - 1 do
    begin
     ApplyAutoStops( Bar );
     if not LastPositionActive then
     begin
      if RVI( Bar - 1, 10 ) < -0.4 then
       if CrossOver( Bar, RVISer, RVISig ) then
        BuyAtMarket( Bar + 1, 'RVI Buy' );
     end
     else
     begin
      if RVI( Bar - 1, 10 ) > 0 then
       if CrossUnder( Bar, RVISer, RVISig ) then
        SellAtMarket( Bar + 1, LastPosition, 'RVI Sell' );
     end;
    end;
    -Dion Kurczek, Wealth-Lab.com
    773 883-9047, dionkk@ix.netcom.com
    www.wealth-lab.com
    GO BACK

    NEOTICKER: RELATIVE VIGOR INDEX
    To calculate the relative vigor index using NeoTicker, create two functions to calculate the numerator and denominator: functions based on the four-bar weighted single moving average (SMA) of buying power (BP) and selling power (SP), as described in John Ehlers's article in this issue. Then create the indicator called RVI, with two plots and a user-customizable number of periods (Listing 1).

    FIGURE 2: NeoTicker. Here is the RVI and the smoothed RVI in NeoTicker. The RVI indicator is an oscillator.


    LISTING 1

    function Value1 ( ByVal p1 )
     Value1 = ((Data1.Close (p1) - Data1.Open (p1)) + _
      2 * (Data1.Close(p1+1) - Data1.Open (p1+1)) + _
      2 * (Data1.Close(p1+2) - Data1.Open (p1+2)) + _
      (Data1.Close(p1+3) - Data1.Open (p1+3)))/6
    end function
    function Value2 ( ByVal p2 )
     Value2 = ((Data1.High (p2) - Data1.Low (p2)) + _
      2 * (Data1.High (p2+1) - Data1.Low (p2+1)) + _
      2 * (Data1.High (p2+2) - Data1.Low (p2+2)) + _
       (Data1.High (p2+3) - Data1.Low (p2+3)))/6
    end function
    function rvi()
     dim Num, Denom
     dim i
     if Data1.Valid (0) = false then
      Itself.SuccessEx[1] = false
      Itself.SuccessEx[2] = false
      exit function
     end if
     for i = 0 to Param1.int - 1
      Num = Num + Value1(i)
      Denom = Denom + Value2(i)
     next
     if Denom <> 0 then
      Itself.Plot (1) = Num/Denom
     end if
     Itself.Plot (2) = (ItSelf.Value (0) + 2 * ItSelf.Value (1) + _
      2 * ItSelf.Value (2) + ItSelf.Value (3))/6
    end function


    The RVI indicator is an oscillator with two plots (Figure 4), which shows Rvi and the smoothed Rvi .

    A version of this NeoTicker RVI script is available for download at our website. Since NeoTicker EOD 2.3 does not support multiple plots, if you are interested in using the RVI with NeoTicker EOD, you can download the EOD version of RVI from our website.

    -Kenneth Yuen, TickQuest Inc.
    www.tickquest.com
    GO BACK

    INVESTOR/RT: RELATIVE VIGOR INDEX

    John Ehlers's article in this issue, "Relative Vigor Index (RVI)," takes an old concept and updates it with modern filters. We have added the relative vigor index to Investor/RT as a built-in technical indicator. RVI can be drawn as either a histogram oscillator depicting the difference between the RVI and RVI signal lines, or as individual RVI and RVI signal lines. Figure 3 shows the preferences available for RVI.

    FIGURE 3: Investor/RT, Relative Vigor Index Preferences. Here are the preferences available for the RVI in Investor/RT.


    When the oscillator checkbox is unchecked, you have the option of showing either the RVI line, the RVI signal line, or both. Figure 4 illustrates the use of both the oscillator and the individual lines. The upper pane shows the daily bars of QQQ. The RVI line is drawn in green while the RVI signal line is drawn in red. The lower pane depicts the Rvi and RVI signal lines overlaying the oscillator drawn as a histogram. The histogram bars represent the difference between the RVI line and the RVI signal line. The histogram color represents whether the bar was an up bar (dark gray) or a down bar (light gray). The oscillator line can be drawn as a histogram (hollow or solid) or a line (connected or continuous).

    FIGURE 4: Investor/RT, Relative Vigor Index. This Investor/RT chart illustrates the use of both the oscillator and the individual lines. Displayed are the RVI, RVI signal, and in the lower window pane, the RVI oscillator.


    This relative vigor index has also been added to the Investor/RT RTL Language and assigned the token name RVI. This token gives the user access to the RVI, RVI signal, and RVI oscillator values. RTL can be used to compose scans, custom indicators, backtest trading signals, annotations, and e-mail alerts.

     
    -Chad Payne, Linn Software
    800-546-6842, info@linnsoft.com
    www.linnsoft.com
    GO BACK

    SMARTRADER: RELATIVE VIGOR INDEX

    The relative vigor index by John Ehlers is simple to implement in SmarTrader. Figure 5 gives the SmarTrader specsheet showing the formulas. Row 10, Length, is a coefficient which holds a value of 10, as defined in the article. You can change it to other values to experiment.

    FIGURE 5: SmarTrader. Here is the SmarTrader specsheet showing the formulas for implementing John Ehlers's relative vigor index in SmarTrader.


    Rows 9 and 10, Value1 and Value2, are user formula rows and duplicate the filtering formulas from the article. Note, in SmarTrader, a minus (-) sign is used to point backward since the absence of a sign indicates a forward pointer.

    Rows 11 and 12, Num and Denom, use the sum function and substitute for the "for" loop in the language used in the article. Any change in the value of Length will be reflected in the number of periods summed for Num and Denom.

    Rows 13 and 14, RVI and RVISig, are user formula rows and duplicate the formulas in the article. Figure 6 is a sample chart of the relative vigor index in SmarTrader.

    FIGURE 6: SmarTrader. Here is a sample display of the relative vigor index as plotted in SmarTrader.
    -Jim Ritter, Stratagem Software
    504 885-7353, Stratagem1@aol.com
    GO BACK

    WAVE WI$E MARKET SPREADSHEET: RELATIVE VIGOR INDEX

    The following Wave Wi$e formulas demonstrate how to calculate some of John Ehlers's relative vigor index. Note that Wave Wi$e uses [-n] to indicate bars in the past; that is, [-1] is one bar ago, [-2] is two bars ago.
     

    A: DATE @TC2000(C:\TC2000V3\Data,DJ-30,Dow Jones Industrials,DB)
    B: HIGH
    C: LOW
    D: CLOSE
    E: OPEN
    F: VOL
    G: Value1 ((CLOSE-OPEN)+2*(CLOSE[-1]-OPEN[-1])+2*(CLOSE[-2]-OPEN[-2])+(CLOSE[-3]-OPEN[-3]))/6
    H: Value2 ((HIGH-LOW)+2*(HIGH[-1]-LOW[-1])+2*(HIGH[-2]-LOW[-2])+(HIGH[-3]-LOW[-3]))/6
    I: Period 5  'Set the period length
    J: Num @ADD(VALUE1,PERIOD)
    K: Denom   @ADD(VALUE2,PERIOD)
    L: RVI  @IF(DENOM<>0,NUM/DENOM)
    M: RVIsig   (RVI+2*RVI[-1]+2*RVI[-2]+RVI[-3])/6
    N: chart   @CHART(1)
    O:  ' ==========End Formulas
    -Peter Di Girolamo, Jerome Technology
    908 369-7503, jtiware@aol.com
    http://members.aol.com/jtiware
    GO BACK

    METASTOCK FOR WINDOWS: RELATIVE VIGOR INDEX

    The Relative Vigor Index (RVI), presented by John Ehlers in his article in this issue, can be easily recreated in MetaStock 6.52 or higher. To recreate the RVI in MetaStock, select the Indicator Builder from the Tools menu, then click "New" and enter the following formula:
     

    ti:=Input("length",2,20,10);
    v1:=((C-O)+(2*Ref(C-O,-1))+(2*Ref(C-O,-2))+Ref(C-O,-3))/6;
    v2:=((H-L)+(2*Ref(H-L,-1))+(2*Ref(H-L,-2))+Ref(H-L,-3))/6;
    temp:=If(Sum(v2,ti)=0,0.0001,Sum(v2,ti));
    rv:=Sum(v1,ti)/temp;
    rvsig:= (rv+Ref(2*rv,-1)+Ref(2*rv,-2)+Ref(rv,-3))/6;
    rv;
    rvsig
    -William Golson,
    Equis International, Inc.
    http://www.equis.com


    GO BACK


    TradeStation (TradeStation Technologies), MetaStock (Equis International), NeuroShell Trader (Ward Systems Group), TradingSolutions (NeuroDimension), Investor/RT (Linn Software), Wealth-Lab.com (Wealth-Lab.com), TechniFilter Plus (RTR Software), NeoTicker (TickQuest), SmarTrader (Stratagem Software), Byte Into The Market (Tarn Software)


    All rights reserved. © Copyright 2001, Technical Analysis, Inc.


    Return to January 2002 Contents
    Technical Analysis, Inc.

    [Home | Working Money Magazine | S&C Magazine | Traders.com Advantage | Online Store]
    [Traders' Resource | Add a Product to Traders' Resource | Message Boards]
    [Subscribe/Renew | Free Trial Issue | Article Code | Search | Help Files]
    Departments: [Advertising | Editorial | Circulation | Employment | Contact Us]

    Copyright © 1996-2009 Technical Analysis, Inc. All rights reserved. Read our privacy statement.

    Technical Analysis, Inc.
    Subscribe! Free E-mail Newsletter.
    First: Last:
    E-mail: