StockFetcher Forums · Filter Exchange · Help designing efficient stock filter (Van Tharp)<< >>Post Follow-up
ryannichols
6 posts
msg #51795
Ignore ryannichols
5/25/2007 12:39:58 AM

I have been trying to develope a filter with no luck based on Van Tharps efficient stock filter found in "Safe Strategies for Financial Freedom". The strategy looks at the change in price over four different periods, 20, 45, 90 and 180 days. The change in price is then divided by the average true range over the same periods.

They were working on it here: http://www.worden.com/training/default.aspx?g=posts&m=89557

nikoschopen
2,824 posts
msg #51797
Ignore nikoschopen
5/25/2007 1:55:03 AM

This is fairly easy stuff. The stripped-down formula reads more or less as

EF = {C - C(60)} / ATR(60)

Hence, it goes something like this:

Fetcher[
/*60-day price range*/
set{Range, close - close 60 days ago}

/*average day range*/
set{ADR, sum(day point range,60) / 60}

/*efficiency ratio*/
set{EF, Range / ADR}

/*Tharp sez on P.107: "anything with a ratio over 15 is usually worth looking at more closely"*/
EF above 15

add column Range
add column ADR
add column EF
sort column 7 ascending
]



ryannichols
6 posts
msg #51804
Ignore ryannichols
5/25/2007 6:44:46 PM

Thanks for taking the time. What is ADR? why not skip that and go directly to set{EF, Range / atr(60)}? One more - is there a average function?

nikoschopen
2,824 posts
msg #51808
Ignore nikoschopen
5/25/2007 10:20:29 PM

Here's a definition of Average True Range (ATR) given by Stockfetcher:

Using the relationships between the high and low of a day compared with the previous close, the Average True Range is a measure of volatility developed by Welles Wilder. (Italics added)

Obviously, that's not the same as what Van Tharp wrote in the book. What Tharp was talking about was the average of the daily ranges for the past 60 days. Therefore, I calculated the "mean" by adding the daily range for the last 60 days (eg. 50-cents move on day 1, 70-cents on day 2 ... 40-cents day 60) and then dividing the sum by 60. As such, I ended up with the Average Daily Range (ADR):

set{ADR, sum(day point range,60) / 60}

As for the average() function, you have the Average Day Range and Average Volume

kia007
8 posts
msg #122501
Ignore kia007
1/10/2015 5:32:52 PM

How do you formulate a recent increase of 10 points in the EF?
Thanks, Marc

StockFetcher Forums · Filter Exchange · Help designing efficient stock filter (Van Tharp)<< >>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 2022 - 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


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.