Australian (ASX) Stock Market Forum

Backtesting based on fundamental data

Joined
20 June 2005
Posts
135
Reactions
0
Anyone been successful in backtesting based on fundamental data (pe ratio, dividend yield, debt ratio etc.) as opposed to more conventional bactesting on technical data (price, volume etc)

Lets just say I wanted to compare
-25% lowest p/e stocks vs the index
or
-top 20 by debt yield vs the lowest in the asx200
or
-top 20 stocks by shareholder yield vs the index

Any ideas on how I'd go about sourcing the data? No problem doing some excel manipulation/calcs but don't really want to source the raw data line by line
 
Anyone been successful in backtesting based on fundamental data (pe ratio, dividend yield, debt ratio etc.) as opposed to more conventional bactesting on technical data (price, volume etc)

Lets just say I wanted to compare
-25% lowest p/e stocks vs the index
or
-top 20 by debt yield vs the lowest in the asx200
or
-top 20 stocks by shareholder yield vs the index

Any ideas on how I'd go about sourcing the data? No problem doing some excel manipulation/calcs but don't really want to source the raw data line by line


Yes. Bloody nice to meet you.

Data sources for commercial grade systems are sourced from FactSet, Bloomberg and/or CapIQ. Each of these is around $15-$25k per annum. Or you can peruse annual reports and spend the rest of your natural life entering data. You will have next to no chance getting much done in Excel beyond simple sorts and will need stronger systems to process the data. If all you can achieve are simple sorts before moving to full signal processing, you stand the high risk of thinking you have found something and actually not, or the converse. This is very very important. As you build your database, you will need to be mindful of UniqueIDs and may have to create your own keys.

All the best with it. Keep us posted with your ... um...posts.
 
Anyone been successful in backtesting based on fundamental data (pe ratio, dividend yield, debt ratio etc.) as opposed to more conventional bactesting on technical data (price, volume etc)

Lets just say I wanted to compare
-25% lowest p/e stocks vs the index
or
-top 20 by debt yield vs the lowest in the asx200
or
-top 20 stocks by shareholder yield vs the index

Any ideas on how I'd go about sourcing the data? No problem doing some excel manipulation/calcs but don't really want to source the raw data line by line

As a first guess, I'd say you can't avoid extensive manual collation.
The problem with all the fundamentals you mention lies in the fact that it's not sufficient to have e.g. historic ex-div dates, but you'll need to consider when exactly new figures have become available.
Take the example of TPC: ex-div 3cFF on May 1st; but it had been mooted several weeks ago and the punters that paid attention then would've gone in well below 10c. How do you assess that when you back-test in a year's time?
 
Anyone been successful in backtesting based on fundamental data (pe ratio, dividend yield, debt ratio etc.) as opposed to more conventional bactesting on technical data (price, volume etc)

Lets just say I wanted to compare
-25% lowest p/e stocks vs the index
or
-top 20 by debt yield vs the lowest in the asx200
or
-top 20 stocks by shareholder yield vs the index

Any ideas on how I'd go about sourcing the data? No problem doing some excel manipulation/calcs but don't really want to source the raw data line by line



That's really clever.

Though you might also want to measure other factors than just PE or dividend yield... say see how investments or new product launches has impact dividend yield, or profit margin.

But as retired young said, it's not easy or cheap to get these information... not now anyway :p
 
As a first guess, I'd say you can't avoid extensive manual collation.
The problem with all the fundamentals you mention lies in the fact that it's not sufficient to have e.g. historic ex-div dates, but you'll need to consider when exactly new figures have become available.
Take the example of TPC: ex-div 3cFF on May 1st; but it had been mooted several weeks ago and the punters that paid attention then would've gone in well below 10c. How do you assess that when you back-test in a year's time?

Well spotted. Couple of things:

1. There are 'as reported' databases around. These are useful for macro analysis where announcements are often revised subsequently. Eg. US GDP has three announcements for each quarter, each a revision of the previous one. Most databases will print only the final for history.

2. For the dividend expectations example, these can be obtained from historical files of analyst expectations. Here, you are going to be able to get some off the data vendors. But if you are serious, you are going to need contacts or pay money to the major brokers for access to the data and to keep it current. Access to this stuff is normally reserved to insto. Hence, the analysis available to the general punter asking such questions - who presumably is unable to get analyst expectations data through history, you can only work off historical data for the most part and hope that provides you with some sort of an edge.

As it turns out, it does. That's for Jet to find out. Enjoy the journey.
 
Welcome to my playground!

You can read my thread, where I've posted some of my backtesting results (page 10 for Price/Book and 14 for Alt Z).

I am afraid I am not aware of any way that you can easily do it yourself.

