PyInvesting

Helping investors beat the market.


Ivann Fok
3 weeks, 1 day ago · 563 Views

WRITTEN BY

Ivann Fok

Ivan is the founder of PyInvesting.com. He is passionate about technology and finance and has worked as a software developer at a hedge fund where he was responsible for building the fund's trading system. He hopes that PyInvesting will help investors adopt a data driven approach to investing and support them in their journey towards financial freedom.


I'm up 42% this year despite Covid. Here's how I did it.
Yes, this is a snapshot of my Interactive Brokers account. If you are an investor in the stock market, this year has been quite the ride for you. The market plunged 35% within a span of a single month from February to March this year. Shortly after, we saw a V shape recovery in the market straight back to its all time high. This was followed by increased volatility from September onwards as we head towards US elections. Despite the huge volatility in the stock market, my portfolio has done decently well this year with a return of 42.1% vs the S&P 500 which is up 9.4%. In addition, the portfolio had a significantly lower drawdown of 11%. Here’s how I did it. Data Driven Investing As a DIY investor, I use a data driven approach when it comes to investing. No emotional trading out of fear or greed. No reaction to news headlines. And most certainly, no decisions to trade because I “felt” this stock was going to go up. All investment decisions to buy or sell a stock are made many months in advance based on my trading rules so I don’t need to scramble when markets get volatile. I hate scrambling. It’s much easier to execute a trading plan in a calm and emotionless manner using trading rules that have an edge in the market. How do I know my trading rules work? You guessed it. I backtest my investment strategy which gives me the confidence to bet my hard earned money in the stock market. Next I go live with my strategy on PyInvesting which implements my strategy by pulling live prices daily and generating orders for me to trade on my Interactive Brokers account. All I need to do is to open my email and execute the trades. Moving on, what investment strategy do I use? Trend Following I’m a simple guy. I buy stocks that have been going up and I sell stocks that have been going down. It’s called trend following. Trends exist everywhere. We have fashion trends, social trends, weather trends, heck in this age of technology we even have Google search trends. Similarly, trends exist in the stock market. Statistics show that when a stock has been going up for a period of 6 to 12 months, it tends to continue going up. There are many behavioral reasons for this effect such as herding where people tend to follow the crowd’s sentiment because the terrible feeling that comes with making a loss are muted by the fact that everyone suffered a loss in their investment as well. I identify trends using moving averages. A moving average is an average of prices within a window of time (black line). When a stock’s price is above its moving average, it means that the stock is trending upwards. Conversely when its price is below its moving average, the stock is trending downwards. Apple’s stock price with its 200 day moving average (200MA) We have fast moving averages (where the look back period is usually less than 50 days) to measure short term trends and slow moving averages (look back period longer than 100 days) to measure long term trends. Longer term trends are more stable and less noisy. Hence the 200 day moving average (200MA) is where I draw the line in the sand. Any stock that is above its 200 day moving average, I will consider to include in my portfolio. Any stock that is below its 200 day moving average, I will sell if the stock is in my portfolio. Fundamental Analysis After filtering for stocks in a long term uptrend, I rank the stocks using fundamental analysis. This is done by creating a signal for each stock based on their fundamental data. I use 3 factors to create my signal. The first factor is price to earnings (PE ratio) which is a measure of the company’s valuation. The lower the PE ratio, the cheaper the stock relative to its earnings which is great for investors. After all, who doesn’t like a nice discount? The second factor is the return on equity (ROE) which the company’s net income divided by its shareholder’s equity. ROE is a measure of how efficiently a company is able to use its resources. High quality companies tend to have high ROE. The third factor is profit growth which is a measure of how quickly a company is able to grow its profits. The value of your stock is highly correlated to the earnings of a company. Companies that are able to grow their earnings quickly tend to produce huge returns on their stock prices. By combining both technical and fundamental analysis, we are able to filter, rank and select the best stocks to include in our portfolio. Active Risk Management The next step is to apply an active risk management system based on market sentiment to protect our portfolio during a crisis. The main idea here is that we want to take on more risk and hold more stocks when market sentiment is bullish. This is because during a bullish regime, markets tend to reward investors for staying invested. In contrast, when market sentiment is bearish, we want to take less risk by raising our cash allocation and holding fewer stocks. This is to protect our portfolio from suffering huge drawdowns. For example, during March this year, my portfolio was almost completely in cash as market sentiment turned bearish. This allowed me to reduce my portfolio’s drawdown to 11% even though the market tanked 35%. Subsequently, PyInvesting gradually started buying stocks and reducing cash to participate in the V shape market recovery that followed. If you are interested in how I determine this cash allocation feel free to check out PyInvesting’s fear and greed index. Position Sizing The final piece of the puzzle is position sizing. I hold at least 30 stocks in my portfolio and equal weight each of them. Why do I do this? To avoid concentration risk. I don’t have a crystal ball and can’t predict when a stock will tank due to a surprisingly bad earnings release or for the case of Tesla, whether the CEO is going to Tweet. Because of that, I keep each position small so that my risk of being screwed by any single stock becomes very small. With 30 stocks, my portfolio sits at the yellow sweet spot in the plot below. I get to reap most of the benefits of diversification where the volatility of the portfolio approaches the volatility of the market. Holding more than 30 stocks has not much additional benefit of reducing my portfolio’s volatility.   Image source: Stockopedia In doing so, I’m not betting on any single stock carrying the entire portfolio. I’m betting on investment concepts that on average, a group of stocks with high momentum, low PE ratio, high ROE and high profit growth outperforms the S&P 500.  The naive argument against holding 30 stocks in your portfolio is that no one has enough time to research so many stocks and that people who hold more than 10 stocks in their portfolio do not know what they are doing.  My retort against people who make this argument is that we are not living in the age of the dinosaurs. With the help of technology, it’s not difficult to use a backtesting software like PyInvesting to comb hundreds of companies and select the top 30 stocks with the strongest fundamentals and best technical setups in a matter of seconds. Putting It All Together We covered multiple individual steps that contributed towards my overall portfolio strategy. We started with identifying stocks that were in a long term uptrend. Next we ranked these stocks using fundamental analysis. Following which we applied an active risk management system. Finally we did position sizing to reduce concentration risk.   Each step contributed towards the overall performance of my portfolio which outperformed the S&P 500 by over 30% so far this year.  Even though there were many steps involved. Implementing the strategy was a breeze using PyInvesting. I simply filled in a form to specify the details for my backtest and went live with my strategy on the cloud. After that all I did was to execute my trades on Interactive Brokers (IBKR) whenever I received an email from PyInvesting.  If you enjoyed this article and would like to go live with your investment strategy on the cloud, I invite you to check out PyInvesting’s moving average backtest which I used to create my personal investment strategy. I hope that it will be helpful to you in your journey towards financial freedom. Happy investing, and may the odds be in your favour.
Ivann Fok · 1 week, 3 days ago
How to Backtest a Trading Strategy Even if You Can't Code
Have you ever tried an investment strategy that was highly recommended, yet decided to quit once you started losing money? I know I have. A buddy of mine who used to work at a hedge fund was preaching to me about his insane portfolio with super star stocks. For some reason I thought it would be cool to go along and invest in the same stocks as he did. And so I did. When I bought in, it happened to be a good entry point as the market was going up almost everyday. With stocks like Sea and Tesla, there were days when the portfolio surged 4% in a single day! However as markets became highly overbought, a huge red day soon followed. I panicked and cashed out shortly after that. Overall, I stuck with the portfolio for three short weeks. While it was an exciting experience, never again would I invest in a strategy that I had no confidence in.  How do I find a strategy that I can stick to, even when markets are volatile?  Backtest your portfolio Backtesting is the process of simulating an investment strategy using historical prices to test how well the strategy would have done in the past. You need to backtest your investment strategy because it allows you to confirm whether you have an edge in the market without risking any of your own money.  It’s kind of like how pilots have to train using a flight simulator before they are allowed to fly a plane. In the flight simulator, the pilot will be tested on whether he is able to safely navigate the plane through different situations. If a pilot crashes a plane during a flight simulation, there is no way he will be allowed to fly a real plane with hundreds of passenger lives at risk.  Similarly, if an investment strategy has performed poorly during a backtest, why should you risk your hard earned life savings on this strategy?  In addition, backtesting your trading strategy does not put any of your money at risk. It is a way to research your trading ideas and test whether they are profitable before your money is on the line.  Now that we have discussed the importance of backtesting, the next question is how do we backtest a trading strategy? Decide on your trading rules  Every backtest relies on a logical set of trading rules that gets applied consistently during each day’s simulation. This set of trading rules is also commonly referred to as your trading plan. As an example, we are going to backtest a moving average crossover strategy. Moving averages are used to estimate the momentum of a stock. Stocks trading above their moving average have upward trending prices (uptrend stocks) while stocks trading below their moving average have downward trending prices (downtrend stocks). We want stocks that are in a strong uptrend as they are likely to continue going up.  This strategy’s trading rules are as follows: Filter for stocks trading above their 200 day simple moving average (200SMA).  Rank the filtered stocks based on the following signals: Lowest price to earnings ratio (PE Ratio) Highest return on equity (ROE) Highest profit growth Select the top 20 stocks with the highest ranking to form an equally weighted portfolio. Our investment universe will be stocks from the S&P 500, we will be observing the portfolio weekly to check whether every stock in the portfolio is above its 200SMA. If a stock falls below its 200SMA it will be replaced with another stock above its 200SMA and with the highest ranking.  Backtesting software Backtesting a trading strategy is highly computationally intensive. Fortunately, we can rely on the power of technology to simplify this process.  Head over to PyInvesting’s moving average backtest where we will backtest our moving average crossover strategy. PyInvesting is a backtesting software that I built for users to go live with their investment strategies on the cloud.  Select stocks for your investment universe Click on the blue button to select your stocks and select S&P 500 under the template portfolio. This will select stocks from the S&P 500 that will form our investment universe.  Create your signals to rank your stocks Next we are going to select the smart beta factors used to rank our stocks. Based on our trading rules, we are going to select stocks with the lowest PE ratio, highest ROE and highest profit growth. These signals are equally weighted at 33% each and combined to form an overall signal.  Decide on your moving average parameters Following our trading plan, we are going to use the 200 day simple moving average (200SMA) to determine whether a stock is in a long term uptrend or downtrend. By default, the moving average parameters are set to the 200SMA so we do not need to make further changes. Number of stocks and portfolio rebalancing frequency Set the number of stocks to 20 and a weekly rebalancing frequency where our trading algorithm will be checking that each of the 20 stocks in our portfolio is above its 200 day moving average. Hit the run backtest button to simulate your trading strategy! Portfolio performance analysis The backtest results show that our strategy has an annualized return of 16.7% vs the S&P 500 which did 9.1% from March 2016 to October 2020. The volatility of our strategy is also lower at 17.2% vs the S&P 500’s volatility of 19.9%. Consequently, our strategy has a higher Sharpe ratio of 0.78 vs the benchmark’s Sharpe of 0.37. In addition, our strategy has a max drawdown of 39.9% during the 2008 global financial crisis while the S&P 500 was down 55.2%.  The annual returns plot also shows that our strategy beats the S&P 500 in 12 out of the last 14 years. It underperformed in 2016 and 2019. This means that there is a 85.7% (12/14) chance of beating the benchmark in any year going forward. Not too shabby.  Here is a training video I created with a live demo of me running a moving average backtest. Profiting from your investment strategy After analyzing our backtest results, we are happy with our strategy’s performance. So how do we turn our backtest into a live actionable trading strategy that we can profit from? Simply click on the “Go Live” button. Once your strategy is live, PyInvesting’s backtester will run your strategy daily with live prices and send you daily email updates with any buy or sell orders from your strategy. You can then make the trades on your own personal account to profit from your strategy. FYI Interactive Brokers IBKR is great as transaction costs are extremely low.  Happy investing, and may the odds be in your favour. If you want to develop an effective investment strategy, learning how to utilize the results of backtesting can be one of the best decisions you ever make since backtesting can help you identify an incorrect or correct investment before your money is on the line. PyInvesting is a backtesting software written in Python that helps investors go live with their investment strategies on the cloud without writing a single line of code.
Ivann Fok · 2 weeks, 2 days ago
3 Ways to Evaluate the Performance of your Investment Strategy
Do you happen to know that one guy who only invests a single stock because it is the hottest stock in the market? This guy is usually the loudest person in the room and will always brag about how much money he made just dumping his entire net worth into a Tesla stock. Let’s call him, Mr Tesla.  Another guy that you might know, loves to invest in tech companies. He is the guy that queues up for hours just to get hold of the latest iPhone on the same day that it is released into the market. Because of his obsession with technology and IT gadgets, his favourite stocks to invest in are Facebook, Apple, Amazon, Netflix and Google also known as FAANG stocks. Let’s call him, Mr FAANG. Mr FAANG holds an equal weighted portfolio of FAANG stocks and rebalances his portfolio once a year using a strategic allocation backtest.  One day, Mr Tesla and Mr FAANG bumped into each other at a bar, got drunk, and started arguing with each other about who is the better investor.      Mr Tesla: “My returns are higher!”  Mr FAANG: “But your risk is higher too!”  They both have a point. Mr Tesla has a higher return of 44.6% vs Mr FAANG’s less impressive 34.5%. However, Mr FAANG’s portfolio has a lower volatility of 25.3% vs Mr Tesla’s portfolio of 53.5%.   So who is the better investor? Introducing risk adjusted returns While Mr Tesla does indeed have a significantly higher annualized return than Mr FAANG, he achieves this annualized return at more than double the volatility of Mr FAANG. To compare Mr Tesla’s performance against Mr FAANG, we need to use a performance metric that rewards investment strategies with high returns while penalizing strategies with high risks. This is known as the risk adjusted returns of a strategy. Investors generally prefer higher risk adjusted returns as compared to simply higher returns because it accounts for the difference in risk between strategies.  Sharpe ratio The Sharpe ratio is one of the most common measurements of risk adjusted returns. It is the excess return of your strategy divided by its volatility. The excess return can be obtained by subtracting the risk free rate from the annualized returns of your strategy. The risk free rate is the return from investing in a safe instrument such as the yield for US treasury bonds.  Sharpe ratio = (Annualized returns - Risk free rate) / Volatility  The higher the returns of a strategy, the larger the numerator, the higher the Sharpe ratio. The higher the volatility, the larger the denominator, the lower the Sharpe ratio. Doing the math for both strategies, Mr FAANG comes out ahead of Mr Tesla with a Sharpe of 1.25 vs 0.78.  Sortino ratio The next measure of risk adjusted returns is the Sortino ratio. This ratio is slightly different from the Sharpe ratio where instead of dividing the excess returns by the volatility, we divide the excess returns by the semi deviation. The semi deviation is calculated by measuring the volatility on days when the strategy has negative portfolio returns.  Sortino ratio = (Annualized returns - Risk free rate) / Semi deviation Using the semi deviation makes sense because any investor should welcome upside volatility as it translates to higher returns. By differentiating between harmful volatility from the overall volatility of a strategy, the Sortino ratio provides a better representation of risk adjusted returns than the Sharpe ratio.  Going back to Mr FAANG’s and Mr Tesla’s investment strategy, we can see that Mr FAANG still comes out ahead of Mr Tesla with a higher Sortino ratio of 1.60 vs 1.11 Calmar Ratio The Calmar ratio is another measure of risk adjusted returns. Unlike the Sharpe and Sortino ratios that depend on volatility, the Calmar ratio looks at the maximum drawdown of a strategy.  The maximum drawdown is the maximum loss from peak to trough of your portfolio’s value before a new peak is attained. For example, the maximum drawdown of the S&P 500 was 56% as it lost 56% from its peak in October 2007 to March 2009 before going on to recover from the global financial crisis. The Calmar ratio is calculated by dividing your strategy’s annualized returns by its max drawdown. Calmar ratio = Annualized returns / Max drawdown The Calmar ratio might appeal more to some investors because the max drawdown is a better indicator of your strategies risk. While volatility is commonly used as a proxy for risk, it does not give the investor an idea of how much he could lose during black swan events like what we saw during the recent Covid crisis.  Comparing Mr FAANG’s and Mr Tesla’s investment strategy, we can see that Mr FAANG wins with a higher Calmar ratio of 1.08 vs 0.74 How do you improve your risk adjusted returns? Overall, Mr FAANG’s investment strategy has higher risk adjusted returns as compared to Mr Tesla. All 3 performance metrics (Sharpe, Sortino and Calmar ratios) were higher for Mr FAANG’s strategy.  There are 3 key reasons why Mr FAANG’s strategy outperformed with higher risk adjusted returns.  Diversification. Everyone knows that the only free lunch on wall street is diversification and that we should never put all our eggs in one basket. By spreading his bets among 5 different stocks, Mr FAANG was able to reduce the risk of his portfolio as compared to Mr Tesla who was all in on a single stock. The logic behind this is that by investing in different stocks, the portfolio’s volatility is lower because of different stocks moving in different directions and at different pace where the correlation between different stocks is less than 1. Equal weighting. By equal weighting the portfolio among 5 different stocks, there is a much smaller concentration risk in the portfolio as compared to holding a single stock. By allocating the weights equally between different stocks, it ensures that even if one of the stocks does not do well, the impact on the overall portfolio will be limited. We are betting on the average performance of every stock in the portfolio rather than on a single stock hitting a home run for us.   Rebalancing. The purpose of rebalancing is to adjust the weight of each stock in the portfolio back to its target weight so that we can maintain our equal weighting over time. As the different stocks in the portfolio have different performance, over time this difference in returns gets larger causing the weights between each stock to differ from their target allocation of 20% per stock. Rebalancing involves taking profits on some stocks that have performed well and reinvesting these profits into stocks that have fallen in value. This allows us to keep the weights between different stocks equal over time and reduce concentration risk in our portfolio. Happy investing, and may the odds be in your favour. If you want to develop an effective investment strategy, learning how to utilize the results of backtesting can be one of the best decisions you ever make since backtesting can help you identify an incorrect or correct investment before your money is on the line. PyInvesting is a backtesting platform that helps investors go live with their investment strategies on the cloud without writing a single line of code. Check out the tutorial video below to see a live demo of how to analyze the performance of your backtest.
Ivann Fok · 1 month ago
Top 3 factors that determine which investment strategy is right for you
When it comes to investing, every investor has their own personal tastes and preferences. Investors approaching retirement tend to be more conservative and prefer strategies with lower risks while young working adults usually have a higher risk appetite and are willing to stomach some volatility in exchange for higher returns. Whichever strategy you choose, it is important that you are comfortable with the risk it entails so that you are able to stick to your strategy and avoid making emotional decisions.  There are three key factors that determine which investment strategy is right for you.  Risk tolerance Expected returns Effort required to implement the strategy Risk tolerance The first factor is your risk tolerance which is the amount of risk you are willing to take on in exchange for a return on your investment. Generally, investment strategies with higher risks should be rewarded with higher returns. You should choose an investment strategy with a target risk that you are comfortable with and will not cause you to lose sleep at night. Many investors are often attracted to the high returns from an investment strategy. However when markets get volatile, and they start seeing huge fluctuations in their portfolio’s value, they are unable to stick to the plan and get shaken out of their positions. They end up panic selling and crystalizing huge losses on their portfolio.  One way you can measure the risk of your strategy is to backtest your investment strategy and find out the maximum drawdown of your strategy. The maximum drawdown tells us what is the maximum amount of money you can lose on your portfolio during a crisis. For example, during the 2008 crisis, the S&P 500 lost 55% from it’s peak value in October 2007 to March 2009.  You need to ask yourself how much are you prepared to lose if markets were to crash and are you willing to stay the course. Retirees who need to gradually withdraw their funds for their daily expenses should only invest a small percentage of their wealth that they can afford to lose. Young working adults on the other hand should take on more risk because they have time on their side to ride out any market crashes.  For me personally at 30 years old, I’m comfortable with a 50% drawdown on my portfolio if a black swan event such as the 2008 global financial crisis were to happen again. When I’m 50 years old, I would be comfortable with a 30% drawdown on my portfolio.  Expected Returns The second factor that determines your investment strategy is expected returns. How quickly do you need your money to grow to achieve your financial goals?  The math shows that if you save $50 a day for 20 years at a 10% rate of return, you will end up with over a million dollars. However, if your investment strategy is expected to make 5% a year, it is extremely unlikely that you will hit a million dollars at the same saving rate. This could mean being able to free yourself from the corporate rat race a few years earlier and being able to provide a significantly higher standard of living for your loved ones.  You can measure the expected returns of your strategy by backtesting it using historical prices and calculating the annualized returns. Check out this tutorial video below to find out how you can analyze the performance of your investment strategy. Once you get the annualized returns from your backtested investment strategy as shown below, you can plug that value into the CPF retirement calculator to find out whether you are able to hit your financial goals. Effort Required  The third factor is how much effort you are willing to spend on managing your investments. Some strategies require less work to maintain than others and would appeal to more hands off investors. It is important to choose a strategy that fits the amount of effort you are willing to commit to implement the strategy. This is because if you choose a strategy that requires more time to implement than you are willing to commit, you could end up finding it a chore to manage your portfolio and eventually give up on following your strategy. For investors who are not willing to spend a lot of time managing their portfolio, long term strategies such as the Ray Dalio all weather strategy, would be a great fit. This strategy involves allocating a fixed percentage of your portfolio in specific asset classes such as stocks, bonds, REITs and commodities and rebalancing the portfolio once a year to the portfolio’s target allocation. Investors that are able to spend more time managing their portfolios are able to adopt more active strategies such as a moving average strategy where they monitor their positions on a weekly basis. Note that actively monitoring your positions does not necessarily mean you are trading every week. The investor could simply be frequently checking each position more frequently but only opportunistically trading a small number of stocks in the portfolio if they change their buy or sell conviction.  Backtest your investment strategy When choosing our investment strategy, it is important to consider our risk tolerance, our expected return and the amount of effort we are willing to spend on managing our portfolio. Having the right investment strategy will allow us to stay invested even when markets are volatile and help us achieve our financial goals.  Backtesting your investment strategy will allow you to estimate the strategies expected risk and return, and understand the amount of effort required to manage your portfolio. While most portfolio backtesting methods involve expertise in programming and statistics, we can use platforms such as PyInvesting.com to simply fill in a form and create a backtest. The website will run your investment strategy using live prices and send you an email with the orders you need to trade on your personal account.  Stay the course, and may the odds be in your favor.
Ivann Fok · 1 month, 1 week ago
Ivann Fok · 1 month, 1 week ago
Here's Why Every Investor Should Backtest Their Investment Strategy
What is Backtesting? Backtesting is the process of simulating an investment strategy using historical prices to test how well the strategy would have done in the past. Running a simulation over a large number of stocks over the past decades is a computationally intensive process. Fortunately, with the help of technology, investors can rely on backtesting software to run these calculations in a matter of seconds. Some of the most popular backtesting frameworks used to backtest trading strategies are created using Python code.     Why is Backtesting Important? Investment backtesting allows investors to analyze the historical behaviour of an investment strategy and determine how profitable the strategy is. If the backtest results show that a strategy has high returns and low risk, investors will have greater confidence of going live with the strategy. The main idea is that any investment strategy that has performed well in the past is likely to perform well going forward. Conversely if a backtest on a particular investment strategy shows poor performance, the strategy should be rejected because if it performs poorly in the past, it is unlikely to perform well in the future.  Backtesting investment strategies also helps investors understand their strategy’s behaviour during different key periods in history such as the global financial crisis and the Covid-19 public health crisis. They will know how much money they can expect to lose during these black swan events. For older investors, taking on too much risk could mean significantly delaying your retirement. For younger investors who are investing on margin (borrowed money), a large drawdown could mean receiving the dreaded margin call from your stock broker. By backtesting our investment strategy, we are able to know exactly how much money we will lose during these difficult periods so we are able to determine how much risk we can afford to take before we actually start investing. What kind of investment strategies can be backtested? Any strategy that can be expressed as a set of rules can be backtested. For example, a value investor might be interested in a strategy that selects 10 stocks with the lowest price to earnings ratio every year. Similarly an investor that relies on technical analysis might look at buying a stock when its fast moving average crosses above its slow moving average.These strategies all follow a consistent set of rules that can be simulated using historical data. The advantage of rules based investing is that it removes emotions from the picture. Every decision to buy or sell a stock is driven completely based on logic. This prevents investors from making behavioural mistakes such as panic selling or buying due to the fear of missing out. How do we create a realistic backtest? As the purpose of investment strategy backtesting is to find out how effective an investment strategy is, it is important to ensure that our backtest is as realistic as possible. This prevents us from creating backtests that look very attractive on paper but yet perform poorly during live trading. There are a few ways to achieve a more realistic backtest. 1. Choose a large investment universe of at least 100 stocks  A large universe will allow your strategy to select from a wide variety of stocks. This is important because it allows us to test whether the strategy is able to pick winning stocks from a large basket of stocks. A great strategy will be able to differentiate between winners and losers. However, if we restrict our investment universe to a small number of stocks, there are not many stocks for the strategy to select from. This makes it difficult for us to confirm whether a strategy works because both a great and a poor strategy are likely to pick the same stocks when there are so few to choose from. 2. Include at least 20 stocks in your portfolio Having 20 stocks equally weighted in your portfolio will reduce your portfolio’s concentration risk. This means that no single stock will have a huge impact on your portfolio’s performance which allows us to reduce the chance that your strategy just happened to be lucky and picked a winning stock. For example, if our strategy only picked Tesla and was 100% invested, it would have made huge returns over the last few months. However I would not be convinced that the strategy works because it could have picked another stock out of sheer randomness. It is much harder for a strategy to pick 20 winning stocks than a single winning stock. By ensuring that our strategy holds a diversified portfolio, we can confirm that the strategy is able to consistently pick multiple winning stocks and include them in a high sharpe ratio basket of stocks. 3. Choose a sufficiently long backtest period Ideally, your backtest period should be at least 15 years. This allows us to observe how the strategy performs over multiple economic regimes. For example, by including the 2008 financial crisis which happened 12 years ago, we can understand how much money our strategy would lose during a crisis. This allows us to manage the risk of our portfolio. For older investors that are retiring soon, this means deciding how much money they should invest in the market such that even if a crisis were to happen, they would have enough cash savings to retire as planned. For younger investors investing with leverage, it could mean understanding how much money they can afford to lose during a crisis without being hit by a margin call.  4. Include transaction cost The backtest should include your broker’s transaction cost. Whenever an investor buys or sells stocks, they would incur transaction cost that is paid to the broker. Over time as the number of transactions increase, your transaction cost will increase which would have a significant impact on your strategy’s returns. Moreover, strategies that have high turnovers and make a lot of trades will incur higher transaction costs than strategies that have low turnovers. Hence it is important to include transaction cost so we get a realistic idea of how much money our strategy will make during live trading.  How do we create a backtest? While backtesting requires a great deal of calculations, there are multiple websites we can use to create a backtest easily without writing a single line of code. These platforms include https://www.portfoliovisualizer.com/, https://www.etfreplay.com/, https://www.tradingview.com/ and https://pyinvesting.com/. In the table below, I compare the different backtesting platforms and weigh the pros and cons. To be able to backtest a portfolio of different stocks, all platforms except TradingView provide this functionality. TradingView is used more for backtesting a single stock and does not allow users to analyze the performance of a portfolio with multiple stocks. In terms of allowing users to backtest different kinds of strategies, Portfolio Visualizer is the only platform that lacks options. They only allow users to run an allocation backtest where the user has to specify the weights of each stock in the portfolio. All other platforms allow users to choose from multiple types of backtests such as relative strength and moving average backtests.  Regarding stock coverage, all platforms have extensive coverage across multiple exchanges except ETF Replay which is limited to ETFs and a handful of US stocks. If you invest in the Singapore market, unfortunately this platform will not be very helpful as it does not include Singapore stocks.  Among the different platforms, only PyInvesting provides fundamental data such as price to earnings ratio, free cash flow, return on equity, profit growth and more. These fundamental data are obtained from the company’s financial statements going as far back as 15 years. For investors that rely on fundamental data, this is currently the only platform that allows you to create a backtest using fundamental data without writing a single line of code. All other backtesting platforms above only provide technical indicators based on price or volume data which is not suitable for most long term investors. Finally, only PyInvesting allows users to go live with their investment strategy on the cloud. The website will send users an email to update them on their live positions and orders which they can trade on their personal account.  Here is a tutorial on how you can use PyInvesting to create a moving average backtest where the algorithm would select stocks trading above their moving average and sell stocks that are trading below their moving average. Final Thoughts Every investor should backtest their investment strategy because it allows them to analyze the historical behaviour of their investment strategy and determine how effective it is. Backtesting also helps investors understand their strategy’s behaviour during different key periods in history which allows them to manage their risk. Finally backtesting allows investors to follow a logical set of rules which removes emotion from the picture and helps them make data driven decisions.
Ivann Fok · 1 month, 4 weeks ago
Beating the S&P 500 by selecting US stocks with strong fundamentals
investing.com Most long term investors rely on fundamental data to decide which stocks they should include in their portfolios. Fundamental data can be obtained from financial statements such as the company’s balance sheet, income statement and cash flow statement. These reports provide valuable insights into the company’s financial health, profitability and growth. These are key fundamental factors that investors should look out for as they are highly correlated to the stocks performance.  However, measuring these fundamental factors is a tedious process. Investors need to comb through hundreds of financial reports to search for these factors and then combine these different factors together to rank the available stocks. Fortunately with the help of technology, this whole process has been simplified for us. Here is how you can go live and profit from a fundamental strategy for US stocks.  Introducing PyInvesting.com PyInvesting is a website that provides financial data and backtesting tools to help you go live with your own investment strategies. Our backtesting software helps you comb through hundreds of financial reports and tells you which stocks you should trade based on your personal investment strategy. We are going to use PyInvesting to create our fundamental strategy for US stocks. Let’s go! First go to https://pyinvesting.com/backtest/fundamentals/ where we will be creating a fundamental backtest. A backtest is a simulation of our investment strategy using historical data. If the simulation results are poor where the strategy significantly underperformed its benchmark, it confirms that the strategy does not work. In contrast, if the strategy significantly outperforms its benchmark, it gives us confidence that it’s likely to perform well going forward. The backtest also tells us what stocks we should be holding in our portfolio so we know which stocks to buy or sell when we go live with our strategy.  Click on the “Select your stocks” button which opens a window to select stocks for your fundamentals backtest. Under template portfolios, click on “S&P 500” to select s&p 500 stocks from the index. The default benchmark is the SPDR S&P 500 Index (which passive investors can use to invest in the s&p 500) where we will compare the historical performance of our fundamentals investment strategy against the s&p 500 historical prices. Financial Health We want to select companies with a healthy balance sheet and a low debt to equity ratio because these companies have strong abilities to repay their creditors. Because these companies have relatively low leverage, these companies are usually quite resilient and are able to survive through tough periods without going bankrupt. As a result, investors holding these stocks tend to lose less money during a crisis because these stocks are well positioned to weather a storm.  Profitability Next, we want to select companies that are highly profitable, and have a high return on equity. A high return on equity implies that the company’s management is efficient in using investment financing to grow their business and is hence able to provide better returns to investors. A low return on equity implies that the company could be mismanaged where the management is investing in unproductive assets. Return on equity is also a measure of how efficient the company is using its resources. A high return on equity could mean that the company is increasing its profits with a relatively low amount of capital.  Growth Finally, we want to select growth companies whose earnings increase at a much faster rate than the overall economy. These companies have high profit growth and tend to reinvest their earnings into profitable areas of their business. They usually do not pay dividends and choose to reinvest profits to further grow their business. Most growth companies such as Tesla, Google, and Amazon are in the technology sector where they are constantly investing in innovative ideas and expanding into new businesses. Growth companies are able to provide huge returns to investors by focusing on revenue growth and maintaining leadership in their industry. Constructing our portfolio strategy To select stocks with strong financial health, profitability and growth, we are going to select 3 factors shown below. Stocks with the highest return on equity, highest profit growth and lowest debt to equity. These 3 factors are equally weighted at 33% each. All other factors in the table are allocated a weight of 0%. The website will automatically combine these 3 factors for you using a z-scoring approach where the factors are normalized using the mean and volatility. Subsequently, we need to decide how many stocks to hold in the portfolio. I decided to hold 20 equally weighted stocks in my portfolio to avoid concentration risks. Every month, the stocks from the S&P 500 are ranked based on these 3 fundamental factors and the top 20 stocks are selected to form an equal weighted portfolio.  Performance The results show that our fundamental strategy for US stocks significantly outperforms the S&P 500 benchmark with an annualized return of 17.8% vs 9.0% since 2006. The strategy also has a higher Sharpe Ratio of 0.73 vs the S&P 500 which has a Sharpe Ratio of 0.37 implying that the strategy has higher risk adjusted returns. While the strategy has a higher volatility than the S&P 500, it has a lower semi deviation than the S&P 500. This means that the strategy has lower downside volatility and higher upside volatility. The max drawdown of the strategy is also significantly lower than the S&P 500 where it lost 46% during the 2008 crisis vs the S&P 500 which lost 55.2%.  Overall, this backtest confirms that the fundamental strategy for US stocks works where if we select stocks with the highest return on equity, highest profit growth and lowest debt to equity ratio, we can expect to outperform the S&P 500 by 8.8% every year. This strategy is suitable for long term fundamental investors who can afford to take on some market risk in exchange for significantly higher returns.   The website also shows the current positions in the portfolio which users can trade on their own personal account. Subscribers have the option of “going live” with their portfolios where they will receive daily email updates to notify them if their strategy decides to make a trade. I’ve added a link below for users to check out the backtest results from this strategy.  https://pyinvesting.com/invest/results/ab3d20df353143a7a41cdb5ab05e83c2 If you want a full video demonstration of how to create a fundamentals backtest, check out this tutorial video below. Do consider signing up for a free account with PyInvesting to receive future updates. In my next article, I will be explaining how to use the relative strength backtest. Stay tuned and I’ll see you guys next time!
Ivann Fok · 2 months, 1 week ago