← All ideas
#057NewBreakoutPosition

Darvas boxes: topmost box breakout, second breakout and a stop below the box

Box top: a high not exceeded for 3 days; bottom: a low not broken for 3 days. Buy on a breakout of the topmost box into new highs, in the later version only on the second breakout. Stop 10%, then 5% below the bottom of the new box.

Jack Corsellis · Nicolas Darvas · Watch video

Markets

Stocks

Timeframe

D1

Data

OHLC, Instrument universe, Fundamentals

Rules

Partly formalised

Difficulty

Medium

Status

Untested

Some rules were added by us and are marked in the text.

TradingView has pitfalls
EasyLanguage has pitfalls
MetaTrader 5 has pitfalls

Idea in brief

Nicolas Darvas, a professional dancer, made $2 million in stocks in the 1950s and described the method in two books. Jack Corsellis goes through the second one, "You Can Still Make It in the Market". It came out about 15 years after the famous first book and describes the rules in more detail.

Darvas saw the rise of a strong stock as a staircase of boxes. The box top is a high that price does not exceed for three days in a row. The bottom is a low after the decline from the top that is not broken for three days in a row. The danger zone begins 5% below the bottom. While the stock fluctuates inside its topmost box, it is held and the fluctuations are ignored. A breakout above the top of the topmost box into new highs gives a buy with a 10% stop. Once a new box has formed above the entry, the exit comes when price falls below its bottom into the danger zone.

In the second book Darvas changed the entry rule. The first breakout more and more often fell straight back into the box, so Darvas began waiting for the second one: a breakout, a pullback, then a new high above the high of the first breakout. If there is no pullback after the first breakout and the stock simply keeps rising, Darvas does not chase it.

The method shares the box itself with weekly-box-breakout, but that card uses weekly bars, a box of six weeks or more and an initial stop in the middle third of the box. With new-high-breakout-ma10-exit it shares the entry into new highs, but the exit there is on the 10-day average. In Darvas's method the level is set by a three-day pause, the stop moves up box by box, and the position is added to on new boxes. In turtle-4w-2w the windows are fixed: 20 and 10 days.

Why it might work

Darvas's logic as retold by Jack. The only valid reason to buy a stock is that its price is rising, and attentive professionals will not miss a company with a promising future. So Darvas bought high to sell higher, near 52-week and all-time highs. A box is a step in the trend: while price is in the topmost box, the trend is intact, and a drop below the bottom means the character of the move has changed.

Darvas explained the second breakout by the behavior of professionals. They know that a breakout through resistance is a signal for chartists, and they sell the stock to them on that breakout. The pullback after the first breakout absorbs that selling, and a new high above it shows that demand is still there.

Jack adds an observation of Jack's own. Breakouts from a tight consolidation right below the level, with drying volume, work better. A rush from the bottom of the box straight to the top runs into sellers who bought near the top earlier.

Darvas made a fortune in a bull market, and Jack stresses that the method needs a strong trend in the market, the industry and the stock itself. The video has no statistics on the rules.

Rules

Darvas's rules are marked as author. Jack's additions are marked as community. Missing details were added by us and are marked as Finetiq.

Box (author)

// daily bars, one stock
// top: a high not exceeded for 3 days in a row
IF High > CandTop THEN CandTop = High, TopCount = 0      // a new high resets the count
ELSE TopCount = TopCount + 1
IF TopCount >= 3 AND top not confirmed
    BoxTop = CandTop
    CandBottom = lowest Low after the top bar

// bottom: a low after the top that is not broken for 3 days in a row
IF Low < CandBottom THEN CandBottom = Low, BottomCount = 0
ELSE BottomCount = BottomCount + 1
IF BottomCount >= 3 THEN BoxBottom = CandBottom           // box complete

IF High > BoxTop before the bottom is complete THEN search for the top again   // Finetiq
Danger = BoxBottom * 0.95                                  // author: danger zone 5% below the bottom
// community (Jack, ASYS example): bottom by closes, wicks below the level do not count

Topmost box and new highs (author)

TopmostOK = BoxTop >= highest High over the entire history before the box   // author: normally only a breakout above the all-time high
// author: after a two-year bear market there is no need to wait for an all-time high
// Finetiq: if the S&P 500 fell 20% or more from its high within the last 2 years,
// a 52-week high is enough
// author: do not hold or buy a stock that is not in its topmost box

Entry A. First breakout (author, early version)

IF box complete AND TopmostOK AND MarketPosition = 0
    BUY STOP at BoxTop + Offset         // author: box 30-35, order at 35¼
InitialStop = EntryPrice * 0.90         // author: 10% stop on the first breakout

Entry B. Second breakout (author, second book)

