The Fifth risk

I bought this book in 2019 but I was not able to read it till now, with the quarantine I remembered I had this one on a shelf.

Very interesting to understand how the different governmental organizations work and how the transitions were completed (or not in this case).

I love the personal stories that Michael Lewis give us in this book.

Fundsmith annual shareholder meeting 2020

I discovered this shareholders meeting last year and I was willing to review it in detail. Below some notes.

First 33 minutes is the formal presentation, after that Q&A.

The link to the letter to shareholders: https://www.fundsmith.co.uk/docs/default-source/analysis—annual-letters/annual-letter-to-shareholders-2019.pdf?sfvrsn=6

Minute #10:

Why they sold 3M on the one hand, 3M sold its ceramic bulletproof business unit at a price of 1.1x sales and acquired Acelity, which was a private company, for 11x EBITDA. Acelitywas actually going public and according to the prospectus, the opening price was was going to be 15x EBITDA. When asked about the difference between 11 and 15, they claimed that they announced the multiple of 11 EBITDA for the expected synergies. Fundsmith interpreted this as a lie.

In the shareholder letter: “we were acting on growing doubts about the current management’s capital allocation decision”.

minute #37:

Sub-estimate the impact of Covid-19.

minute #48:

Replying about why they don’t buy Apple or Alphabet.

About Google : ROE in 2019 is about 17%, which is average. Capital allocation is poor: they acquire small potential companies that could become competence in some niche and they dissolve these projects.

About Apple: sales and cash flow are flat in the last 4 years and the stock price has tripled. They saw the same behavior in companies as Nokia.

Comment about Sortino Ratio Versus Sharpe Ratio

The Sortino ratio is an adaption of the Sharpe ratio, and in my view an improvement. Whereas the Sharpe ratio estimates risk by the variability of returns, the Sortino ratio takes into account only downside variability as it is not clear why we should be concerned about upside volatility (i.e. when our Fund goes up a lot) which mostly
seems to be a cause for celebration.

Market Opening checklist

This is a checklist of things to review once just before and after the market is opened.

Before market opens (9:15 ET)

  • Check S&P and Nasdaq futures indexes.
  • Previous day closing, Market breadth check, McClellan indicator.
  • How is Europe going on? Check DAX.
  • Check DIX and GEX Index in squeeemeetrics, from previous day.
  • EUR/USD trend.
  • Any major news to take into account?

After market opens (9:35 ET)

  • Check S&P trend in comparison with the futures.
  • Check the swing portfolio.
  • Check the potential new longs I have in the list.

Out of hours

  • Read quarterly files.
  • Review list of candidates
  • Read the next chapter of a book.
  • Set target purchase price on notebook.
  • Check swing screen on swing stocks.

 

System: Carter MA 8 – 21

Abstract

In his book “Mastering the trade”, John Carter proposes a simple system based on the moving averages of 8 and 21.

I have implemented the basis of this system and I have changed some behaviors:

I have build this system on Tradingview and I have done some back-testing in 3 periods to see how it works.

The system

The system code is this one:

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © joapen

//@version=4
strategy("Carter EMA(8/21)", overlay=true)

// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2020, title = "From Year", minval = 2000)
ToMonth   = input(defval = 12, title = "To Month", maxval = 12)
ToDay     = input(defval = 31, title = "To Day", maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", maxval = 2020)

//
// SQZMOM
//
length = input(14, title="BB Length")
mult = input(2.0,title="BB MultFactor")
lengthKC=input(20, title="KC Length")
multKC = input(1.5, title="KC MultFactor")

useTrueRange = input(true, title="Use TrueRange (KC)", type=input.bool)

// Calculate BB
source = close
basis = sma(source, length)
dev = multKC * stdev(source, length)
upperBB = basis + dev
lowerBB = basis - dev

// Calculate KC
ma = sma(source, lengthKC)
range = useTrueRange ? tr : (high - low)
rangema = sma(range, lengthKC)
upperKC = ma + rangema * multKC
lowerKC = ma - rangema * multKC

sqzOn  = (lowerBB > lowerKC) and (upperBB < upperKC)
sqzOff = (lowerBB < lowerKC) and (upperBB > upperKC)
noSqz  = (sqzOn == false) and (sqzOff == false)

val = linreg(source  -  avg(avg(highest(high, lengthKC), lowest(low, lengthKC)),sma(close,lengthKC)), lengthKC,0)

// lime green  red marron
sqzLong = iff( val > 0, iff( val > nz(val[1]), true, false), iff( val < nz(val[1]), false, true))
// Plots
plot(upperBB, title="BB", color=color.green)
plot(ema(close,8), title="EMA(8)", color=color.orange)
plot(ema(close,21), title="EMA(21)", color=color.red)

longCondition = (ema(close, 8)> sma(close, 21)) and (close < ema(close, 8) and sqzLong) and time > timestamp(FromYear, FromMonth, FromDay, 00, 00) and time < timestamp(ToYear, ToMonth, ToDay, 23, 59)
alertcondition(longCondition, title='Long', message='long!!!')
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = (close > upperBB ) or (ema(close, 8)< sma(close, 21) or val<0) and time < timestamp(ToYear, ToMonth, ToDay, 23, 59)
alertcondition(shortCondition, title='Short', message='short!!!')
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

Back-testing conditions

  • Amount = 100.000$
  • Commission = 0$
  • List of companies: fix list of companies I know with different behaviors, volatility and industries: BEN, TROW, CTVA, AEMD, GMRE, WBA, CVS, MO, DT, GE.

Quality of the samples:

  • Minimum around 200 trades to consider a good amount of cases.
  • Share Ratio > 1
  • Profit Factor > 2

Back-testing results for first date range

  • Date range = 1/1/2020 – 13/05/2020
  • Time frame = 5 minutes

Volatility during this period have been so high:

Back-testing results for second date range

  • Date range = 1/1/2019 – 13/05/2019
  • Time frame = 15 minutes (Tradingview does not enable me to do it in 5 minutes)

Back-testing results for bio companies in 2020

  • Date range = 1/1/2020 – 13/05/2020
  • Time frame = 5 minutes

Conclusions

15/05/2020

  • I have to improve or discard this system.
  • Check when the market trend is better.
  • Check when volatility is lower.

Backtesting tips

I do this list of tips so I review before I do some back-testing analysis.

main questions (from John Bogle)

  • What is the rationale or hypothesis?
  • What is the empirical evidence?
  • What are the implementation results?

Tips to remind

  1. Do a test of your system with 2008.
  2. If you look for correlation, you probably will find it, it does not mean that it will work in future.
  3. Test in not the best conditions and compare with other systems of
  4. Check volatility, tests on periods with low and high volatility is useful to get conclusions.
  5. Track the results in a word document with screenshots of the work done, the variables you touched and the specific results.
  6. Prepare set of 5 to 10 stocks for the back-test, track the results of all these stocks.

Typical pitfalls

  1. Survivor bias: you are not adding the companies that have not survived.
  2. Look-ahead Bias: you have all the data in front of your eyes and can make trades according to that data, this provokes you get a false understanding about the behavior of your system.
  3. In sample bias: you use a sample data that is always the same or similar, so then your system adjust to this sample and lose effective.

Cboe SKEW Index (“SKEW”)

Introduction to SKEW Index

The Cboe SKEW Index (“SKEW”) is an index derived from the price of S&P 500 tail risk. It’s similar to Volatility Index (VIX).

The primary difference between the VIX and the SKEW is that the VIX is based upon implied volatility round the at-the-money (ATM) strike price while the SKEW considers implied volatility of out-of-the-money (OTM) strikes.

SKEW typically ranges from 100 to 150.

  • The higher the rating, the higher the perceived tail risk and chance of a black swan event.
  • A SKEW rating of 100 means the perceived distribution of S&P 500 returns is normal and, therefore, the probability of an outlier return is small.

Other concepts (for my poor memory)

Out of the Money (OTM) is an expression used to describe an option contract that only contains intrinsic value. These options will have a delta of less than 50.0.

At the money (ATM) is a situation where an option’s strike price is identical to the price of the underlying security.

Market breadth analysis

I’m learning about market breadth and I’m trying to organize a mechanic way to analyze the data I have and improve the decisions I do about the best moment to long and short.

This post covers the current set of indicators I see and the order of preference.

Some basis

I use S&P 500 as reference index. I use some data from Wall Street, Nasdaq and other indexes but the main one is S&P 500.

You will see some “P1”, “P2” that stands for “priority 1” or “priority 2” as I review and give more value to some indicators than others.

Basically I use an indicator as a reference, and then I have a second indicator to reinforce my thoughts or dismiss them.

List of Indicators I’m using

Financial Accounting Standards Board (FASB)

The FASB Accounting Standards Codification is the source of authoritative
generally accepted accounting principles (GAAP) recognized by the FASB to be
applied by nongovernmental entities.

They provide updates from time to time about different topics.

An example: Archer Daniels Midland

I was reviewing this company and how the free cash flow turned negative in 2017.

I did not liked it, and I did a comment in twitter about this fact on a person that published some fundamental data.

I received an answer. And it was that a change in the US GAAP accounting classification made $ADM to reclassify the early collection of revenue that $ADM receives in advance,

The note that follows:

So this change in 2016 is impacting so many companies and I was thinking that it was a deterioration of the business itself. 🙁

Statement of Cash Flow Topic 230

This Statement of Cash Flows (Topic 230), contains all the data related to the different classifications that need to be done. It’s a large document for accountants.

 

 

 

Counting drilling rigs

Background

I have the purpose of counting US drilling rigs that are producing oil. I understand so many of them are closing and the cost to re-open them should be considerable. With the amount of oil in the market and the future prices sinking into even negative values, I want to challenge my self if I can improve the way to analyze and predict when the barrel price is going to bull again.

US drilling regions

These are the main drilling regions in US.

  • Permian
  • Anakardo,
  • Appalachia,
  • Niobrara
  • Eagle Ford
  • Haynesville
  • Bakken

Sources of data

I only found a place that offers directly the number of opened drilling rigs in a chart. And it’s just for Oklahoma (Anakardo). It’s this one: https://ycharts.com/indicators/oklahoma_inland_rotary_rigs

Some other sources:

to do: find more data.