Titanic Syndrome

397
█ OVERVIEW

Titanic Syndrome plots NYSE or Nasdaq new 52-week highs and new 52-week lows as a percent of total issues, shades a window of sessions that starts at a closing high in a reference index, and marks the sessions where new lows outnumber new highs inside that window. The thesis is that an index high reached while more issues set yearly lows than yearly highs reflects narrowing participation beneath the index.

An optional Strict mode adds three confirmation tests. The script separates the first signal of each episode from repeat days and attaches its alerts to first signals only.


█ HISTORY / BACKGROUND

The earliest text located for this method is Bill Ohama and Melanie Bowman, "Patterns that detect stock market reversals," a trade-journal article published in November 1988 and written in Ohama's voice. Ohama writes that he noticed the pattern in fall 1965 after studying the May 1965 DJIA top and the June 1965 low. No 1965 publication was found. The article spells the name Ohama. Some later secondary sources write "Omaha", and none of them explains the change.

The 1988 rule starts from a DJIA high for the year, or a 400-point rally, and looks for NYSE yearly new lows exceeding yearly new highs within seven trading days before or after that high. The article counts yearly as the past 52 weeks. Its confirmations for tops are declining-issue counts, five consecutive lower DJIA closes and five days of new lows above new highs.

Tom McClellan's June 2013 article "Hindenburg and Titanic, OH MY!" restates the rule against an unnamed major market high and lists three further conditions that it attributes to Ohama: new lows above new highs on 4 of 5 days, new highs below 1.5% of total issues, and the DJIA or S&P 500 down on 4 of 5 days. It does not say how many must be met. The 1988 text has stricter relatives of the first and third conditions and nothing like the 1.5% test.

Later sources disagree on the reference index, which may be the DJIA, the S&P 500 or the Nasdaq-100, on whether the high is a 52-week or all-time high, on window length, and on whether the window runs after the high only or on both sides of it. NYSE new-high and new-low counts have not always used a rolling 52-week basis. Greg Morris dates the fixed 52-week basis to January 1978, so Ohama's 1965 observation rested on counts with a different lookback.

The conceptual basis is breadth divergence. A price-weighted or capitalization-weighted index can reach a high on the strength of a minority of its constituents, while new-high and new-low counts weight every issue equally. When yearly lows outnumber yearly highs within days of an index high, more issues sit at one-year extremes on the downside than on the upside while the index sits at or near its own extreme. The method treats that divergence as the condition of interest.


█ HOW IT WORKS

The script runs its logic only when the chart timeframe is one day, tested as timeframe.isdaily with a multiplier of 1. Every external series is requested with request.security on the "1D" timeframe, with gaps on and lookahead off.

1. Breadth inputs. For the selected universe the script requests five daily series: new highs, new lows, advances, declines and unchanged.
  NYSE uses INDEX:MAHN, INDEX:MALN, INDEX:ADVN, INDEX:DECN and INDEX:UNCN. Nasdaq uses INDEX:MAHQ, INDEX:MALQ, INDEX:ADVQ, INDEX:DECQ and INDEX:UNCQ.
  Total issues is advances plus declines plus unchanged.
2. Data validity. A bar is valid when all five values are present and non-negative, total issues is above zero, new highs and new lows do not exceed total issues, and the five values are not all identical to the previous bar's.
  Identical values are treated as a stale feed. No condition below can be true on an invalid bar.
3. Reference high. Inside the reference index's own request context, a 52-week closing high is a close at or above ta.highest of the 252 closes ending on that bar, and an all-time closing high is a close at or above ta.max of every close in the requested history.
  The context returns ta.barssince of each flag, so sessions since the last high are counted in the reference index's own sessions.
4. Proximity window. The window is active when the sessions since the selected high type are at most N, the Proximity window input.
  The high session is session 0, and a new high restarts the count.
5. Breadth test. New lows above new highs is true on a valid bar where new lows exceed new highs.
  Both plotted lines share the same denominator, so this is the same as the red line sitting above the green line.