// first breakout: High > BoxTop. We do not buy
P1High = Highest(High) since the first breakout bar
IF Close < BoxTop THEN Reaction = TRUE         // Finetiq: a pullback is a close back inside the box
IF Reaction AND MarketPosition = 0
    BUY STOP at P1High + Offset                // author: a new high above the high of the first breakout
IF Close < Danger THEN setup canceled          // Finetiq
// author: if there is no pullback and the stock keeps rising, do not chase it.
// Finetiq: for such a stock we wait for the next box higher up
InitialStop = EntryPrice * 0.90
// community (Jack): the initial stop can go below the box bottom if it is closer than 10%.
// In Jack's tutorial trade this is about 7%

Stop, exit and adding (author, details Finetiq)

// once a new box has formed above the entry (author)
Stop = MAX(Stop, NewBoxBottom * 0.95)       // Finetiq: the stop only moves up
SELL STOP at MAX(InitialStop, Stop)
// community (Jack, tutorial trade): exit when the box bottom breaks, without the 5% buffer

// the 20% rule is stated two ways in the video (author)
A: IF Close < HighestHigh(since entry) * 0.80  THEN EXIT AT NEXT BAR OPEN
   // price pullback of more than 20% from the high, ASYS example
B: IF MaxOpenProfit > 0 AND OpenProfit < 0.80 * MaxOpenProfit  THEN EXIT AT NEXT BAR OPEN
   // do not give back more than 20% of profit
   // Finetiq: enable after a profit of 20% or more, otherwise the rule closes the trade on the first noise

// adding (author, Jack's example)
IF a new box is complete above EntryPrice
    BUY STOP at NewBoxTop + Offset          // Finetiq: 50% of the initial size, no more than 2 adds

Order (community)

// Jack: as Jack understands it, Darvas entered with a stop-limit order
BUY STOP at Trigger LIMIT Trigger * 1.01    // community (Jack): limit within 1% of the pivot
// on a gap above the limit there is no trade

Stock selection (a separate rule)

// author: first the market, then the industry, then the stock, all in an uptrend
// author: new growing industries, large earnings or expectations of them, not the largest companies
// community (Jack), screen for today's market:
Close > SMA(Close, 200) AND Close > SMA(Close, 50)
AND Close >= 0.80 * Highest(High, 252)      // within 10-20% of the 52-week high
AND small or mid cap, strong industry, earnings or revenue growth
// Finetiq: market trend = S&P 500 above SMA 200
// community (Jack): about 4 stocks in the portfolio

Parameters

Parameter Value Source
Timeframe daily bars author
Top and bottom 3 days in a row without being taken out author
Danger zone 5% below the box bottom author
High requirement all-time high author
Exception after a bear market 52-week high if the S&P 500 fell 20% or more within 2 years author (exception), Finetiq (threshold)
Entry first or second breakout author
Pullback for the second breakout close back inside the box Finetiq
Offset ¼ point at a price of 35 author
Initial stop 10% from entry author
Stop after a new box 5% below its bottom author
20% rule price pullback from the high or giving back profit author (two wordings)
Threshold for giving back profit profit of 20% or more Finetiq
Stop-limit order limit 1% above the level community (Jack)
Adding on a breakout of a new box author
Add size 50%, no more than 2 times Finetiq
Screen above SMA 50 and 200, within 20% of the 52-week high community (Jack)
Number of stocks about 4 community (Jack)

What to test

  1. First breakout versus second. The main question of the book. On the same boxes, compare the average trade, the share of breakouts that returned into the box within 5 days, and the number of strong moves missed because there was no second breakout.
  2. Pullback definition. A close back inside the box versus any pullback of 3-5% from the first breakout high. The number of trades entry B gets depends on this formalization.
  3. Three days and wicks. 2, 3, 4 and 5 days for the top and bottom; a bottom by lows versus a bottom by closes, as Jack does it. If the result changes sharply, the box is unstable.
  4. Stop. The danger zone 5% below the bottom versus an exit exactly at the bottom and versus a fixed 10%. Separately, the two wordings of the 20% rule.
  5. All-time high. All-time versus 52-week and versus no requirement. Look at the years after bear markets, when Darvas dropped the requirement.
  6. Stop-limit. The share of signals missed because of a gap above the 1% limit, and the result of those signals at the open price. If the best trades on earnings are skipped, the limit hurts.
  7. Concentration and adding. 4 stocks versus 10 and 20 on the same signals, with and without adding. Darvas believes fewer stocks means safer. Check the spread of annual results.

Platform notes

