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)
    Suri Duddella Notes
    Elwave 9.0
    Bennett McDowell
    VisualTrader 4.0
    Forex Volatility Patterns
    Stock Trading Success
    Market Dynamics
    Bill And Justine Williams
    StrategyDesk
    Profiting From The Gartley
    Elwave 8
    Steve Nison's Profiting In ...
    Best Choice Software
    High Growth Stock Investor
    Daytrading With TheStockBandit ...
    The Trading Plan
    Support & Resistance ...
    eSignal 10 and Advanced GET ...
    Buying Straddles
    NeuroShell Trader 5
    GTS Pro
    Between Price And Volume
    Point & Figure for Forex
    Direct Pro
    A Window to Our Workshop
    Profitunity Home Study Course
    Adrienne Toghraie
    MultiCharts 2 (Part 2)
    MESA8
    MultiCharts 2 (Part 1)
    C. Kirk of TheKirkReport.com
    StrataSearch 3.0
    IBFX-GPS
    Random Walk Trading
    OmniTrader
    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


    November 2005
    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 Web page, data can be transferred with ease.

    This month's tips include formulas and programs for:

    TRADESTATION 8.1: SPEED TRADING SYSTEM
    WEALTH-LAB: SPEED TRADING SYSTEM
    AMIBROKER: SPEED TRADING SYSTEM
    eSIGNAL: SPEED TRADING SYSTEM
    NEUROSHELL TRADER: SPEED TRADING SYSTEM
    INVESTOR/RT: SPEED TRADING SYSTEM
    NEOTICKER: SPEED TRADING SYSTEM
    TRADING SOLUTIONS: SPEED TRADING SYSTEM
    TRADE NAVIGATOR: SPEED TRADING SYSTEM
    METASTOCK: SPEED TRADING SYSTEM
    TECHNIFILTER PLUS: SPEED TRADING SYSTEM
    BIOCOMP PROFIT 7: SPEED TRADING SYSTEM
    FINANCIAL DATA CALCULATOR: TWO MOVING FUNCTION HYBRIDS
    or return to November 2005 Contents


    TRADESTATION 8.1: SPEED TRADING SYSTEM

    In his article, "Improve Your Trading System With Speed," Gomu Vetrivel presents an indicator called speed. He defines speed as the absolute value of the difference between two closing prices. Vetrivel presents the results of tests he conducted to attempt to determine whether speed can be used to improve the performance of a system, the entries of which are based on moving average crossovers.

    In the first test presented by Vetrivel, every crossover signal is traded. In the second, only crossovers with increasing speed are taken. In the third test, only crossovers with decreasing speed are taken.

    Vetrivel's article already contains code written for TradeStation 2000i. We have updated that code here to run in the TradeStation 8.1 environment. In addition, the moving average and "speed" lengths are now input parameters.
     

    Indicator:   _VetrivelSpeed
    inputs:
     SpeedLen( 1 ) ;
    variables:
     Speed( 0 ) ;
    Speed = AbsValue( Close - Close[SpeedLen] ) ;
    Plot1( Speed, "Speed" ) ;
    Strategy:   _VetrivelBase
    { Base System }
    inputs:
     AverageLen1( 10 ),
     AverageLen2( 5 ) ;
    variables:
     Average1( 0 ),
     Average2( 0 ) ;
    Average1 = Average( Close, AverageLen1 ) ;
    Average2 = Average( Close, AverageLen2 ) ;
    if Close crosses over Average1 then
     Buy this bar on Close ;
    if Close crosses under Average1 then
     SellShort this bar at Close ;
    if MarketPosition = -1 and Close > Average2 then
     BuyToCover this bar on Close ;
    if MarketPosition = 1 and Close < Average2 then
     Sell this bar at Close ;
    Strategy:   _VetrivelSpeedUp
    { Speed up - Hypothesis 1 }
    inputs:
     AverageLen1( 10 ),
     AverageLen2( 5 ),
     SpeedLen( 1 ) ;
    variables:
     Average1( 0 ),
     Average2( 0 ),
     Speed( 0 ) ;
    Speed = AbsValue( Close - Close[SpeedLen] ) ;
    Average1 = Average( Close, AverageLen1 ) ;
    Average2 = Average( Close, AverageLen2 ) ;
    if Speed > Speed[1] then
     begin
     if Close crosses over Average1 then
      Buy this bar on Close ;
     if Close crosses under Average1 then
      SellShort this bar at Close ;
     end ;
    if MarketPosition = -1 and Close > Average2 then
     BuyToCover this bar on Close ;
    if MarketPosition = 1 and Close < Average2 then
     Sell this bar at Close ;
    Strategy:   _VetrivelSpeedDn
    { Speed Down - Hypothesis 2 }
    inputs:
     AverageLen1( 10 ),
     AverageLen2( 5 ),
     SpeedLen( 1 ) ;
    variables:
     Average1( 0 ),
     Average2( 0 ),
     Speed( 0 ) ;
    Speed = AbsValue( Close - Close[SpeedLen] ) ;
    Average1 = Average( Close, AverageLen1 ) ;
    Average2 = Average( Close, AverageLen2 ) ;
    if Speed < Speed[1] then
     begin
     if Close crosses over Average1 then
      Buy this bar on Close ;
     if Close crosses under Average1 then
      SellShort this bar at Close ;
     end ;
    if Marke
    etPosition = -1 and Close > Average2 then
     BuyToCover this bar on Close ;
    
    FIGURE 1: TRADESTATION, SPEED TRADING SYSTEM. Here is a sample daily OHLC bar chart with the "_VetrivelSpeedUp" strategy and "_VetrivelSpeed" indicator applied.


     To download this code, search for the file "Speed.eld" in the Support Center at TradeStation.com.

    --Mark Mills
    TradeStation Securities, Inc.
    A subsidiary of TradeStation Group, Inc.
    www.TradeStationWorld.com


    GO BACK


    WEALTH-LAB: SPEED TRADING SYSTEM

    To investigate how new indicators can affect the profitability of an existing trading system, you can use the AnalyzeSeries function in a ChartScript. This instructs Wealth-Lab to analyze every trade's profit and plot each one versus the series' value on a specific bar, selectable in the Analysis view. The resulting scattergraph contains a linear regression line that allows you to quickly identify the slope and strength of the correlation (Figure 2).

    FIGURE 2: WEALTH-LAB, SPEED INDICATOR ON THE S&P 500 INDEX. An analysis of the raw profit produced by the speed indicator based on the S&P 500 shows a slight correlation between profit percentage and higher values of speed. The bottom chart, however, indicates that the average profit may decrease for the higher-range values (few samples). Note that generally, the bar of interest is the bar prior to the entry bar, but in the case of AtClose orders, we're interested in the series value on the actual entry bar.


    To see how speed and the logic presented by Gomu Vetrivel in his article, "Improve Your Trading System With Speed," can affect trading system results, we wrote a simple procedure that creates two series, hSpeed and hScore, that are passed to AnalyzeSeries calls. By simply adding the study to any ChartScript, you can analyze how adding filters based on either of the series would affect profitability.
     

    Study: hSpeed and hScore
    procedure AnalyzeSpeed();
    var hSpeed, hScore: integer;
    begin
      hSpeed := CreateSeries;
      hScore := CreateSeries;
      for Bar := 1 to BarCount - 1 do
      begin
    { Speed = Absolute value of the 1-day Rate of Change }
        @hSpeed[Bar] := Abs( ROC( Bar, #Close, 1 ) );
        if @hSpeed[Bar] > @hSpeed[Bar-1] then
          @hScore[Bar] := 1
        else
          @hScore[Bar] := -1;
      end;
      AnalyzeSeries( hSpeed, ‘Speed' );
      AnalyzeSeries( hScore, ‘Score' );
    end;
    AnalyzeSpeed;
    
    Here, hScore is the main indicator of interest, since it represents whether the speed is increasing (1) or decreasing (-1) relative to the previous bar. Our analysis results of the effect of the speed and score series on simulated trading of the S&P 500 index symbol, and separately on its components, are demonstrated in Figures 2, 3, and 4.
     


    FIGURE 3: WEALTH-LAB, SCORE INDICATOR ON THE S&P 500 INDEX. Although correlation is still on the low end, the S&P 500 index raw profit analysis of score indicates that incorporating the score series in trade-trigger logic would result in higher profit for this single-symbol simulation.
     


    FIGURE 4: WEALTH-LAB, SCORE INDICATOR ON S&P 500 INDEX COMPONENTS. Collectively analyzing more than 97,000 trades for every component of the S&P 500 index over the test period using the Wealth-Lab $imulator's raw profit mode, the score analysis indicates that no reason exists (near zero correlation) to expect that incorporating the filter will improve the results of this trading system.


    WealthScript code:

    { Baseline trading logic from article. Note that since the entries and }
    { exits are not mutually exclusive, the possibility exists to hold both }
    { a long and short position simultaneously for the same symbol. }
    var Bar, p, Processed, APCount, hSlow, hFast: integer;
    hSlow := SMASeries( #Close, 10 );
    hFast := SMASeries( #Close, 5 );
    PlotSeries( hSlow, 0, #Red, #Thin );
    PlotSeries( hFast, 0, #Blue, #Thin );
    HideVolume;
    for Bar := 10 to BarCount - 1 do
    begin
    { Exit Logic }
      APCount := ActivePositionCount;
      Processed := 0;
      for p := PositionCount - 1 downto 0 do
        if PositionActive( p ) then
        begin
          if PositionLong( p ) then
          begin
            if CrossUnder( Bar, #Close, hFast) then
              SellAtClose( Bar, p, ‘' );
          end
          else if CrossOver( Bar, #Close, hFast ) then
            CoverAtClose( Bar, p, ‘' );
          Inc( Processed );
          if Processed = APCount then
            break;
        end;
    { Entry Logic }
      if CrossOver( Bar, #Close, hSlow ) then
        BuyAtClose( Bar, ‘L' )
      else if CrossUnder( Bar, #Close, hSlow ) then
        ShortAtClose( Bar, ‘S' );
    end;
    --Robert Sucher
    www.wealth-lab.com


    GO BACK



     

    AMIBROKER: SPEED TRADING SYSTEM

    In "Improve Your Trading System With Speed," Gomu Vetrivel presents a method to improve trading system performance by choosing only the entry signals that occur when price speed increases. Speed is defined as the absolute difference between today's and yesterday's closing prices.

    Coding such speed-enhanced trading systems is easy in AmiBroker Formula Language (AFL). Ready-to-use code is presented here. To demonstrate, the code uses a simple 10-/five-bar moving average crossover as a base system (as in Vetrivel's article); however, users can replace the entry/exit rules (the first four lines of the code) by any other system of their choice to check whether speed-filtering helps.
     

    // Base trading system
    Buy = Cross( C, MA( C, 10 ) );
    Sell = Cross( MA( C, 5 ), C );
    Short = Cross( MA( C, 10 ), C );
    Cover = Cross( C, MA( C, 5 ) );
    // Speed calculation
    Speed = abs( C - Ref( C, -1 ) );
    // SpeedUp is boolean, which is true when speed increases
    SpeedUp = Speed > Ref( Speed, -1 );
    SpeedDown = Speed < Ref( Speed, -1 );
    // these statements modify trading system rules
    // to enter long/short only when speed increases
    // (hypothesis 1)
    Buy = Buy AND SpeedUp;
    Short = Short AND SpeedUp;


    Figure 5 shows the backtest results of a speed-filtered (1) and plain (2) moving average crossover system applied to Microsoft (MSFT) in the period January 1, 2003, to May 31, 2005. Clearly, this very simple speed-filtered system performed better in almost every aspect, including profit (67% versus 58%), drawdowns (-25% versus -35%), and with less exposure.

    FIGURE 5: AMIBROKER, SPEED TRADING SYSTEM. Here is a sample AmiBroker chart showing the backtest results of a speed-filtered (1) and plain (2) moving average crossover system applied to Microsoft (MSFT).
    --Tomasz Janeczko, AmiBroker.com
    www.amibroker.com


    GO BACK


    eSIGNAL: SPEED TRADING SYSTEM
    For this month's article by Gomu Vetrivel called "Improve Your Trading System With Speed," we've provided the following formula, "Speed.efs." The study plots a histogram of the speed value multiplied by 100. The histogram bar will be colored green when the value is greater than the previous value, red when less than, and gray when there is no change in speed. A sample chart is shown in Figure 6.
     


    FIGURE 6: eSIGNAL, SPEED TRADING SYSTEM. Here is a demonstration of the speed trading system in eSignal. The study plots a histogram of the speed value multiplied by 100. The histogram bars are colored green when their value is greater than the previous value, red when less, and gray when there is no change in speed.


    To discuss this study or download a complete copy of the formula, please visit the EFS Library Discussion Board forum under the Bulletin Boards link at www.esignalcentral.com. The formula is also available at www.traders.com.
     

    /***************************************
    Provided By : eSignal (c) Copyright 2005
    Description:  Improve Your Trading System With Speed - by Gomu Vetrivel
    Version 1.0  9/12/2005
    Notes:
    November 2005 Issue of Stocks & Commodities Magazine
    * Study requires version 7.9 or higher.
    Formula Parameters:                 Defaults:
    N/A
    ***************************************/
    function preMain() {
        setStudyTitle("Speed ");
        setShowTitleParameters(false);
        setCursorLabelName("Speed", 0);
        setDefaultBarFgColor(Color.grey, 0);
        setDefaultBarThickness(3, 0);
        setPlotType(PLOTTYPE_HISTOGRAM, 0);
     
    }
    var bVersion = null;
    var nSpeed = null;
    var nSpeed1 = null;
    //Speed = Distance traveled by price / Time taken
    function main() {
        if (bVersion == null) bVersion = verify();
        if (bVersion == false) return;
        var nState = getBarState();
     
        if (nState == BARSTATE_NEWBAR) {
            if (nSpeed != null) nSpeed1 = nSpeed;
        }
        nSpeed = Math.abs(close(0) - close(-1)) *100;
     
        if (nSpeed > nSpeed1) setBarFgColor(Color.green);
        if (nSpeed < nSpeed1) setBarFgColor(Color.red);
     
        return nSpeed;
    }
    /***** Support Functions *****/
    function verify() {
      var b = false;
      if (getBuildNumber() < 700) {
        drawTextAbsolute(5, 35, "This study requires version 7.9 or later.", Color.white,
          Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
          null, 13, "error");
        drawTextAbsolute(5, 20, "Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp",
          Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
          null, 13, "upgrade");
        return b;
      } else {
        b = true;
      }
      return b;
    }
    --Jason Keck
    eSignal, a division of Interactive Data Corp.
    800 815-8256, www.esignalcentral.com


    GO BACK


    NEUROSHELL TRADER: SPEED TRADING SYSTEM

    The speed trading systems presented by Gomu Vetrivel in his article in this issue can be implemented easily in NeuroShell Trader by combining a few of NeuroShell Trader's 800-plus indicators and NeuroShell Trader's Trading Strategy Wizard. To recreate the speed trading systems, select "New Trading Strategy ..." from the menu and enter the following entry and exit conditions in the appropriate locations of the Trading Strategy Wizard:
     

    Hypothesis #1 Trading System:
      Generate a buy long MARKET order if ALL of the following are true:
     AvgCrossoverAbove ( Close, 1, 10 )
     A>B ( Abs( Momentum( Close, 1 ) ), Lag( Abs( Momentum( Close, 1 ), 1 )
      Generate a sell long MARKET order if ALL of the following are true:
     AvgCrossoverBelow ( Close, 1, 5 )
      Generate a sell short MARKET order if ALL of the following are true:
     AvgCrossoverBelow ( Close, 1, 10 )
     A>B ( Abs( Momentum( Close, 1 ) ), Lag( Abs( Momentum( Close, 1 ), 1 )
      Generate a cover short MARKET order if ALL of the following are true:
     AvgCrossoverAbove ( Close, 1, 5 )
    Hypothesis #2 Trading System:
      Generate a buy long MARKET order if ALL of the following are true:
     AvgCrossoverAbove ( Close, 1, 10 )
     A<B ( Abs( Momentum( Close, 1 ) ), Lag( Abs( Momentum( Close, 1 ), 1 )
      Generate a sell long MARKET order if ALL of the following are true:
     AvgCrossoverBelow ( Close, 1, 5 )
      Generate a sell short MARKET order if ALL of the following are true:
     AvgCrossoverBelow ( Close, 1, 10 )
     A<B ( Abs( Momentum( Close, 1 ) ), Lag( Abs( Momentum( Close, 1 ), 1 )
      Generate a cover short MARKET order if ALL of the following are true:
     AvgCrossoverAbove ( Close, 1, 5 )


    If you have NeuroShell Trader Professional, you can also choose whether the system parameters should be optimized. After backtesting the trading strategy, use the "Detailed Analysis ..." button to view the backtest and trade-by-trade statistics for the speed trading systems.

    FIGURE 7: NEUROSHELL TRADER, SPEED TRADING SYSTEM. Here is a sample NeuroShell chart demonstrating the speed trading systems described by Gomu Vetrivel.


    For more information on NeuroShell Trader, visit our website, www.NeuroShell.com.

    --Marge Sherald, Ward Systems Group, Inc.
    301 662-7950, sales@wardsystems.com
    www.neuroshell.com


    GO BACK


    INVESTOR/RT: SPEED TRADING SYSTEM

    Hypothesis 1 given in "Improve Your Trading System With Speed" by Gomu Vetrivel can be implemented in Investor/RT by adding the following condition to any entry signal:
     

    AND ABS(CL - CL.1) > ABS(CL.1 - CL.2)

    Similarly, hypothesis 2 can be implemented by adding the following condition to any entry signal:

    AND ABS(CL - CL.1) < ABS(CL.1 - CL.2)

     The complete signals mentioned in the article can be coded as follows:

    Hypothesis 1 Buy:
    CL > MA AND CL.1 < MA.1 AND ABS(CL - CL.1) > ABS(CL.1 - CL.2)
    (MA is setup as simple 10 period on close)

    Hypothesis 1 Short:
    CL < MA AND CL.1 > MA.1 AND ABS(CL - CL.1) > ABS(CL.1 - CL.2)
    (MA is setup as simple 10 period on close)

    Hypothesis 1 Exit Long (Sell):
    CL < MA
    (MA is setup as simple 5 period on close)

    Hypothesis 1 Exit Short (Cover):
    CL > MA
    (MA is setup as simple 5 period on close)

    Hypothesis 2 Buy:
    CL > MA AND CL.1 < MA.1 AND ABS(CL - CL.1) < ABS(CL.1 - CL.2)
    (MA is setup as simple 10 period on close)

    Hypothesis 2 Short:
    CL < MA AND CL.1 > MA.1 AND ABS(CL - CL.1) < ABS(CL.1 - CL.2)
    (MA is setup as simple 10 period on close)

    Hypothesis 2 Exit Long (Sell):
    CL < MA
    (MA is setup as simple 5 period on close)

    Hypothesis 2 Exit Short (Cover):
    CL > MA
    (MA is setup as simple 5 period on close)


    More information on Investor/RT Real Trading Systems and backtesting can be found at http://www.linnsoft.com/tour/tradingsystems.htm.

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


    NEOTICKER: SPEED TRADING SYSTEM

    The three trading systems presented in the article "Improve Your Trading System With Speed" by Gomu Vetrivel can be implemented as three formula trading systems in NeoTicker.

    The first indicator is the base crossover system (Listing 1) we named "TASC Base System." The second indicator is Vetrivel's hypothesis 1 system (Listing 2), which we named "Tasc Hypothesis 1 System." The third indicator is Vetrivel's hypothesis 2 system (Listing 3) that we named "Tasc Hypothesis 2 System." All three systems have one integer parameter and plot system equity as the result.

    Next, do a side-by-side comparison of the three systems using a daily Russell 2000 chart (Figure 8). First, load Russell 2000 index daily bars into a chart, then add the base system. At the system tab, set the price multiple to 100; set commission to none; check on historical test; and set the begin date to 01/01/2001 and the end date to 05/31/2005. Then hit "apply" to start the calculation. Change the same settings with the other two hypothesis systems and add them to the chart. When all the systems are plotted, it clearly shows hypothesis 1 is a winner.

    FIGURE 8: NEOTICKER, SPEED TRADING SYSTEM. Here is a daily chart of the Russell 2000 index showing a side-by-side comparison of the three systems described in Gomu Vetrivel's article: the base system and the two hypothesized systems. When all three systems are plotted, it clearly shows hypothesis 1 a winner.
    LISTING 1
    $mytradesize := param1;
    longatmarket(xabove(c, average(c, 10)), $mytradesize);
    shortatmarket(xbelow(c, average(c, 10)), $mytradesize);
    longexitatmarket(openpositionlong>0 and c<average(c,5),   $mytradesize);
    shortexitatmarket(openpositionshort>0 and c>average(c,5), $mytradesize);
    plot1 := currentequity;
    LISTING 2
    $mytradesize := param1;
    x := absvalue(c-c(1));
    longatmarket(x>x(1) and xabove(c, average(c, 10))>0, $mytradesize);
    shortatmarket(x>x(1) and xbelow(c, average(c, 10))>0, $mytradesize);
    longexitatmarket(openpositionlong>0 and c<average(c,5), $mytradesize);
    shortexitatmarket(openpositionshort>0 and c>average(c,5), $mytradesize);
    plot1 := currentequity;
    LISTING 3
    $mytradesize := param1;
    x := absvalue(c-c(1));
    longatmarket(x<x(1) and xabove(c, average(c,10))>0, $mytradesize);
    shortatmarket(x<x(1) and xbelow(c, average(c,10))>0, $mytradeisze);
    longexitatmarket(openpositionlong>0 and c<average(c,5), $mytradesize);
    shortexitatmarket(openpositionshort>0 and c>average(c,5), $mytradesize);
    plot1 := currentequity;


    If you are interested in testing the three systems further, you can download a version of this trading system code along with a NeoTicker example group from the NeoTicker Yahoo! user group.

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


    GO BACK



     

    TRADING SOLUTIONS: SPEED TRADING SYSTEM

    In "Improve Your Trading System With Speed" in this issue, Gomu Vetrivel describes trading systems that test the hypothesis that speed (that is, the amount by which the price changes) can be used to improve the timing of trades. These trading systems can be entered into TradingSolutions as follows:
     

    Name: Speed Test ? Base System
    Inputs: Close
    Enter Long:
     1. CrossAbove ( Close, MA ( Close, 10 ))
    Exit Long:
     1. System_IsLong()
     2. LT(Close, MA (Close, 5))
    Enter Short:
     1. CrossBelow ( Close, MA ( Close, 10 ))
    Exit Short:
     1. System_IsShort()
     2. GT(Close, MA (Close, 5))
    Name: Speed Test - Hypothesis 1
    Inputs: Close
    Copy "Speed Test - Base System" and add the following rules:
    Enter Short:
     2. Inc ( Abs ( Change ( Close, 1 )))
    Enter Short:
     2. Inc ( Abs ( Change ( Close, 1 )))
    Name: Speed Test - Hypothesis 2
    Inputs: Close
    Copy "Speed Test - Hypothesis 1" and change "Inc" to "Dec".


    These systems are also available as a function file that can be downloaded from the TradingSolutions website (www.tradingsolutions.com) in the Solution Library section.

    --Gary Geniesse
    NeuroDimension, Inc.
    800 634-3327, 352 377-5144
    www.tradingsolutions.com


    GO BACK


    TRADE NAVIGATOR: SPEED TRADING SYSTEM

    In the Platinum version of Trade Navigator, you can create a strategy, backtest it to see its past performance record, and display the trades on charts.

    Many of the functions needed to recreate the strategies described in Gomu Vetrivel's article, "Improve Your Trading System With Speed," are already found in Trade Navigator, such as crosses above, MovingAvg, crosses below, and Abs. To recreate the strategies for the speed trading systems, follow these steps in Trade Navigator :
     

    Base system strategy
    Long Entry #001
    (1) Go to the Edit menu and click on Strategies. This
        will bring up the Trader's Toolbox already set to
        the Strategies tab (Figure 9).
    (2) Click on the New button. This will bring you to the
        New Strategy window.
    (3) Click on the New Rule button.
    (4) You will be asked if you would like to use the
        Condition Builder. In this case click No. This
        will take you to the New Rule window.
    (5) Type the formula IF Crosses Above (Close , MovingAvg
        (Close , 10))
    (6) Set the Order to place for Next Bar Action to Long
        Entry (BUY), and the Order Type to Market.
    (7) Click the Verify button.
    (8) Click the Save button and type Buy Order for the
        name of the Rule then click OK.
    (9) Click the X in the upper right corner of the Rule
        editor window to return to the New Strategy Window.
    Long Exit # 001
    (1) Click on the New Rule button.
    (2) You will be asked if you would like to use the
        Condition Builder. In this case click No. This
        will take you to the New Rule window.
    (3) Type the formula IF Crosses Below (Close , MovingAvg
        (Close , 5)) into the Condition box.
    (4) Set the Order to place for Next Bar Action to Long
        Exit (SELL), and the Order Type to Market.
    (5) Click the Verify button.
    (6) Click the Save button then click Ok.
    (7) Click the X in the upper right corner of the Rule
        editor window to return to the New Strategy Window.
    Short Entry #001
    (1) Click on the New Rule button.
    (2) You will be asked if you would like to use the
        Condition Builder. In this case click No. This
        will take you to the New Rule window.
    (3) Type the formula IF Crosses Below (Close , MovingAvg
        (Close , 10)) into the Condition box.
    (4) Set the Order to place for Next Bar Action to Short
        Entry (SELL), and the Order Type to Market.
    (5) Click the Verify button.
    (6) Click the Save button then click Ok.
    (7) Click the X in the upper right corner of the Rule
        editor window to return to the New Strategy Window.
    Short Exit #001
    (1) Click on the New Rule button.
    (2) You will be asked if you would like to use the
        Condition Builder. In this case click No. This will
        take you to the New Rule window.
    (3) Type the formula IF Crosses Above (Close , MovingAvg
        (Close , 5)) into the Condition box.
    (4) Set the Order to place for Next Bar Action to Short
        Exit (BUY), and the Order Type to Market.
    (5) Click the Verify button.
    (6) Click the Save button then click Ok.
    (7) Click the X in the upper right corner of the Rule
        editor window to return to the New Strategy Window.
    Click on the "Data" tab and select the symbol that you wish to run the strategy on. (This can be changed to a different symbol later.) In this case, you will want to select the symbol $Rut.

    Under "Date Range to Test," set the "From" date to 1/1/2001 and the "To" date to 5/31/2005.

    To save your new strategy, click the Save button and type the name you wish to give the strategy, then click OK.

    Now that you have saved your new strategy, you can run the strategy by clicking the Run button (Figure 9). This will bring up the "Performance Reports" for this strategy.

    FIGURE 9: TRADE NAVIGATOR, SPEED TRADING SYSTEM. Here is the trader's toolbox in Trade Navigator where you select a stragegy.


    You can check to see whether there is an order to place for the next bar by clicking the Orders button. This will bring up the "Orders for Next Bar" report.

    Another way to use your new strategy in Trade Navigator Platinum is to apply it to a chart of $Rut to visually see where the trades were placed over the history of the chart. To do this:

    1) Click on the chart.
    2) Type the letter "A."
    3) Click on the "Strategies" tab and double-click the name of the strategy in the list.

    You can also view the orders for the "next bar" report from a chart that the strategy is applied to by clicking the orders for the "next bar" button on the toolbar.

    To run the strategy on a different symbol, simply go back to the data tab in the strategy and select a new symbol. In this case, select $SPX. To see it on a chart, simply apply it to a chart of $SPX.

    Hypothesis 1 & hypothesis 2
    To recreate the strategies for hypothesis 1 and hypothesis 2 from the article, simply follow the steps above and substitute the following formulas:
     

    Hypothesis 1
    Long Entry #001 - IF Crosses Above (Close , MovingAvg (Close , 10))
     And Abs (Close - Close.1) > Abs (Close.1 - Close.2)
    Long Exit #001 - IF Crosses Below (Close , MovingAvg (Close , 5))
    Short Entry #001 - IF Crosses Below (Close , MovingAvg (Close , 10))
     And Abs (Close - Close.1) > Abs (Close.1 - Close.2)
    Short Exit #001 - IF Crosses Above (Close , MovingAvg (Close , 5))
    Hypothesis 2
    Long Entry #001 - IF Crosses Above (Close , MovingAvg (Close , 10))
     And Abs (Close - Close.1) < Abs (Close.1 - Close.2)
    Long Exit #001 - IF Crosses Below (Close , MovingAvg (Close , 5))
    Short Entry #001 - IF Crosses Below (Close , MovingAvg (Close , 10))
     And Abs (Close - Close.1) < Abs (Close.1 - Close.2)
    Short Exit #001 - IF Crosses Above (Close , MovingAvg (Close , 5))


    Alternatively, you can edit the entry rules in the first strategy to match the formulas above and click the Save As button and give it a new name.

    In Trade Navigator, you can run all three strategies on both symbols at the same time by setting them up in a Strategy Basket.

    For your convenience, we have created a special file that you can download that will add the speed strategies to Trade Navigator for you. Simply download the free special file "SandC002" using your Trade Navigator and follow the upgrade prompts.

    --Michael Herman
    Genesis Financial Technologies
    http://www.GenesisFT.com
    GO BACK
     


    METASTOCK: SPEED TRADING SYSTEM

    Gomu Vetrivel's article, "Improving Your Trading System with Speed," discusses the value of measuring speed in your trading systems. He uses a basic system as a control and two variations using speed in different ways. The MetaStock code and instructions for entering these systems are as follows:

    1. Select Tools > the Enhanced System Tester.
    2. Click New.
    3. Enter a name, "Base System"
    4. Select the Buy Order tab and enter the following formula:

    Cross( C, Mov( C, 10, S ) )

    5. Select the Sell Order tab and enter the following formula:

    Cross( Mov( C, 5, S ), C )

    6. Select the Sell Short Order tab and enter the following formula:

    Cross( Mov( C, 10, S ), C )

    7. Select the Buy to Cover Order tab and enter this formula:

    Cross( C, Mov( C, 5, S ) )

    8. Click OK to close the system editor.
    9. Click New.
    10. Enter a name, "Hypothesis 1"
    11. Select the Buy Order tab and enter the following formula:

    X:= Abs( Roc( C, 1, $ ) );
    Cross( C, Mov( C, 10, S ) ) AND X > Ref( X, -1 )

    12. Select the Sell Order tab and enter the following formula:

    Cross( Mov( C, 5, S ), C )

    13. Select the Sell Short Order tab and enter the following formula:

    X:= Abs( Roc( C, 1, $ ) );
    Cross( Mov( C, 10, S ), C ) AND X > Ref( X, -1 )

    14.Select the Buy to Cover Order tab and enter this formula:

    Cross( C, Mov( C, 5, S ) )

    15. Click OK to close the system editor.
    16. Click New.
    17. Enter a name, "Hypothesis 2"
    18. Select the Buy Order tab and enter the following formula:

    X:= Abs( Roc( C, 1, $ ) );
    Cross( C, Mov( C, 10, S ) ) AND X < Ref( X, -1 )

    19. Select the Sell Order tab and enter the following formula:

    Cross( Mov( C, 5, S ), C )

    20. Select the Sell Short Order tab and enter the following formula:

    X:= Abs( Roc( C, 1, $ ) );
    Cross( Mov( C, 10, S ), C ) AND X < Ref( X, -1 )

    21. Select the Buy to Cover Order tab and enter this formula:

    Cross( C, Mov( C, 5, S ) )

    22. Click OK to close the system editor.
     

    --William Golson
    MetaStock Support Representative
    Equis International (A Reuters Company)
    801 265-9998, www.metastock.com


    GO BACK


    TECHNIFILTER PLUS: SPEED TRADING SYSTEM

    Here are the TechniFilter Plus formulas based on Gomu Vetrivel's article in this issue, "Improve Your Trading System With Speed."
     

    Base System
    NAME: Vetrivel Base
    TEST TYPE: equal
    DATE RANGE: All
    POSITION LIMIT: none
    ENTRY FEE: 33
    EXIT FEE: 33
    ISSUES:
    INITIAL INVESTMENT: 5000
    FORMULAS--------
    
    [1] Date
    [2] SpeedTest
     [1]: (C-Cy1)u0
     [2]:  [1]<Ty1
    [3] EnterSignal
     (C-Ca10)u2-ty1
       [4] ExitSignal
      (C-Ca5)u2-ty1
    RULES--------
    
      r1: Long
           buy long all on Close
           at signal: Long     [3]=1 & shares=0
      r2: ExitLong
           stop long all on Close
           at signal: ExitLong     [4]=-1
      r3: Short
           open short all on Close
           at signal: EnterShort     [3]=-1 & shares=0
      r4: ExitShort
           stop short all on Close
           at signal: ExitShort     [4]=1
    Hypothesis 1
    NAME: Vetrivel Hyp1
    TEST TYPE: equal
    DATE RANGE: all
    POSITION LIMIT: none
    ENTRY FEE: 33
    EXIT FEE: 33
    ISSUES:
    INITIAL INVESTMENT: 5000
    FORMULAS--------
    
    [1] Date
    [2] SpeedTest
     [1]: (C-Cy1)u0
     [2]:  [1]>Ty1
    [3] EnterSignal
       (C-Ca10)u2-ty1
    [4] ExitSignal
     (C-Ca5)u2-ty1
    RULES--------
    
      r1: Long
           buy long all on Close
           at signal: Long     [3]=1 & ([2] = 1 & shares=0)
      r2: ExitLong
           stop long all on Close
           at signal: ExitLong     [4]=-1
      r3: Short
           open short all on Close
           at signal: EnterShort     [2]=1  & ([3]=-1 & shares=0)
      r4: ExitShort
           stop short all on Close
           at signal: ExitShort     [4]=1
    Hypothesis 2
    NAME: Vetrivel Hyp2
    TEST TYPE: equal
    DATE RANGE: all
    POSITION LIMIT: none
    ENTRY FEE: 33
    EXIT FEE: 33
    ISSUES:
    INITIAL INVESTMENT: 5000
    FORMULAS--------
    
    [1] Date
    [2] SpeedTest
     [1]: (C-Cy1)u0
     [2]:  [1]<Ty1
    [3] EnterSignal
     (C-Ca10)u2-ty1
    [4] ExitSignal
     (C-Ca5)u2-ty1
    RULES--------
    
      r1: Long
           buy long all on Close
           at signal: Long     [3]=1 & ([2] = 1 & shares=0)
      r2: ExitLong
           stop long all on Close
           at signal: ExitLong     [4]=-1
      r3: Short
           open short all on Close
           at signal: EnterShort     [2]=1  & ([3]=-1 & shares=0)
      r4: ExitShort
           stop short all on Close
           at signal: ExitShort     [4]=1


     A sample chart is shown in Figure 10. Visit the TechniFilter Plus website to download this strategy test.

    FIGURE 10: TECHNIFILTER PLUS, SPEED TRADING SYSTEM. Here is a sample chart of the speed trading system.
    --Benzie Pikoos, Brightspark
    +61 8 9375-1178, sales@technifilter.com
    www.technifilter.com
    GO BACK


    BIOCOMP PROFIT 7: SPEED TRADING SYSTEM

    In his article in this issue, Gomu Vetrivel demonstrates that by merely adding "speed" (that is, the absolute value of the change in price), you can improve on a simple moving average crossover system. We also found that to be true using BioComp Profit when forecasting ahead by two days.

    BioComp Profit users can easily compute the speed indicator by clicking on the traded price, then applying a "change" (CHG) and then an "absolute value" (ABS). To recreate the moving average crossover indicator, click on the traded price again and apply SMA-10, then select both that and the traded price, and apply the Diff function. Next, build models using both of these input indicators, predicting the SPX close ahead by two bars.

    While such a simple system is not a great equity builder, we see in the "Variables Report" for the system we built that about 80% of the information comes from the speed indicator, and the system made about 50% more equity with it compared to one without it.

    --Carl Cook, BioComp Systems, Inc.
    www.biocompsystems.com/profit
    952 746-5761

    GO BACK


    FINANCIAL DATA CALCULATOR: Two Moving Function Hybrids

    In my recent STOCKS & COMMODITIES article titled "The Hunt For Superior Signals: Two Moving Function Hybrids" (September 2005), I recommended that the moving slope rate of change (MSROC) be part of every trader and researcher's toolbox.

    Graphs may look smart and anecdotes may make good copy, but the real proof is the trading performance. Since I didn't have enough room in my article to present further proof of MSROC's value, allow me to illustrate a previously documented trading system and its improvement by switching the signal mechanism from a standard momentum calculation to one using the moving slope rate of change.

    One of the more popular trading systems appearing in newsletters is one in which a 12-month ROC of the NASDAQ Composite is plotted against the 12-month moving average of that ROC. The mechanics of the system are quite simple: a crossover of the 12-month ROC of the NASDAQ Composite close against its 12-month moving average will trigger either a buy (if crossing up) or an exit (if crossing down). Since 1987, this system, which was either long or out of the market, had 14 buy signals, 11 of which were winners. That profitability and the fact that the system rules are uncomplicated is the tease. However, the system would not be suitable for a professional who has to be mindful of daily drawdowns, as it is based solely on end-of-month data.

    That is, the trader is to wake up on the last trading day of the month, make a decision, and then fall asleep until the next month-end, regardless of what happens in the interim. Trading the month-end system as proposed is not impossible, but it creates huge professional liability. For example, how does a professional trader in a litigious society explain that regardless of what is happening in the world, he can only make decisions and effect trading on the last day of the month? Those same constraints, minus the fear of litigation, affect individual traders as well.

    Should one make the documented system realistic by using daily data, one would plot the 252-day ROC against the 252-day moving average of that ROC (since 252 trading days usually constitute a year). You are still comparing an annual rate of change to its annual moving average, but you now see the differences on a daily basis. When viewed in this realistic light, the number of trades increases to 45 and the winning ratio drops from 78% to 42%. As they say, sometimes realism hurts.

    The reason for the poorer performance is that the indicator chosen (rate of change), despite being smoothed with a humongous 252-day moving average, is still erratic. But if you switch from using a 252-day ROC to a 252-day MSROC, you will acquire smoothness while eliminating two-thirds of the trades. That is, by using MSROC, you drop down to 15 trades (10 of which are winners) and get to operate the system on a daily basis, and improve your trading statistics practically across the board. The statistics are shown in Figure 11:

    FIGURE 11: INDICATOR PERFORMANCE

    Testing the month-end ROC system and our two tradable variations (daily ROC and daily MSROC) on the Dow Jones and S&P 500 market indexes showed similar improvements. However, US stock market indexes have high correlations, and the fact that a successful NASDAQ trading program also worked for the Dow and the S&P 500 does not prove the system is robust. To gain comfort with our approach, we therefore ran the identical systems on other datasets representing a broader sample of market activity. The profitability improvement on all tested datasets constituting a diverse range of markets is presented in Figure 12.

    FIGURE 12: PROFITABILITY IMPROVEMENT

    The worst performer here was the Nikkei, but the proposed strategy was a long-only program, and during the test period, the Nikkei experienced a prolonged downtrend. This example was not anecdotally selected, but a published system we have improved by a simple change of the yardstick. This author does not recommend the published system, only that a trader enamored with that system consider changing the momentum measuring device to the MSROC.

    I don't have to tell this trading audience that market prices are fractal; if a market trading tool works on annual or quarterly data, it most likely works on daily or intraday data also. If you are using rate of change (ROC) or relative strength index (RSI) as a momentum tool, you ought to look at using MSROC to improve your results.

    --William Rafter, Mathematical Investment Decisions, Inc. www.mathinvestdecisions.com
    GO BACK

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


    Return to November 2005 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-2008 Technical Analysis, Inc. All rights reserved. Read our privacy statement.

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