StockFetcher Forums · Public Filter List · The Boyd Hunt Method<< >>Post Follow-up
BoydHunt
1 posts
msg #132630
Ignore BoydHunt
11/18/2016 7:59:52 PM

The Perfect Speculator by Brad Koteshwar is a relatively unknown classic in speculation. There is a fictional character, Boyd Hunt, who was a master trader and he made a lot of money from the market. In the book, he said he only consider stocks of the following criteria:

1. The stock must have made an all-time high, not just 52-week high.
2. It must have made at least 20% in 4 weeks since the last breakout to the all-time high.
3. The price cannot fall back to the previous breakout level.
4. The 52-week high must be at least twice of the 52-week low.

Here is my attempt to implement it in StockFetcher

Fetcher[set{A001, Days(high reached a new 250 day high, 250)}
set{B001, close divided by Donchian Upper Band(250,1)}
set{B002, Days(B001 above 1.05, 250)}
set{B003, B002 + 1}
set{B004, VarOffset(Donchian Upper Band(250,0), b003)}
set{C001, low divided by b004}
set{C002, Days(C001 below 1, 250)}
set{D001, Donchian Upper Band(250,0) divided by b004}
set{D002, B002 minus A001}
set{D003, C002 minus B002}
set{E001, Low divided by Donchian Center Band(250,0)}
set{E002, Donchian Upper Band(250,0) divided by Donchian Lower Band(250,0)}
set{E003, Donchian Upper Band(250,0) divided by Donchian Upper Band(250,250)}
D001 > 1.2
D002 < 25
D002 > 0
D003 > 0
E001 > 1
E002 > 2
E003 > 1
Do not draw D001
Do not draw D002
Do not draw D003
Do not draw E001
Do not draw E002
Do not draw E003
chart-time 1 year
]



seykota2017
2 posts
msg #132815
Ignore seykota2017
modified
11/26/2016 11:08:54 PM

I think your filter is too tight. I relaxed it a bit and find more winners.

Fetcher[set{A001, Donchian Upper Band(250,0) divided by Donchian Upper Band(250,25)}
set{A002, Days(A001 above 1.9,250)}
set{B002, Days(close crossed above Donchian Upper Band(250,5), 250)}
set{B003, B002 + 1}
set{B004, VarOffset(Donchian Upper Band(250,0), b003)}
set{C001, low divided by b004}
set{C002, Days(C001 below 1, 250)}
set{D002, B002 minus A002}
set{D003, C002 minus B002}
set{E001, Low divided by Donchian Center Band(250,0)}
set{E002, Donchian Upper Band(250,0) divided by Donchian Lower Band(250,0)}
set{E003, Donchian Upper Band(250,0) divided by Donchian Upper Band(250,250)}
set{E004, Close / Donchian Upper Band(250,0)}
D002 > 0
D003 > 0
E001 > 1
E002 > 2
E003 > 1
E004 > 0.75
Do not draw D002
Do not draw D003
Do not draw E001
Do not draw E002
Do not draw E003
Do not draw E004
chart-time 1 year
]


In this following version, I added an additional fundamental filter:
Fetcher[set{A001, Donchian Upper Band(250,0) divided by Donchian Upper Band(250,25)}
set{A002, Days(A001 above 1.9,250)}
set{B002, Days(close crossed above Donchian Upper Band(250,5), 250)}
set{B003, B002 + 1}
set{B004, VarOffset(Donchian Upper Band(250,0), b003)}
set{C001, low divided by b004}
set{C002, Days(C001 below 1, 250)}
set{D002, B002 minus A002}
set{D003, C002 minus B002}
set{E001, Low divided by Donchian Center Band(250,0)}
set{E002, Donchian Upper Band(250,0) divided by Donchian Lower Band(250,0)}
set{E003, Donchian Upper Band(250,0) divided by Donchian Upper Band(250,250)}
set{E004, Close / Donchian Upper Band(250,0)}
set{F001, EPS * 4}
set{F002, close / F001}
D002 > 0
D003 > 0
E001 > 1
E002 > 2
E003 > 1
E004 > 0.75
Do not draw D002
Do not draw D003
Do not draw E001
Do not draw E002
Do not draw E003
Do not draw E004
chart-time 1 year
F002 > 0
F002 < 50
]



davidricardo2017
4 posts
msg #133017
Ignore davidricardo2017
modified
12/2/2016 7:30:58 PM

I think you both are making it more complicated than it should. It is better to write a simple filter to avoid filtering out good stocks. Here is my take:

