Expectancy score vs Sharpe ratio

October 2021: I wrote this for a company that is no longer active. I have adapted the article to this blog.


Back when I set out to develop my own trading system, two different successful traders recommended that I read Trade Your Way to Financial Freedom by Van K. Tharp. One trader recommended it to me as a good book on position sizing. In spite of its sensationalist title, it's a good book, for no other reason than it contains a valuable feature: how to measure "quality" of a trading strategy objectively, in terms of expectancy multiplied by opportunity. I call this the "expectancy score." Around the same time, I was reading information promoting the use of the Sharpe ratio as the best means to evaluate the quality of a trading system. So I looked at both and decided that expectancy score is superior.

Expectancy score

Expectancy is how much you expect to earn from each trade for every dollar you risk. Opportunity is how often your strategy trades. You want to maximize the product of both.

First let's define some terms.

  • \(N_W\) = number of winning trades minus 1. We subtract 1 because we exclude the maximum winning trade as an outlier, for conservatism.
  • \(N_L\) = number of losing trades, excluding scratch trade losses. A "scratch trade" is a breakeven trade, losing at most commission and slippage.
  • \(NST = N_W + N_L\) = non-scratch trades during the period under test.
  • \(AW\) = average of profits in a series of trades. Remember, for conservatism, we exclude the maximum win as an outlier.
  • \(AL\) = average of non-scratch losses (negative number).
  • \(PW\) = probability of winning, calculated as \(PW = \frac{N_W}{NST}\).
  • \(PL\) = probability of losing, calcuated as \(PL = \frac{N_L}{NST}\).
  • \(Op = NST \times \frac{\text{calendar days in study}}{365}\) = number of opportunities provided by the system to trade during a year.

The expectancy \(Ex\) is the expected profit per dollar risked:

$$Ex = \frac{AW \times PW + AL \times PL}{|AL|}$$

It is important to have the |AL| (absolute value of AL) in the denominator of expectancy because this converts the expectancy to "risk units" — earnings per dollar risked.

Finally, the expectancy score \(ES\) is expectancy over a year of trading:

$$ES = Ex \times Op$$

This calculation of expectancy score, as described above, is different than that described by Tharp in three respects:

  • First, I discard the maximum winning trade as an outlier. For a system where the biggest win is an outlier, discarding it gives a better representation of expectancy. For a system where the biggest win isn't an outlier, it doesn't matter other than to reduce the total winnings and total wins, leaving the average winnings largely unaffected. Discarding the largest win, therefore, gives a more conservative estimate of expectancy.
  • Second, I use the average loss rather than follow Tharp's recommendation to use the minimum loss as the unit of risk. The average loss is larger than the minimum loss and more likely to be experienced (average loss is typically near the peak of the distribution of losses), therefore using it results in a more conservative estimate of expectancy than using the minimum loss. Tharp and I both exclude scratch losses (trades that lost only commission and slippage), because including these would bias the unit of risk too low.
  • Third, I use the arithmetic average of wins and losses (after deducting the largest win and scratch losses) as my expected win and loss. Tharp has you create a histogram of winning trades and select a range that contains the peak of the curve. Tharp's way is not easily acheived through a computer algorithm because some subjectivity is required to determine the bin sizes of the histogram. My experiments show that the arithmetic average often falls at or near the peak of the histogram anyway, so that is what I use.

Expectancy and position sizing

The expectancy score described above complements position sizing. You have to make a paradigm shift away from evaluating strategies based on net profit. Forget the net profit, forget drawdown, forget number of wins in a row, forget everything else Tradestation shows you in the Strategy Summary. These things mean nothing for strategy comparisons, because everyone has a subjective opinion about which of those measurements matter most.

In your mind you must decouple the entry/exit rules from "net profit" performance or "annualized return" performance. Instead, think of a strategy like this:

  • Entry rules control risk. Entries don't determine winners or losers!
  • Exit rules determine profits and losses (winners or losers).
  • Entry and exit rules together determine expectancy and opportunity.
  • Position sizing determines your net profit or return, as well as maximum drawdown.

So when you're designing the entry/exit rules and their input parameters, don't optimize for net profit. Instead...

Optimize for expectancy score

Optimize for maximum expectancy score, without regard to anything else. Position sizing takes care of the rest. A good position sizing strategy will result in greater, more consistent profits on a high-expectancy strategy than on a low-expectancy strategy, even if the low-expectancy strategy has a higher net profit on a 1-contract basis.

Now, I know some trading software packages let you optimize strategy parameters based on anything you want. TradeStation gives you only canned results like net profit, win/loss ratio, drawdown, etc. For those of us who use TradeStation, I developed something that lets me optimize my strategies on expectancy score.

It's an EasyLanguage function (_SystemQuality). You just stick it at the end of your signal and start the optimizer. Every iteration of the optimizer will cause a line to be written to an Excel .csv file. Then all you do is load it into Excel, sort by the last column, and voila! The parameters for maximum expectancy score are right at the top.

The documentation included with the source code is detailed and should explain everything more fully. This function can be modified to use in optimizing anything else you want, also.

Sharpe ratio

Some people like to use the Sharpe ratio to gauge the relative quality of one trading strategy compared to another. After extensive research, I have no choice but to conclude that the Sharpe ratio isn't useful for objectively evaluating the merit of a system. It does have uses, but I disagree that it should be used for determining overall merit.

Take two extremes for example:

  • System A returns 0.001% greater than the risk-free interest rate with zero drawdowns, and perfect consistency.
  • System B returns 60% per year on your account with modest 10% drawdowns.

Which system would you rather trade? System A has a higher Sharpe ratio — it's actually infinite due to zero standard deviations in returns. Personally I would take system B over A any day. I am more concerned with my equity growth and earning power of my risk capital, than whether periodic returns are exactly the same.

All the Sharpe ratio does is measure consistency. True, that's one element of merit, but certainly not the whole picture. Using it to determine the merit of a whole trading strategy results in completely erroneous and subjective evaluations, as demonstrated by the extreme example above.

In my view, there's really only one objective way to measure the merit of a system, and that's how much you expect it to earn for every dollar risked combined with how often it gives you the opportunity to earn that expected return. The risk concept is important; you're measuring the return from your risk capital (i.e. your initial stoploss), not what you actually "invest" in the market.

Develop a system that has a high expectancy score, and you'll find that the Sharpe ratio takes care of itself.

My research has led me down some fruitful paths, and some fruitless paths. Optimizing for Sharpe ratio is in the latter category.

Comments

Popular posts from this blog

Syncing Office 365 Outlook to Google calendar using Power Automate

The water rocket: Thrust from water

New approach to screw threads in OpenSCAD