6. Either side. When Window direction is Either side of the high, a valid bar that is itself a qualifying high also qualifies when new lows exceeded new highs on any of the previous N chart bars.
  The script reads ta.barssince of the breadth test as of the previous bar and requires it to be at most N minus 1.
  The signal is dated on the high session, the first bar on which the high is known.
7. Classic. The bar is valid, and either the window is active with new lows above new highs, or the either-side case in step 6 holds.
8. Strict. Classic, and all three of the following on the same bar:
   • new lows above new highs on at least 4 of the last 5 chart bars, counted with math.sum, where an invalid bar counts as not meeting the test
   • SP:SPX closed below its previous close on at least 4 of its last 5 sessions, counted inside the SPX request context
   • new highs divided by total issues below 0.015
9. Episodes. A Classic signal is the first of an episode when no Classic signal occurred on the previous 20 chart bars, tested with ta.barssince of the signal as of the previous bar. Every other Classic signal is a repeat day.
  Strict signals are tracked the same way and separately.
  The count restarts at each signal, so an episode stays open while signals keep recurring within 20 bars of each other.
10. Display. Mode selects whether the markers show Classic or Strict signals. The two alert conditions do not depend on Mode.


█ HOW TO USE

Apply the indicator to a 1-day chart of a symbol that trades on the US exchange calendar, such as the reference index itself. The chart symbol's own prices are not used. The chart supplies only the bar timeline on which the requested series are aligned.

The code is designed for the 1-day timeframe. On any other timeframe it draws no series and signals nothing. The rule is defined in daily sessions, the breadth series are daily counts, and the 252-session lookback, the proximity window, the 4-of-5 counts and the 20-bar episode gap are all counted in daily bars.

The indicator draws in its own pane:
 • The green line is new highs as a percent of total issues, and the red line is new lows as a percent of total issues.
 • The dotted gray line at 1.5% is the Strict new-high limit. Strict requires the green line below it.
 • Light indigo background shading marks every session where the proximity window is active.
  Red above green inside the shading is a Classic signal.
 • A red downward triangle at the top of the pane marks the first signal of an episode, and a faded red circle marks a repeat day.
  In Classic mode these mark Classic signals. In Strict mode they mark Strict signals.
 • In Classic mode, an orange diamond at the bottom of the pane marks the first day of a Strict episode.
  Every Strict day is also a Classic day, so a diamond always falls on a bar with a triangle or a circle.
  It is usually a circle, because Strict needs most of the last five sessions to qualify.
 • The optional status table on the last bar shows the breadth-data state and date, the reference high and sessions since it, the window position as k of N, the new-low and new-high counts, each Strict test with its reading, whether the bar is a first or repeat Classic and Strict signal, and the date of the last episode start in the selected mode.
  When a breadth series is missing, the table names it. When the either-side case fires, the table marks it as a prior-session trigger.
 • With the table off, a one-cell notice appears in the table position when the last bar is on the wrong timeframe or fails a breadth-data check.
  It names the failure and clears when the check passes.
 • Series whose names begin with "x" appear only in the Data Window. They carry the requested inputs and every intermediate flag so each bar can be audited.

Two alert conditions are available. "Titanic Classic: first of episode" fires on the first Classic signal of each episode, and "Titanic Strict confirmation" fires on the first Strict signal of each Strict episode. In Classic mode the first matches the triangles and the second matches the diamonds. Repeat days never alert. Both messages are fixed text. Breadth counts update during the session, so set alerts to trigger once per bar close.

A Classic or Strict signal reports that the condition held on that bar. It is not a forecast.


█ SETTINGS

 • Universe selects the breadth symbols, NYSE or Nasdaq. Default NYSE.
 • Reference index selects the index whose closing highs open the window: DJIA from TVC:DJI, NDX from NASDAQ:NDX, or SPX from SP:SPX.
  Universe default uses DJIA for NYSE and NDX for Nasdaq. Default Universe default.
 • High type selects a 52-week closing high or an all-time closing high. Default 52-week closing high.
 • Proximity window (sessions) sets N, the number of reference-index sessions after the high during which the window stays active, and the lookback for the either-side case.
  Range 1 to 30. Default 7.
 • Window direction selects After the high or Either side of the high. Default After the high.
 • Mode selects whether the markers show Classic or Strict signals. Default Classic.
 • Show status table draws the status table on the last bar. Default off.
 • Table position places the status table and the notice in one of the four chart corners. Default Top right.
 • Mark Strict confirmations in Classic mode draws the orange diamond on the first day of each Strict episode while Mode is Classic. Default on.