I wrote the software from scratch. There was nothing like it in Australia that I could find. There's some kits in overseas markets, but they all had limitations I didn't like. You can do some of the functionality in Excel, but only for simpler tests.

On the data side, it gets worse - all data feeds that I could find were rediculously expensive and most of them did not provide all the data that I needed. The best data available probably belongs to brokers/funds, where it is manually entered, but is proprietary. In the end, I've ended up just using my manually entered data. Lots of work, but wasn't as bad for me, since I've already recorded that data whenever I'd research a new company.

In addition to my posts, here's a quick demo of my software:
https://www.youtube.com/watch?v=a85bD6iXBVc&feature=player_embedded

As far as timing issues go, yes, one certainly needs to be aware of them. There's a number of approaches:
1. Ignore them all together. Just buy and sell on numbers, ignoring any announcement, etc. This has more merit that may seem at first. Yes, some annoucements provide guidance on changed fundamentals in the future, but some are just distraction. From an automation perspective, it's hard to tell which is which.
2. Record them in your data. There's been some great studies done on announcements and market reaction. It is striking how different those reactions are for cheap vs expensive stocks.
3. Limit buy/sell decisions to times of low announcement activity, eg. not in the leading 1-2 months to a report.

Feel free to ask any questions, this is one topic I love talking about!
 
Welcome to my playground!

You can read my thread, where I've posted some of my backtesting results (page 10 for Price/Book and 14 for Alt Z).

I am afraid I am not aware of any way that you can easily do it yourself.

I wrote the software from scratch. There was nothing like it in Australia that I could find. There's some kits in overseas markets, but they all had limitations I didn't like. You can do some of the functionality in Excel, but only for simpler tests.

On the data side, it gets worse - all data feeds that I could find were rediculously expensive and most of them did not provide all the data that I needed. The best data available probably belongs to brokers/funds, where it is manually entered, but is proprietary. In the end, I've ended up just using my manually entered data. Lots of work, but wasn't as bad for me, since I've already recorded that data whenever I'd research a new company.

In addition to my posts, here's a quick demo of my software:
https://www.youtube.com/watch?v=a85bD6iXBVc&feature=player_embedded

As far as timing issues go, yes, one certainly needs to be aware of them. There's a number of approaches:
1. Ignore them all together. Just buy and sell on numbers, ignoring any announcement, etc. This has more merit that may seem at first. Yes, some annoucements provide guidance on changed fundamentals in the future, but some are just distraction. From an automation perspective, it's hard to tell which is which.
2. Record them in your data. There's been some great studies done on announcements and market reaction. It is striking how different those reactions are for cheap vs expensive stocks.
3. Limit buy/sell decisions to times of low announcement activity, eg. not in the leading 1-2 months to a report.

Feel free to ask any questions, this is one topic I love talking about!


Who are you Batman?
 
???

Robin?

Just checked out your YouTube. Great stuff. Just wondering what your background is and how you invest etc... The average human being does not produce what you have done. So I am curious. Hats off to you.

Alfred
 
Just checked out your YouTube. Great stuff. Just wondering what your background is and how you invest etc... The average human being does not produce what you have done. So I am curious. Hats off to you.

Alfred

Thanks Alfred, you are too kind.

I've "played" in the stock market since late 90's, but didn't put much effort into it until about 7-8 years ago, when I started managing my own super. I was always oriented more towards fundamentals, and most of efforts have been to find undervalued companies from that perspective. I have achieved a return a few percent above the indexes in this time, which I was happy with, given the severe position restrictions my super imposed.

Automated strategies, backed by backtesting is something that I've always leaned towards, but didn't embrace fully until fairly recently. My experience kept telling me that even though my results were good, they would have been better if I didn't try to pick the best prospects, but simply bought everything in my filters.

I look at what I've done as a product of multiple coincidences.
1. I've been in the market for a long time, trying different things.
2. The way I conducted research, I already had a lot of data entered over the years.
3. My profession is software development, mostly in financials area. Quite a bit of it in storing and analyzing financials. So writing software to store my research + financials was not as difficult of a task.
4. Initially when I wrote the software, it wasn't for backtesting, but just as a convenient place to store my entered data instead of Excel. I kept adding features to it, but because it happened over many years, it never felt like a huge amount of work.
5. A few lucky design decisions made the data flexible enough so that it could be used for other purposes. So, when my backtesting idea came along, I already had 90% in place for it.

If I didn't have almost everything in place by the time I decided to implement back testing, I would have never started doing it, way too much work doing it from scratch for someone with as little capital as me. But, due to sheer luck, everything fell in place to make it happen.

I have recently decided to run a fully public portfolio, documenting all my investments in real time. You can follow my adventure in my thread:
https://www.aussiestockforums.com/forums/showthread.php?t=26890
 
Welcome to my playground!