Fetcher[close gained more than 100% in last 200 days
close 500 day high gained more than 20% in last 100 days
close crossed above Donchian Upper Band(20,5)
ROC(1,1) reached a new 10 day high
Volume reached a new 5 day high
market not OTCBB
chart-time 2 year
do not draw close 500 day high
do not draw close 20 day low
do not draw Donchian Upper Band(20,5)
do not draw ROC(1,1)
do not draw ROC(1,1) 2 week high
do not draw volume 1 week high
draw MA(50)
draw MA(200)
]



peterbrandt2017
1 posts
msg #133095
Ignore peterbrandt2017
12/7/2016 9:07:08 AM

Try this:

Fetcher[set{Var_A, close 500 day high divided by close 500 day high 20 days ago}
set{Var_B, days(Var_A crossed above 1.2,100)}
set{Var_D, VarOffset(close 500 day high 21 days ago,Var_B)}
set{Var_E, count(close below Var_D,100)}
set{Var_F, VarOffset(close 500 day high,Var_B)}
market not OTCBB
close 500 day high divided by close 500 day low above 2
close divided by close 500 day high above 0.7
Var_B above 0
Var_E above Var_B
Var_F divided by close 500 day high above 0.8
do not draw close 500 day high divided by close 500 day low
do not draw close divided by close 500 day high
do not draw Var_B
do not draw Var_E
do not draw Var_F divided by close 500 day high
draw MA(50)
draw MA(200)
chart-time 2 year
]



grasshopper2018
2 posts
msg #133245
Ignore grasshopper2018
12/15/2016 10:59:26 AM

Fetcher[set{Var_A, close 500 day high divided by close 500 day high 20 days ago}
set{Var_B, days(Var_A crossed above 1.2,250)}
set{Var_D, VarOffset(close 500 day high 21 days ago,Var_B)}
set{Var_E, days(close below Var_D,250)}
set{Var_F, VarOffset(close 500 day high,Var_B)}
market not OTCBB
close 500 day high divided by close 500 day low above 2
close divided by close 500 day high above 0.7
Var_B above 0
Var_E above Var_B
Var_F divided by close 500 day high above 0.8
do not draw close 500 day high divided by close 500 day low
do not draw close divided by close 500 day high
do not draw Var_B
do not draw Var_E
do not draw Var_F divided by close 500 day high
draw MA(50)
draw MA(200)
chart-time 2 year
]



grasshopper2018
2 posts
msg #133278
Ignore grasshopper2018
modified
12/18/2016 6:57:34 PM

Or this:

Fetcher[set{Var_A, close 500 day high divided by close 500 day high 20 days ago}
set{Var_B, days(Var_A crossed above 1.09,250)}
set{Var_D, VarOffset(close 500 day high 21 days ago,Var_B)}
set{Var_E, days(close below Var_D,250)}
set{Var_F, VarOffset(close 500 day high,Var_B)}
market not OTCBB
close 500 day high divided by close 500 day low above 2
close divided by close 500 day high above 0.7
Var_B above 0
Var_E above Var_B
Var_F divided by close 500 day high above 0.8
do not draw close 500 day high divided by close 500 day low
do not draw close divided by close 500 day high
do not draw Var_B
do not draw Var_E
do not draw Var_F divided by close 500 day high
draw MA(50)
draw MA(200)
chart-time 2 year
chart-type OHLC
]



kundalin1
2 posts
msg #133401
Ignore kundalin1
12/26/2016 10:13:39 AM

Add a fundamental filter maybe?

Fetcher[set{Var_A, close 500 day high divided by close 500 day high 20 days ago}
set{Var_B, days(Var_A crossed above 1.09,250)}
set{Var_D, VarOffset(close 500 day high 21 days ago,Var_B)}
set{Var_E, days(close below Var_D,250)}
set{Var_F, VarOffset(close 500 day high,Var_B)}
market not OTCBB
close 500 day high divided by close 500 day low above 2
close divided by close 500 day high above 0.7
Var_B above 0
Var_E above Var_B
Var_F divided by close 500 day high above 0.8
EPS above EPS lastQ
EPS above 0
do not draw close 500 day high divided by close 500 day low
do not draw close divided by close 500 day high
do not draw Var_B
do not draw Var_E
do not draw Var_F divided by close 500 day high
draw MA(50)
draw MA(200)
chart-time 2 year
chart-type OHLC
]



n0rsefire
4 posts
msg #133630
Ignore n0rsefire
1/9/2017 12:11:26 AM

It is a great filter for momentum traders.

candy.wong
1 posts
msg #133784
Ignore candy.wong
1/18/2017 7:49:25 AM

I am wondering if the filter can be simplified like this:

