Welcome Guest, please sign in to participate in a discussion. | Search | Active Topics | |
Gold Customer
Joined: 4/10/2006 Posts: 954
|
This is another play on the TD profile with a substitution of CCI new high for TSV BB breakout.
Here you can see the setup as a break below the
1 LBB20 followed by a crossing up of the LBB20
2 CCI today greater than CCI 20 days ago.
The backtest shows 350 stocks from the Russel 1000, 96% - however not adjusted as JAS would have done...He makes some type of adjustment due to the backtest results not computed properly.
3.8 winning ratio 5662 trades. with 1849 wins, 3803 losers
My intent was to run it against russell 1000, filtered by price > 10 (50d ma) , and volume > 500000 (50d, ma) about 765 items. Here is that avg yearly return = post that below.
|
|
Gold Customer
Joined: 4/10/2006 Posts: 954
|
Russell 1000 backtest filtered for volume, price
|
|
Registered User Joined: 12/31/2005 Posts: 2,499
|
As a point of comparison here is a run against the Russell 1000 of random trade, exit after 18 days.
So it appears they are pretty close in performance. I would prefer to see a strategy beating the Random bechmark by a wider margin.
|
|
Gold Customer
Joined: 4/10/2006 Posts: 954
|
Jas,
How do you construct the random trade, backtest ?
Thanks.
|
|
Registered User Joined: 12/31/2005 Posts: 2,499
|
QUOTE (wwrightjuly4)
Jas,
How do you construct the random trade, backtest ?
Thanks.
I use a random number condition as the entry signal. Below is the code, where percent is the chance that the condition passes. For the random benchmark in the previous post, percent was 0.0055 or .55%, to get the approximate count of the original backscan.
'
'# percent = userinput.Single = 5.0
'
Static objRandom As System.Random
Static pastFirstTime As Boolean
Dim val As Integer
Static max As Integer
Dim newMax As Integer
Const range As Integer = 1000
If Me.isFirstBar Then
newMax = range * (100 - percent) / 100
If Not pastFirstTime Or newMax <> max Then
objRandom = New system.random( _
CType(System.DateTime.Now.Ticks _
Mod System.Int32.MaxValue, Integer))
max = range * (100 - percent) / 100
'log.info(currentsymbol & "===== Max=" & max.ToString("0"))
pastFirstTime = True
End If
End If
val = objRandom.Next(range)
If val > max Then
pass
'log.info(" +++ Rand ====" & val)
End If
|
|
Gold Customer
Joined: 4/10/2006 Posts: 954
|
Thanks. I appreciate your help.
|
|
Guest-1 |