New Members: Be sure to confirm your email address by clicking on the link that was sent to your email inbox. You will not be able to post messages until you click that link.
simple scan for etfs with annual returns over 5%
I'm trying to build a simple scan for etfs with annual returns over 5%.
Can I assume that "yield" would NOT be the correct Ticket Property since it is only for annual dividend yield?
Is there a ticket property for annual return that i can use in a scan?
what would the script look like?
0
Comments
It's a fairly complicated formula (see this link)
https://www.investopedia.com/terms/a/annual-return.asp
and I don't think the scan language designed to do that kind of calculation. Also, you would need historical data on dividends, not just the current dividend. I'm pretty sure the Stockcharts database only keeps the most recent dividend.
The finviz screener lets you screen for ETF annual return.
https://finviz.com/screener.ashx?v=191&f=etf_return_1yo05&ft=5
There may be other ETF-specific sites, too.
the data point i'm looking for is the 1 Year Performance that shows up under "Performance" view when looking at a "Chartlist".
PctChange defaults into the workbench like this:
and [PctChange(10,close) > 10]
It's asking for the Percentage change on the screen security to be greater than 10% from 10 closes ago. You can modify all three values, the period and the property to use and the percentage required.
PctDiff defaults into the workbench like this:
and [PctDiff(close,sma(50,close)) < 5]
It allows the comparison of two things on a percentage basis. The default is asking for the percentage difference between the close and the SMA 50 of the close, to be less than 5 percent apart. You can modify all the parts on this as well.
There is also the ROC or Rate of Change, further down the Technical Indicators dropdown.
ROC defaults into the workbench like this:
and [ROC(12) > 0.0]
It's asking for the difference between the current close minus the close 12 periods ago to be greater than 0 in value. ROC is expressed as a percentage.
So you have the option to use any of these to get 1 year return values.
To get the values to show in a scan results, you would need to use one as a Rank By statement.
So as you are only looking at ETFs, your 1 year return scan may look like:
// only ETFs
[group is ETF]
// To limit the results and filter out ones that haven't been around for the period
and [PctChange(251,close) > 5]
// puts the results in descending PctChange order
Rank By [PctChange(251,close)]
This results in ETFs from ALL available exchanges showing. You can limit the exchanges to use using the Ticker Properties dropdown. You could also limit even more, like to a particular ETF provider, using the Name filter in the Ticker Properties dropdown. Put your Ticker properties restriction at the top lines in the scan.
Defaults on some of the Ticker Property options:
and [exchange is NYSE]
and [region is NorthAmerica]
and [country is US]
and [name contains 'DOW']