Trade only in the best segments of the capital curve: Eliminate the dips and take advantage of the rises, does it really work?
This article was written by George Pruitt and published on his blog on August 31, 2022. As we have stated in previous articles, for a Quantum Trader, understanding and programming trading systems is a common task. Here is an approach that will allow you to adjust or create your trading systems for today’s times, where there is great uncertainty, by applying a filter to the capital curve of our trading system:
Capital curve feedback has been around for many years and seems very logical, but you can’t get industry-wide agreement on its benefit. The main problem is knowing when to turn trading off and back on. The most popular approach is to use a moving average in the capital curve to indicate the participation of the system. When the equity curve moves below its 30, 60, or 90 period moving average, then simply turn it off and wait until the curve crosses above the average again. This approach will be investigated in Part 2 of this series. Another approach is to stop trading once the capital curve dips above a certain level and start again once the capital curve recovers. This method will be investigated in this article.
To begin with, how is this tool programmed? There are probably multiple ways to accomplish this task, but the two I’ve seen most often are the two-pass process and the simultaneous online tracking of real and synthetic equity curves. The two-pass process generates an unaltered equity curve and stores the equity and trades in memory or in a file. The second part of the process monitors the external equity curve along with external trades synchronously, and when trading is on, trades are executed chronologically. When trading is off, the synthetic equity curve and trades are processed throughout the process. The second method is to create, what I have coined (perhaps others too!), a synthetic equity curve and synthetic trading. I have done this in my TradingSimula_18 software by creating a SynthTrade class. This class contains all the properties of each trade, and you can, in turn, use this information to create a synthetic equity curve. The synthetic capital curve and trades are not affected by real-time trading.
Creating an equity curve monitor and processor is best started by using a very simple system. A market algorithm that enters and exits on different dates, where pyramiding and entry or exit are not allowed. The first algorithm I tried was a mean reversion system where you buy after two consecutive lower closes, followed by a higher close, and then hold for a day. Since I tested the ES in the last 10 years it can be assumed that the trend is up. I have to admit that the one day delay was a mistake on my part. I was experimenting with a four bar pattern and somehow forgot to watch the previous day’s action. Since this is an experiment, that’s okay!
Simple strategy to test synthetic trading system
Here is the unmodified capital curve, using $0 for execution costs:
Unadjusted capital curve of our simple mean reversion system. Wait for a pullback and then a rally before entering.
The rollback and recovery method
In this initial experiment, trading is suspended once a 10% drop from the peak of the equity curve is reached and then trading resumes once a 15% rally from the subsequent trough occurs. Here is a very interesting graph.
Green means ON. Red means OFF. The bottom curve is the resulting curve.
I did this analysis by hand with excel and it is the best case scenario. Which means that when you retrigger any current synthetic position it is immediately executed in the real world. This experiment resulted in almost the same drawdown but a big drop in the overall growth of the equity curve – $75K.
Put the synthetic capital curve engine to the test
Now that I had the confirmed results of the experiment, I used them as a benchmark against my TS-18 synthetic trading engine. But before installing the Equity Curve algorithm, I needed to make sure my synthetic trades lined up exactly with the real equity curve. The synthetic curve must align 100% with the real equity curve. If it doesn’t, then there is a problem. This is another reason to start with a simple trading strategy.
Notice here where I print the synthetic yield curve daily and compare it to the final result of the analysis.
The synth matches reality
Now let’s see if it worked.
Testing with the synthesizer. Capital Curve Operation Activated!
The capital curves are very similar. However, there is a difference and this is caused by the way you re-enter after the negotiation is reactivated. In this version I have tried to wait for a new trading signal, which may take a few days. It can be re-entered in three different ways:
- Automatically enter synthetic position at the open of the next bar
- Wait for a new trading signal
- Enter immediately if you can enter at a better price
Use the 10% Ret algorithm. and 15% Rec. didn’t help at all. What if we tried 10% and 10%.
10% Ret. and 10% Rec.
Now that performance is better – more profit and less draw down. Now that I have the synthetic engine working on simple algorithms we can do all kinds of capital curve analysis. In the next installment of this series I will make sure that the TS-18 synthetic engine can handle more complicated I/O algorithms. I have already tested a simple long-term trend following strategy on a medium-sized portfolio and the synthetic engine worked well. The 10%/15% rollback/recovery algorithm didn’t work and I’ll go into the “whys” in my next post.
Article courtesy of George Pruitt
Quantified Models Youtube Channel
On our YouTube channel we have several videos available that you may find very useful for developing trading systems. To access, click this link: Quantified Models YouTube Channel
We hope this information has been useful to you.