TradingView (Pine Script)

  • The box is built as a state machine on var variables recalculated on bar close. The order strategy.entry("L", strategy.long, stop = boxTop + offset) stays active until filled. Remove it with strategy.cancel when the box has changed or the setup is canceled.
  • If both stop and limit are set in strategy.entry, the result is a stop-limit order, as Jack uses.
  • Adding is allowed by the pyramiding parameter in strategy(); by default there are no additional entries.
  • The all-time high depends on the depth of loaded history, which is limited by the subscription plan. Adjustment for splits and dividends changes old highs and box tops.

MultiCharts and TradeStation (EasyLanguage)

  • Buy next bar at BoxTop + Offset stop lives for one bar. While the box is valid, the order has to be sent on every bar.
  • A stop-limit entry is easier to model in the test with a condition: if the bar opened 1% or more above the level, there is no trade. This way the result does not depend on how the platform fills a stop-limit on history.
  • In the strategy properties, check that multiple entries in the same direction are allowed. Without it, the add on a new box will not be filled.
  • Set stops as a price: Sell next bar at Stop stop. SetStopLoss works in money, per share or per position, and gives a different level after an add.
  • Store the all-time high in a variable ATH = MaxList(ATH, High[1]) and load all available history.

MetaTrader 5 (MQL5)

  • Brokers usually offer stock CFDs only on large companies. The small and mid-sized growth stocks Darvas looked for are scarce there, and the history is shorter than on the exchange, so the all-time high from it is unreliable.
  • On a netting account, an add merges into one position with an average price. Store the 10% stop from the first entry in your own variable. On a hedging account each add has its own ticket and its own stop.
  • Recreate a BuyStop via CTrade with a daily expiration after each bar closes. MQL5 has a stop-limit order type, but support for it on stock CFDs depends on the broker.
  • The daily bar is built on server time, and at some brokers it includes pre-market quotes. Box tops and bottoms then differ from the exchange ones.

Where the idea can break

  • The rules are retold from a 1970s book, and there are no statistics. Darvas made the fortune in the bull market of the late 1950s, and a famous success story is itself a product of survivorship bias.
  • Darvas's own account is inconsistent. The second breakout rule is in the book, but in the Teledyne example Darvas buys the first breakout with a 10% stop. Jack is not sure whether Darvas always waited for the second one.
  • The book does not give a number for the pullback before the second breakout. Our formalization may select different trades than Darvas would have.
  • The 20% rule is stated two ways in the video: a price pullback from the high and giving back accumulated profit. These are different exits with different frequencies.
  • Darvas's stock selection is qualitative: leaders of new industries, earnings expectations, a strong group. A technical screen reproduces only part of it, and a test on today's list of stocks is inflated by survivorship bias.
  • Prices in those years were quoted in fractions; an offset of ¼ point at a price of 35 is about 0.7%. At modern prices, set the offset in percent or ticks.
  • About four stocks in the portfolio give a large spread of results. The video advertises MarketSmith and Jack's paid community.

Sources

  • NICOLAS DARVAS made MILLIONS from BOX TRADING Strategy

    Jack Corsellis · Nicolas Darvas

    • 03:32Big money in the bull market of the late 1950s
    • 04:54Danger zone 5% below the box bottom
    • 05:41Three-day rule for the top and the bottom
    • 06:14Only the topmost box, the buy and a 10% stop
    • 07:15Breakout into new highs: an order at 35¼
    • 07:50The second breakout instead of the first
    • 09:18ASYS example: a $4.13-$5 box
    • 11:19Pullback of more than 20% from the high
    • 13:15Jack: tight consolidation below the level
    • 16:06All-time high and the exception after a bear market
    • 24:06Jack's screen for today's market
    • 27:52Four stocks instead of twenty
    • 28:43Teledyne: buying the first breakout with a 10% stop
    • 32:58Do not give back more than 20% of profit
    • 35:02Jack: limit within 1% of the pivot
    • 37:22Adding on a new box and moving the stop
    • 38:14Exit when the box bottom breaks

Author's claims

These figures and statements are the author's. We have not verified them.

  • Darvas made $2 million in the bull market of the late 1950s. By Jack's estimate, adjusted for inflation, that is about $50 million in today's money.
  • Darvas writes that for more than 20 years the first breakout was an automatic buy. Then the first breakout often fell straight back into the box by a couple of points, and Darvas switched to the second breakout.
  • Jack's example, ASYS in 1995: a box from $4.13 to $5, a buy on the second breakout on heavy volume. After the rally continued, the stock pulled back 23% from the high, which under the 20% rule means an exit.
  • Darvas called the portfolios of two acquaintances with about 20 stocks each diversification taken to the point of absurdity and showed a personal portfolio of four. Darvas gives no exact number; four stocks is Jack's reading of the book.
  • Jack's tutorial trade on a first breakout before earnings: a limit from $19.13 to $19.34, filled at $19.32, stop $17.96, initial risk about 7%.

Related ideas

Updated: 2026-09-11