R&D Blog
The Livermore System: Part 1 | Trading Strategy (Filters)
I. Trading Strategy
Source: Kaufman, P. J. (2020). Trading Systems and Methods (Chapter 5: The Livermore System). New Jersey: John Wiley & Sons, Inc. Concept: Trading strategy based on Jesse Livermore‘s approach to swing trading. Research Goal: Performance verification of Swing Filter and Penetration Filter. Specification: Table 1. Results: Figure 1-2. Trade Entry/Exit: Table1. Portfolio: 42 futures markets from four major market sectors (commodities, currencies, interest rates, and equity indexes). Data: 40 years since 1980. Testing Platform: MATLAB®.
II. Sensitivity Test
All 3-D charts are followed by 2-D contour charts for Profit Factor, Sharpe Ratio, Ulcer Performance Index, CAGR, Maximum Drawdown, Percent Profitable Trades, and Avg. Win / Avg. Loss Ratio. The final picture shows sensitivity of Equity Curve.
Tested Variables: Swing_Filter & Penetration_Filter (Definitions: Table 1):
Figure 1 | Portfolio Performance (Inputs: Table 1; Commission & Slippage: $0).
STRATEGY | SPECIFICATION | PARAMETERS |
Auxiliary Variables: | Pivot Points: Supply Pivots are defined as local price highs followed by bearish swings having at least Swing_Filter size (measured in ATR multiples). Demand Pivots are defined as local price lows followed by bullish swings having at least Swing_Filter size (measured in ATR multiples). | Swing_Filter = [1.0, 12.0], Step = 0.25; |
Setup: | N/A | |
Filter: | Noise: Noise is defined as the smallest of two most recent price swings multiplied by Penetration_Filter. | Penetration_Filter = [0.0, 1.5], Step = 0.05; |
Entry: | Long Trades: A buy at the open is placed after penetration of two most recent Supply Pivots increased by Noise. Short Trades: A sell at the open is placed after penetration of two most recent Demand Pivots decreased by Noise. | |
Exit: | Pivot Exit: Long Trades: A sell at the open is placed after penetration of the most recent Demand Pivot decreased by Noise. Short Trades: A buy at the open is placed after penetration of the most recent Supply Pivot increased by Noise. Stop Loss Exit: ATR(ATR_Length) is the Average True Range over a period of ATR_Length. ATR_Stop is a multiple of ATR(ATR_Length). Long Trades: A sell stop is placed at [Entry − ATR(ATR_Length) * ATR_Stop]. Short Trades: A buy stop is placed at [Entry + ATR(ATR_Length) * ATR_Stop]. | ATR_Length = 20; ATR_Stop = 6; |
Sensitivity Test: | Swing_Filter = [1.0, 12.0], Step = 0.25 Penetration_Filter = [0.0, 1.5], Step = 0.05 | |
Position Sizing: | Initial_Capital = $1,000,000 Fixed_Fractional = 1% Portfolio = 42 US Futures ATR_Stop = 6 (ATR ~ Average True Range) ATR_Length = 20 | |
Data: | 42 futures markets; 40 years (1980/01/01−2020/2/28) |
Table 1 | Specification of Trading Strategy.
III. Sensitivity Test with Commission & Slippage
Tested Variables: Swing_Filter & Penetration_Filter (Definitions: Table 1):
Figure 2 | Portfolio Performance (Inputs: Table 1; Commission & Slippage: $100 Round Turn).
IV. Benchmarking
We benchmark the base case strategy against alternatives:
Case #1: Swing_Filter = 4.0; Penetration_Filter = 0.00 (Base Case).
Case #2: Swing_Filter = 4.0; Penetration_Filter = 0.50.
Case #3: Swing_Filter = 4.0; Penetration_Filter = 0.75.
Case #4: Swing_Filter = 4.0; Penetration_Filter = 1.00.
Fixed Fractional Sizing | Case #1 | Case #2 | Case #3 | Case #4 |
Net Profit ($) | 587,024,356 | 266,667,458 | 88,111,720 | 26,751,232 |
Sharpe Ratio | 0.93 | 0.85 | 0.73 | 0.58 |
Ulcer Performance Index (UPI) | 1.27 | 0.94 | 0.76 | 0.48 |
Profit Factor | 1.29 | 1.49 | 1.60 | 1.55 |
CAGR (%) | 17.21 | 14.94 | 11.83 | 8.63 |
Max. Drawdown (%) | (43.93) | (40.89) | (45.97) | (48.81) |
Percent Profitable Trades (%) | 41.04 | 39.47 | 35.24 | 33.64 |
Avg. Win / Avg. Loss Ratio | 1.85 | 2.29 | 2.94 | 3.05 |
Table 2 | Inputs: Table 1; Fixed Fractional Sizing: 1%; Commission & Slippage: $100 Round Turn.
V. Basic Concepts
Edwin Lefevre, Reminiscences of a Stock Operator (1923):
The speculator’s chief enemies are always boring from within. It is inseparable from human nature to hope and to fear. In speculation when the market goes against you you hope that every day will be the last day – and you lose more than you should had you not listened to hope – to the same ally that is so potent a success-bringer to empire builders and pioneers, big and little. And when the market goes your way you become fearful that the next day will take away your profit, and you get out – too soon. Fear keeps you from making as much money as you ought to. The successful trader has to fight these two deep-seated instincts. He has to reverse what you might call his natural impulses. Instead of hoping he must fear; instead of fearing he must hope. He must fear that his loss may develop into a much bigger loss, and hope that his profit may become a big profit. It is absolutely wrong to gamble in stocks the way the average man does.
VI. Rating: The Livermore System: Part 1 | Trading Strategy
A/B/C/D
VII. Summary
The trading model based on Swing Filter and Penetration Filter is an average momentum model.
Related Entries: The Livermore System: Part 2 (Filters) | Dow Theory – Trend (Entry & Exit) | Dow Theory – Multiple Time Frames (Entry)
Related Topics: (Public) Trading Strategies
CFTC RULE 4.41: HYPOTHETICAL OR SIMULATED PERFORMANCE RESULTS HAVE CERTAIN LIMITATIONS. UNLIKE AN ACTUAL PERFORMANCE RECORD, SIMULATED RESULTS DO NOT REPRESENT ACTUAL TRADING. ALSO, SINCE THE TRADES HAVE NOT BEEN EXECUTED, THE RESULTS MAY HAVE UNDER-OR-OVER COMPENSATED FOR THE IMPACT, IF ANY, OF CERTAIN MARKET FACTORS, SUCH AS LACK OF LIQUIDITY. SIMULATED TRADING PROGRAMS IN GENERAL ARE ALSO SUBJECT TO THE FACT THAT THEY ARE DESIGNED WITH THE BENEFIT OF HINDSIGHT. NO REPRESENTATION IS BEING MADE THAT ANY ACCOUNT WILL OR IS LIKELY TO ACHIEVE PROFIT OR LOSSES SIMILAR TO THOSE SHOWN.
RISK DISCLOSURE: U.S. GOVERNMENT REQUIRED DISCLAIMER | CFTC RULE 4.41
Codes: matlab/livermore/1