You can read my thread, where I've posted some of my backtesting results (page 10 for Price/Book and 14 for Alt Z).

I am afraid I am not aware of any way that you can easily do it yourself.

I wrote the software from scratch. There was nothing like it in Australia that I could find. There's some kits in overseas markets, but they all had limitations I didn't like. You can do some of the functionality in Excel, but only for simpler tests.

On the data side, it gets worse - all data feeds that I could find were rediculously expensive and most of them did not provide all the data that I needed. The best data available probably belongs to brokers/funds, where it is manually entered, but is proprietary. In the end, I've ended up just using my manually entered data. Lots of work, but wasn't as bad for me, since I've already recorded that data whenever I'd research a new company.

In addition to my posts, here's a quick demo of my software:
https://www.youtube.com/watch?v=a85bD6iXBVc&feature=player_embedded

As far as timing issues go, yes, one certainly needs to be aware of them. There's a number of approaches:
1. Ignore them all together. Just buy and sell on numbers, ignoring any announcement, etc. This has more merit that may seem at first. Yes, some annoucements provide guidance on changed fundamentals in the future, but some are just distraction. From an automation perspective, it's hard to tell which is which.
2. Record them in your data. There's been some great studies done on announcements and market reaction. It is striking how different those reactions are for cheap vs expensive stocks.
3. Limit buy/sell decisions to times of low announcement activity, eg. not in the leading 1-2 months to a report.

Feel free to ask any questions, this is one topic I love talking about!


Are there any fundamental-based software out there?
How much would an investor be willing to pay for a good one?

Seems there's Charting, and some so called Fundamentals that basically give you the figures.. and by the look of it, those figures are bought from S&P or Morningstar and rearranged.
 
Are there any fundamental-based software out there?
How much would an investor be willing to pay for a good one?

Seems there's Charting, and some so called Fundamentals that basically give you the figures.. and by the look of it, those figures are bought from S&P or Morningstar and rearranged.

As a retail investor with a small budget, I couldn't find anything.

I don't know about larger funds, but I suspect most of them don't use anything similar either.
 
Thanks Alfred, you are too kind.

I've "played" in the stock market since late 90's, but didn't put much effort into it until about 7-8 years ago, when I started managing my own super. I was always oriented more towards fundamentals, and most of efforts have been to find undervalued companies from that perspective. I have achieved a return a few percent above the indexes in this time, which I was happy with, given the severe position restrictions my super imposed.

Automated strategies, backed by backtesting is something that I've always leaned towards, but didn't embrace fully until fairly recently. My experience kept telling me that even though my results were good, they would have been better if I didn't try to pick the best prospects, but simply bought everything in my filters.

I look at what I've done as a product of multiple coincidences.
1. I've been in the market for a long time, trying different things.
2. The way I conducted research, I already had a lot of data entered over the years.
3. My profession is software development, mostly in financials area. Quite a bit of it in storing and analyzing financials. So writing software to store my research + financials was not as difficult of a task.
4. Initially when I wrote the software, it wasn't for backtesting, but just as a convenient place to store my entered data instead of Excel. I kept adding features to it, but because it happened over many years, it never felt like a huge amount of work.
5. A few lucky design decisions made the data flexible enough so that it could be used for other purposes. So, when my backtesting idea came along, I already had 90% in place for it.

If I didn't have almost everything in place by the time I decided to implement back testing, I would have never started doing it, way too much work doing it from scratch for someone with as little capital as me. But, due to sheer luck, everything fell in place to make it happen.

I have recently decided to run a fully public portfolio, documenting all my investments in real time. You can follow my adventure in my thread:
https://www.aussiestockforums.com/forums/showthread.php?t=26890

You've accomplished great things and your thread is loaded with wisdom and contemplation from yourself and others. What a catalyst you've been. I am just so pleased to find you because you work in an evidence-based framework with hard data. Plus you've built a useful univariate analysis tool from scratch. Not too shabby at all. Bloody awesome in fact.

1. Did you work in a funds management environment as a developer?

2. What's your latest area of investigation?
 
As a retail investor with a small budget, I couldn't find anything.

I don't know about larger funds, but I suspect most of them don't use anything similar either.

There are pre-canned systems out there which fill fundamental data and time series data and then allow you to manipulate it within reason for basics. These will cost upwards of USD 50k per annum. And, KTP, that's just part of the reason why you are a genius in the flesh.
 
There are pre-canned systems out there which fill fundamental data and time series data and then allow you to manipulate it within reason for basics. These will cost upwards of USD 50k per annum. And, KTP, that's just part of the reason why you are a genius in the flesh.

I thought you wrote $50 per year... but it's 50k, as in $50 000, in US dollars.


Pre-canned results are no good.
I've used them, but that's mainly because I don't know any better, and it's free. But to pay $50K... I'll stick to excel.
 
