Idea in brief
After entry a trade carries risk: the distance to the stop multiplied by the position size. Jack Corsellis suggests bringing this risk to zero as early as possible. To do that, part of the position is sold with a limit order at the level where the locked-in profit equals the loss the remainder would produce if price returned to the stop.
The author uses three levels: half of the position at 1R, a third at 2R or a quarter at 3R. R here is the distance from entry to stop. The stop on the remainder does not move. If price reaches the stop after the partial sale, the trade closes at roughly zero.
The author's example. Buy 3000 shares at 8.84, stop at 8.57, risk of 27 cents per share or $810 for the position. A limit order to sell 1000 shares at 9.38 (two R) locks in $540. The remaining 2000 shares carry the same $540 of risk. Profit minus the risk on the remainder equals zero, and the trade is "rolled for free".
Jack presents this as part of the Qullamaggie method. As retold, Qullamaggie's own rule is cruder: sell a third or half after 3-5 days and move the stop to breakeven. Below is a block that plugs into any strategy with a stop, and an example on the School Run card.
Why it might work
The author explains the free roll through risk management, not through the search for profit. In the author's words, this matters especially in a choppy market. If you lock in part of the position on the first thrust after a contraction, the trade stops threatening the account, and the remainder can run further on a trailing stop.
The second argument is behavioral. The author wants to get as early as possible into a position where the trade can no longer lose, and to sit calmly through the pullback after the first thrust. The effect on discipline is real, but it does not show up in a backtest.
The price for this is clear: part of the position is closed early and does not take part in rare large moves. For strategies with a low win rate this can reduce the total. The author does not show such a test, and the videos have no separate statistics on the free roll.
Rules
Free roll block (author)
// entry, stop and main exit come from the strategy the block is plugged into
R = |EntryPrice - StopLoss| // author: risk per share or contract
m = 1, 2 or 3 // author: R multiple
f = 1 / (m + 1) // author: 1/2 at 1R, 1/3 at 2R, 1/4 at 3R
// Finetiq: the formula as a generalization of the three levels
Qty0 = position size at entry
QtyFR = round_up(Qty0 * f, volume step) // Finetiq: round up, otherwise the profit will not cover the remainder's risk
// long, right after the entry fills
FR_Price = EntryPrice + m * R
SELL QtyFR LIMIT at FR_Price // author: sell limit right after entry
SELL (current volume) STOP at StopLoss // stop for the entire remaining position, the level does not change
// zero-risk check
QtyFR * m * R >= (Qty0 - QtyFR) * R
// short is mirrored: BUY QtyFR LIMIT at EntryPrice - m * R
// if the stop is hit before the target, there is no partial exit: a 1R loss on the whole position
Author's refinements
// from a trailed stop: if the stop has been raised to NewStop, R' = EntryPrice - NewStop,
// and the target moves down to EntryPrice + m * R' (author)
// at a round number: the target goes slightly below the round level.
// The desired target T defines the stop: NewStop = EntryPrice - (T - EntryPrice) / m (author)
// at the local high of a base: the target goes below the high, a seller is waiting there (author)
// after the free roll, the remainder is managed by the main strategy's exit
// for the author, this is the first close below EMA 10 or EMA 21
Qullamaggie variant: by time and to breakeven
// Qullamaggie's rule as retold by the author
IF BarsSinceEntry >= 3 AND position in profit // author: after 3-5 days; Finetiq: day 3 and the "in profit" condition
SELL 1/3 (or 1/2) AT NEXT BAR OPEN
StopLoss = EntryPrice // author: stop on the remainder to breakeven
Example: School Run with a free roll
The school-run card: a buy stop above the high of the second 15-minute candle, the stop at its low, a target of two stops, an exit before the end of the session. We add a free roll at 1R.
Qty0 = 2 contracts // Finetiq: the minimum needed to sell half
R = EntryPrice - Bar2.Low
SELL 1 LIMIT at EntryPrice + 1 * R // free roll: half at 1R
SELL 1 LIMIT at EntryPrice + 2 * R // the card's target for the second half
SELL (current volume) STOP at Bar2.Low // 2 contracts before the free roll, 1 after
EXIT remainder at SessionClose - 5 min // from the School Run card
// outcomes in R of the whole position's risk: -1 before the free roll; 0 if the remainder hit the stop after the free roll;
// +1.5 if the remainder reached the target. Without the free roll the target would give +2
Parameters
| Parameter | Value | Source |
|---|---|---|
| Share and level | 1/2 at 1R, 1/3 at 2R, 1/4 at 3R | author |
| Order type | sell limit right after entry | author |
| Stop on the remainder | unchanged | author |
| Reference stop | initial or trailed | author |
| Target at resistance | below a round number or a local high | author |
| Exit for the remainder | close below EMA 10 or EMA 21 | author |
| Time variant | 1/3-1/2 after 3-5 days, stop to breakeven | author, Qullamaggie's rule |
| Day in the time variant | 3 | Finetiq |
| Rounding the share | up to the volume step | Finetiq |
| Example: minimum volume | 2 contracts | Finetiq |
What to test
- Free roll versus the full position. The same strategy: the whole position held to the main exit, a free roll at 1R, 2R and 3R, and the Qullamaggie variant with breakeven after 3 days. Compare the average trade in R, the total, the maximum drawdown and the longest losing streak.
- The tail of the distribution. Calculate what share of the total comes from the best 5% of trades with and without the free roll. If the strategy lives on rare large trends, selling part of the position early can cost more than it saves on stops.
- Trades "at zero". The share of trades where the free roll filled and the remainder then hit the stop. If there are many, compare the base block, where the remainder's stop stays in place, with a trailing stop on the remainder (the stop is raised to just below EMA 10 or EMA 21 on every closed bar) and with moving the remainder's stop to breakeven.
- Costs and slippage. Three orders instead of two, with a commission on each. Slippage on the stop turns the "zero" negative. On intraday trades with a tight stop this is a noticeable part of R.
- Gaps through the stop. Trades on daily stock bars where the open is below the stop. The author acknowledges that zero risk is conditional. Calculate the average loss of such trades in R.
- One candle hit both the target and the stop. Count how often this happens on your timeframe. The test result depends on which level the tester treats as hit first.
- Volume rounding. On a small account or with 1 contract the position cannot be split. Count how many trades went without a free roll because of the minimum volume.
Platform notes
TradingView (Pine Script)
- Partial exit:
strategy.exit("FR", "L", qty_percent = 50, limit = frPrice, stop = stopLoss)and a secondstrategy.exit("Rest", "L", stop = stopLoss)for the remainder. For a third, setqty_percentrounded up, otherwise the profit will not cover the risk. - With a 1-contract position you cannot sell half. Enter with a quantity that is a multiple of 2, 3 or 4 via the
qtyparameter instrategy.entry. - If the limit and the stop are hit by one candle, their order is unknown. Use
use_bar_magnifier = true(paid plans) or test on a lower timeframe. - Entry price for calculating R:
strategy.position_avg_price. It changes when you add to the position, so R has to be fixed at the first entry.
MultiCharts and TradeStation (EasyLanguage)
- A partial exit is set by quantity:
Sell ("FR") 1000 shares total next bar at FR_Price limit. Without the wordtotal, the quantity applies to each entry separately, and with several entries more than needed will be sold. - The limit order lives one bar. Send it on every bar while
CurrentShares(orCurrentContracts) equals the size at entry. - A stop for the remainder without a quantity:
Sell ("SL") next bar at StopLoss stopcloses everything that is left. SetProfitTargetandSetStopLosswork on the whole position or per contract in money, so they cannot set a partial target. For the order of execution within a bar you need Look-Inside-Bar Backtesting or Bar Magnifier.
MetaTrader 5 (MQL5)
- A netting account has one position per symbol. A partial exit is an opposite deal of smaller volume: a pending
SellLimitforQtyFRreduces the long when it fills. The position's SL and TP apply to the entire remaining volume. - On a hedging account an opposite order opens a separate short, and you end up with a locked position. Partial closing is done by ticket:
CTrade::PositionClosePartialat market when price reaches the level. Alternatively, open two to four positions at once and give one of them a TP at the free roll level. - A position's TP closes it entirely; there is no partial target on the broker's server. Without a separate position, the free roll is executed by the EA, and it will not fire while the connection is down.
- Volume is rounded by
SYMBOL_VOLUME_STEPandSYMBOL_VOLUME_MIN. With 0.01 lot you cannot split off a share; the minimum position for a third is 0.03.
Where the idea can break
- "Zero risk" is hypothetical. A gap through the stop, slippage and commissions produce a loss even after the free roll, and the author warns about this.
- The author gives no statistics for the block. The figures in the videos are reviews of individual trades. None of them answers whether the total is higher with a free roll than without it.
- The method is shown on stocks with strong momentum and a tight stop. On a market with a wide stop, a 1-3R target may be reached rarely, and the block will almost never fire.
- In strategies with a 20-30% win rate, the total rests on a few large trades. Selling a third or half on the first thrust cuts exactly those.
- On intraday timeframes a 1R target is often reached and then given back, and many trades end at zero with three commissions.
- The benefit for discipline is real, but it cannot be measured in a backtest. The decision should be based on the test figures, not on a feeling of safety.