Fetcher[market not OTCBB
market not ETF
high 500 day high divided by high 500 day high 20 days ago crossed above 1.09 in the last 100 days
high 250 day high divided by low 250 day low above 2
low 20 day low divided by high 500 day high above 0.7
MA(50) above MA(200)
Aroon Up(25) below 60
do not draw low 20 day low divided by high 500 day high
do not draw high 500 day high divided by high 500 day high 20 days ago
do not draw high 500 day high divided by high 500 day high 20 days ago line at 1.09
do not draw high 250 day high divided by low 250 day low
do not draw Aroon Up(25)
chart-time 2 year
chart-type OHLC
]



Here is a modification that I like:

Fetcher[market not OTCBB
market not ETF
close 500 day high divided by close 500 day high 20 days ago crossed above 1.09 in the last 100 days
close 150 day high divided by close 150 day low above 2
close 20 day low divided by close 500 day high above 0.7
MA(50) above MA(200)
Aroon Up(25) below 60
do not draw close 20 day low divided by close 500 day high
do not draw close 500 day high divided by close 500 day high 20 days ago
do not draw close 500 day high divided by close 500 day high 20 days ago line at 1.09
do not draw close 150 day high divided by close 150 day low
do not draw Aroon Up(25)
chart-time 2 year
chart-type OHLC
]



manifestation
5 posts
msg #149275
Ignore manifestation
modified
10/3/2019 9:54:07 AM

Bullish:

Fetcher[
set{ROC10_Low, Donchian Lower Band(60,0) divided by Donchian Lower Band(60,10)}
set{ROC10_High, Donchian Upper Band(60,0) divided by Donchian Upper Band(60,10)}
set{Range10, Donchian Upper Band(10,0) minus Donchian Lower Band(10,0)}
Market is not ETF
Close is above 10
MA(20) is above MA(50) for the last 15 days
Close is above MA(50) for the last 15 days
Close is above MA(200)
Stochastic %D(20,3,3) is above 70
ROC10_High reached a new 20 day high within the last 40 days
ROC10_High crossed above 1.1 within the last 40 days
Bollinger Width(10,2) is below Range10
Aroon Up(20) is below 80
ROC(5) is above -11 within the last 20 days
Draw ind(^SPX, Stochastic %K(20,3,3))
Draw ind(^SPX, Stochastic %K(20,3,3)) line at 25
Draw ind(^SPX, Stochastic %K(20,3,3)) line at 75
Do not draw Bollinger Width(10,2)
Do not draw Donchian Channels(10,0)
Do not draw Stochastic %D(20,3,3)
Do not draw Aroon Down(20)
Do not draw ROC10_Low
Do not draw ROC10_High 4 week high
Do not draw ROC10_High
Do not draw Range10
Do not draw ROC(5)
Do not draw ROC10_High line at 1.1
]



Bearish

Fetcher[set{ROC10_Low, Donchian Lower Band(60,0) divided by Donchian Lower Band(60,10)}
set{ROC10_High, Donchian Upper Band(60,0) divided by Donchian Upper Band(60,10)}
set{Range10, Donchian Upper Band(10,0) minus Donchian Lower Band(10,0)}
Market is not ETF
Close is above 10
MA(20) is below MA(50) for the last 15 days
Close is below MA(50) for the last 15 days
Close is below MA(200)
Stochastic %D(20,3,3) is below 30
ROC10_Low reached a new 20 day low within the last 40 days
ROC10_Low crossed below 0.9 within the last 40 days
Bollinger Width(10,2) is below Range10
Aroon Down(20) is below 80
ROC(5) is below 11 within the last 20 days
Draw ind(^SPX, Stochastic %K(20,3,3))
Draw ind(^SPX, Stochastic %K(20,3,3)) line at 25
Draw ind(^SPX, Stochastic %K(20,3,3)) line at 75
Do not draw Bollinger Width(10,2)
Do not draw Donchian Channels(10,0)
Do not draw Stochastic %D(20,3,3)
Do not draw Aroon Down(20)
Do not draw ROC10_Low
Do not draw ROC10_Low 4 week low
Do not draw ROC10_High
Do not draw Range10
Do not draw ROC(5)
Do not draw ROC10_Low line at 0.9
]



StockFetcher Forums · Public Filter List · The Boyd Hunt Method<< >>Post Follow-up

*** Disclaimer *** StockFetcher.com does not endorse or suggest any of the securities which are returned in any of the searches or filters. They are provided purely for informational and research purposes. StockFetcher.com does not recommend particular securities. StockFetcher.com, Vestyl Software, L.L.C. and involved content providers shall not be liable for any errors or delays in the content, or for any actions taken based on the content.


Copyright 2018 - Vestyl Software L.L.C.Terms of Service | License | Questions or comments? Contact Us
EOD Data sources: DDFPlus & CSI Data Quotes delayed during active market hours. Delay times are at least 15 mins for NASDAQ, 20 mins for NYSE and Amex. Delayed intraday data provided by DDFPlus