Thanks for all the replies, looks like it will be more difficult than I first thought.

I've been impressed with Meb Faber's work and it had given me a few ideas to play around with.

KnowThePast, very impressed with your software, some SERIOUS work has gone into that.

I've coded a really basic backtester in the past using C#/SQL backend but nothing that smooth (threading made my head spin) or anywhere near as advanced.

The best free Aussie data I found was morningstar http://financials.morningstar.com/ratios/r.html?t=XASX:CBA&region=AUS which wouldn't be hard to scrape, but it only goes back 10 years.

The US computstat looks very impressive (and pricey). I read somewhere on a forum that if you joined an investing club you could get access, which I'll look into when I get some spare time.
 
I thought you wrote $50 per year... but it's 50k, as in $50 000, in US dollars.


Pre-canned results are no good.
I've used them, but that's mainly because I don't know any better, and it's free. But to pay $50K... I'll stick to excel.


USD 50k pa yep. I was unclear. The platform is pre-canned. That is, you buy it and it's ready to go. The results are whatever you happen to be researching. The platform gathers the data and manipulates it. This data management and manipulation is hard to achieve and you'll find that if you are using Excel. They don't provide pre-canned factors unless you are seeking factor returns from commercial risk systems. If you are, these will cost about USD$80k pa more.

Most of the above is sometimes used as a step phase for privately built engines which will cost millions to develop, often with proprietary data to boot.

It's pretty much out of the league of the average punter. Maybe you can group up and share the costs and combine research? If you work this out, it might make sense relative to the cost of time that you would spend developing and maintaining your own systems.
 
USD 50k pa yep. I was unclear. The platform is pre-canned. That is, you buy it and it's ready to go. The results are whatever you happen to be researching. The platform gathers the data and manipulates it. This data management and manipulation is hard to achieve and you'll find that if you are using Excel. They don't provide pre-canned factors unless you are seeking factor returns from commercial risk systems. If you are, these will cost about USD$80k pa more.

Most of the above is sometimes used as a step phase for privately built engines which will cost millions to develop, often with proprietary data to boot.

It's pretty much out of the league of the average punter. Maybe you can group up and share the costs and combine research? If you work this out, it might make sense relative to the cost of time that you would spend developing and maintaining your own systems.


What is proprietary data? Raw financial data they entered themselves?

Are you talking about the Bloomberg terminal or some other system?

How do you know so much about these? From your research or work RY?

---

Can imagine it costing a fortune to develop your own system. The big fund managers probably have them, we hope... not sure what the botique guys uses.

Hey Batman, do you know?

will check out your youtube when my bandwidth's back... too blurry for me at moment.
 
1. What is proprietary data? Raw financial data they entered themselves?

2. Are you talking about the Bloomberg terminal or some other system?

3. How do you know so much about these? From your research or work RY?

1. Data that you create internally and which is not available to the general public unless they did the same thing as you. This stuff can be utterly amazing. But that's what you get paid for and this is where the biggest edges are obtained from. For example, when RMBS became a real phenom, most people used aggregate default rates in their valuations. This was approximately right. But, some investors went to the enormous effort of finding out default rates by suburb which gave them an ability to value them more accurately. This info was not generally available, although the pieces are public. It is not insider trading. Today, this stuff has gone through the stratosphere.

2. CapIq, FactSet...

3. I used to use this type of stuff as decision aids before I retired, my team built one of those multi-million dollar developments which took two years to achieve - oh, the pain - and it was state of the art at the time. But I'm not a developer. Now I have my own baby version.
 
Greetings --

Visit this web page:
http://www.blueowlpress.com/WordPress/links/#books
Just a few entries down from the top of this section is a link to a paper --
"Bandy, Howard, Use of Fundamental Data in Active Investing, pdf file, 2009."
Click the link, and you will open a 30 page pdf file with some of my thoughts on using fundamental data.

The executive summary is that it is not useful because:
1. Granularity of reports is too sparse.
2. Delay between corporate or government action and reporting is too great.
3. Revisions are too numerous.
4. The agenda of the reporter is unknowable.

In addition, there are a few comments about data in the introductory chapter of my forthcoming book. Visit this web page:
http://www.quantitativetechnicalanalysis.com/book.html
Click the link to Introduction, and you will open a 13 page pdf document.

One of the conclusions of the analysis of risk -- not shown in that introductory chapter, but discussed in the full book and in my presentations at the ATAA in Melbourne May 2014 -- is that the data series being traded inherently establishes the upper limit of profit potential, even before a trading system is applied to it. Rapid response to changes in the data, along with short holding periods, are required to extract profit without encountering unacceptably high risk. These trades are typically much shorter than the period between reports of fundamental data. Fundamental data could not be used to generate signals for them.

Best regards,
Howard
 
Top