Open Harmonics · Pattern guide · Exits
Exits: stops and targets
The patterns decide when we buy. This page covers how we get out: where the stop goes, where the targets are, every exit study we've run, and what the evidence does and doesn't support. Short version: the exit is simple and fixed, and it's the weakest-tested part of the strategy.
The live rule
- Stop loss: 1% beyond the lower of D and X, i.e.
min(D, X) × 0.99. For Crab, Deep Crab and Butterfly, D is below X, so the stop sits just under D. For Gartley, Bat and Cypher, D is above X, so the stop sits under X, which gives a wider stop. The Shark can be either. - 1R is the distance from the entry (the close of the signal bar) to the stop.
- Two halves: half the position takes profit at TP1 = 1.5R. The stop on the other half then moves to the entry price (breakeven), and it runs to TP2 = 2.0R.
- TP3 twist: if D lies within 0.5% of the monthly Camarilla S3 pivot, the runner aims for TP3 = 3.0R instead of TP2.
- Nothing else. There is no trailing stop, no time stop and no ATR trail.
So every setup ends one of four ways: −1R (both halves stopped), +0.75R (TP1, then the runner back to breakeven), +1.75R (TP1 + TP2) or +2.25R (TP1 + TP3).
Source: calcStopLoss() and the target block in harmonic_master_ledger_quant_strategy.pine (TradingView Strategy Tester orders fill at the next bar's open, so realised R differs slightly from the nominal labels).
How it plays out
Every setup the script found across about 500 stocks (TradingView Strategy Tester, all entry filters off):
| Timeframe | Setups | −1R | +0.75R | +1.75R | +2.25R | Reached TP1 | Mean R | Median stop |
|---|---|---|---|---|---|---|---|---|
| 15-minute | 16,496 | 57.0% | 8.3% | 32.5% | 0.8% | 42.3% | +0.08 | 2.1% of price |
| 1-hour | 13,208 | 52.6% | 9.8% | 35.3% | 1.2% | 46.7% | +0.19 | 3.4% |
| 4-hour | 3,990 | 52.1% | 9.1% | 34.7% | 3.1% | 47.3% | +0.23 | 6.0% |
| Daily | 2,098 | 50.3% | 9.2% | 37.4% | 2.1% | 49.2% | +0.27 | 8.2% |
- It's close to a coin flip with a 1.75 : 1 payoff. About half the setups lose 1R and about a third make +1.75R.
- Once TP1 is hit, the runner usually makes it. Only 19–21% of runners fall back to breakeven, so the breakeven move costs little.
- Wider stops don't do worse. Average R is flat across stop-width fifths (1-hour: +0.22, +0.18, +0.18, +0.20, +0.18 from tightest to widest).
- TP3 barely matters. It fires on 1–3% of setups and adds at most about 0.01R per setup. Its cost can't be measured from the logs.
What we tested, and what we found
Methods vary in quality, so each study is labelled: TradingView means real Strategy Tester fills on Pine; Python means our own simulation on Yahoo price data. Several Python sims used a zigzag that knew in hindsight where the swing low was, which flatters the results.
1. Closer or wider targets · TradingView · 15-minute, 30 stocks, ~1,000 setups per setting · Sept 2026
| TP1 / TP2 | Win rate | Mean R (± 1 standard error) |
|---|---|---|
| 0.75 / 1.25R | 59.1% | +0.06 ± 0.03 |
| 1.0 / 1.5R | 53.6% | +0.10 ± 0.03 |
| 1.25 / 1.75R | 47.7% | +0.10 ± 0.04 |
| 1.5 / 2.0R (live) | 43.8% | +0.11 ± 0.04 |
| 2.0 / 3.0R | 37.4% | +0.13 ± 0.05 |
| 1.5 / 2.0R, no breakeven | 43.8% | +0.10 ± 0.04 |
Finding: closer targets raise the win rate from 44% to 59%, but not the average result, and every setting is within noise of the live one. A high win rate isn't the same as a better strategy. Live rule unchanged. The stop-type variants in this sweep never finished running, so stop placement has never been compared on TradingView.
2. The tight stop (D × 0.998) · Python · 1-hour, 119 symbols, 682 setups · Sept 2026
Our simulation said a stop just 0.2% under D turned −0.14R per setup into +0.23R, and it was briefly made the default (22 Sept). It was wrong in instructive ways: it checked targets before stops inside a bar, and it counted any trade still open after 100 bars as a full loss, which punishes wider stops (their targets are further away). It also contradicted TradingView, where the same baseline makes +0.19R on 1-hour. Reverted on 30 Sept.
3. Breakeven at point A · Python · 1-hour, 822 trades · Sept 2026
Moving the stop to breakeven when price reaches point A was the worst option tested, and moving it at 1.5R was close to never moving it. The absolute numbers are unusable (the sim entered before D was confirmed), so only the ranking counts. Live rule unchanged (breakeven after TP1).
4. Against random entries · Python on TradingView setups · daily 2016–26 (2,006 setups); 1-hour and 4-hour 2023–26 · Oct 2026
The toughest test. Each real setup is compared with 20 random entries on the same stock, using the same stop and target distances. If the pattern adds value, it should beat them. (These tests exit the whole position at once rather than in two halves.)
| Stop → target | Daily | 1-hour | 4-hour |
|---|---|---|---|
| Pattern stop → 2R (≈ the live rule) | −0.02 (−0.08 to +0.05) | +0.01 (−0.04 to +0.06) | −0.13 (−0.24 to −0.03) |
| Swing low → 2R | −0.05 | −0.09 | −0.15 |
| Swing low −1% → previous 24-month high | +0.11 (−0.04 to +0.26) | +0.11 (+0.03 to +0.20) | +0.12 (−0.01 to +0.25) |
Finding: with today's exit, the patterns' entries are no better than random ones. On 4-hour they're measurably worse. Fixed-R targets worked in 2016–20 and stopped working in 2021–26. The one exit that beats random on all three timeframes is a stop under the recent swing low with the previous 24-month high as the target. It wins 51–76% of the time but holds for 4–12 weeks. It hasn't been tested on TradingView yet, and the live rule stays frozen until our forward-test review in April 2027.
What we don't know yet
- Stop placement on TradingView: D × 0.99, D × 0.998 and D − 1 ATR are coded but have never been compared on real fills.
- Trailing stops and time stops: a SuperTrend trailing version was written but never measured.
- Other splits: anything other than 50/50 between the two halves.
- Slippage: every TradingView run assumed none.
- Whether TP3 helps at all.
These are the best open problems in the project. If you want to work on one, the lab (coming soon) will explain how to test it so the result counts.
Backtests use today's index members (survivorship bias), 0.01% commission and no slippage. Education and research only. Not financial advice.