The 252-session lookback, the 1.5% limit, the 4-of-5 counts, the 20-bar episode gap and the use of SPX for the decline test are fixed in the code.


█ WHAT MAKES IT ORIGINAL

The method comes from Ohama and McClellan. What this script adds is the way it settles the points the sources leave open and the way it treats data:
 • It codes both readings of the window without lookahead. The half of the 1988 window that comes before the high cannot be known on the breadth day, so the script dates it on the high session, the first bar on which the high exists.
 • It counts the window in the reference index's own sessions by computing ta.barssince of the high inside the reference symbol's request context. A missing breadth bar therefore does not shift the window.
 • It encodes McClellan's three conditions as one all-required Strict mode, and it computes the 1.5% test against total issues summed from the advance, decline and unchanged series of the same exchange as the new-high count.
 • Bad data cannot signal. Missing, negative, out-of-range and stale breadth values all suppress the signal, and the status table or the notice names the failure.
 • It separates first-of-episode signals from repeat days with a 20-bar gap, tracks Classic and Strict episodes separately, and attaches alerts only to first signals.
 • Every requested input and intermediate flag is exposed as a Data Window series, so each bar's result can be recomputed independently.


█ NOTES / LIMITATIONS

 • The logic runs only on a 1-day chart. On any other timeframe no series, shading, markers or alerts are produced.
 • Requests use the 1-day timeframe with lookahead off, so closed bars use no future data and do not repaint.
  The current bar's breadth counts update during the session, so its signal can appear and disappear before the close.
  A provider revision to past counts would change past bars.
 • Gaps are on, so a bar where a breadth series has no value counts as missing data and cannot signal.
  The 4-of-5 breadth count, the either-side lookback and the 20-bar episode gap are counted in chart bars, so a chart whose calendar differs from the US exchange calendar shifts them.
 • Plots and signals begin only where the breadth series have history. On the data mirror checked, the new-high and new-low series start in October 2010.
  The 52-week high needs 252 sessions of reference-index history, and no window opens before the first qualifying high.
 • The all-time high is measured over the history loaded on the chart. If that history does not reach the index's prior peak, all-time-high flags can appear where none exist in the full record.
  With the table on, the reference row shows the date the basis starts.
 • A genuine repeat of all five breadth values on consecutive sessions would be flagged stale and would not signal.
 • No series is substituted for another. The NYSE breadth symbols count a filtered list of about 1,860 issues, close to common stocks plus ADRs.
  On 2026-10-16, ADVN, DECN and UNCN summed to 1,866, and a published common-plus-ADR count of NYSE issues for that day was 1,861.
  The full NYSE composite list, which also counts closed-end funds, preferred shares and other non-operating issues, is larger, so signals here can differ from accounts based on composite counts.
  The Nasdaq universe was not checked.
 • Whether the data provider counts intraday or closing 52-week highs and lows is not documented on the symbols. The reference-high test always uses closes.
 • The Strict decline test always uses SP:SPX, whatever the reference index. If SP:SPX returns no data, Strict cannot fire.
  If the reference index returns no data, no window opens and nothing signals. The notice covers breadth data only and does not report a missing reference or SPX feed.
 • Strict requires all three tests on the same bar as a Classic signal, so it fires far less often than Classic.
 • The 1988 confirmations and the 400-point-rally alternative to an index high are not coded.
 • The script reports a condition. It does not forecast, size positions or describe what followed past signals.

Thông báo miễn trừ trách nhiệm

Thông tin và các ấn phẩm này không nhằm mục đích, và không cấu thành, lời khuyên hoặc khuyến nghị về tài chính, đầu tư, giao dịch hay các loại khác do TradingView cung cấp hoặc xác nhận. Đọc thêm tại Điều khoản Sử dụng.