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