Turtle System 1 (20/10) + N-Stop + MTF Table V7.2🐢 Description: Turtle System 1 (20/10) IndicatorThis indicator implements the original trading signals of the Turtle Trading System 1 based on the classic Donchian Channels. It incorporates a historically correct, volatility-based Trailing Stop (N-Stop) and a Multi-Timeframe (MTF) status dashboard. The script is written in Pine Script v6, optimized for performance and reliability.📊 Core Logic and ParametersThe system is a pure trend-following model, utilizing the more widely known, conservative parameters of the Turtle System 1:FunctionParameterValueDescriptionEntry$\text{Donchian Breakout}$$\mathbf{20}$Buy/Sell upon breaking the 20-day High/Low.Exit (Turtle)$\text{Donchian Breakout}$$\mathbf{10}$Close the position upon breaking the 10-day Low/High.Volatility$\mathbf{N}$ (ATR Period)$\mathbf{20}$Calculation of market volatility using the Average True Range (ATR).Stop-LossMultiplier$\mathbf{2.0} BER:SETS the initial and Trailing Stop at $\mathbf{2N}$.🛠️ Key Technical Features1. Original Turtle Trailing Stop (Section 4)The stop-loss mechanism is implemented with the historically accurate Turtle Trailing Logic. The stop is not aggressively tied to the current candle's low/high, which often causes premature exits. Instead, the stop only trails in the direction of the trend, maximizing the previous stop price against the new calculated $\text{Close} \pm 2N$:$$\text{New Trailing Stop} = \text{max}(\text{Previous Stop}, \text{Close} \pm (2 \times N))$$2. Reliable Multi-Timeframe (MTF) Status (Section 6)The indicator features a robust MTF status table.Purpose: It calculates and persistently stores the Turtle System 1 status (LONG=1, SHORT=-1, FLAT=0) for various timeframes (1H, 4H, 8H, 1D, and 1W).Method: It uses global var int variables combined with request.security(), ensuring the status is accurately maintained and updated across different bars and timeframes, providing a reliable higher-timeframe context.3. VisualizationsChannels: The 20-period (Entry) and 10-period (Exit) Donchian Channels are plotted.Stop Line: The dynamic $\mathbf{2N}$ Trailing Stop is visible as a distinct line.Signals: plotshape markers indicate Entry and Exit.MTF Table: A clean, color-coded status summary is displayed in the upper right corner.
Volatilität
Turtle System 2 (55/20) + N-Stop + MTF Table V7.2🐢 Description: Turtle System 2 (55/20) IndicatorThis indicator implements the trading signals of the Turtle Trading System 2 based on the classic Donchian Channels, supplemented by a historically correct, volatility-based Trailing Stop (N-Stop) and a Multi-Timeframe (MTF) status overview. The script was developed in Pine Script v6 and is optimized for performance and robustness.📊 Core Logic and ParametersThe indicator is based on the rule-based trend-following system developed by Richard Dennis and William Eckhardt, utilizing the more aggressive Entry/Exit parameters of System 2:FunctionParameterValueDescriptionEntry$\text{Donchian Breakout}$$\mathbf{55}$Buy/Sell upon breaking the 55-day High/Low.Exit (Turtle)$\text{Donchian Breakout}$$\mathbf{20}$Close the position upon breaking the 20-day Low/High.Volatility$\mathbf{N}$ (ATR Period)$\mathbf{20}$Calculation of market volatility using the Average True Range (ATR).Stop-LossMultiplier$\mathbf{2.0} BER:SETS the initial and Trailing Stop at $\mathbf{2N}$.🛠️ Technical Implementation1. Correct Trailing Stop (Section 4)In contrast to many flawed implementations, the Trailing Stop is implemented here according to the Original Turtle Logic. The stop price (current_stop_price) is not aggressively tied to the current low or high. Instead, at the close of each bar, it is only trailed in the direction of the trade (math.max for long positions) based on the formula:$$\text{New Trailing Stop} = \text{max}(\text{Previous Stop}, \text{Close} \pm (2 \times N))$$This ensures the stop is only adjusted upon sustained positive movement and is not prematurely triggered by short-term, deep price shadows.2. Reliable Multi-Timeframe (MTF) Logic (Section 6)The MTF section utilizes global var int variables (mtf_status_1h, mtf_status_D, etc.) in conjunction with the request.security() function.Purpose: Calculates and persistently stores the current Turtle System 2 status (LONG=1, SHORT=-1, FLAT=0) for the timeframes 1H, 4H, 8H, 1D, and 1W.Advantage: By persistently storing the status using the var variables, the critical error of single-update status is eliminated. The states shown in the table are reliable and accurately reflect the Turtle System's position status on the respective timeframes.3. Visual ComponentsDonchian Channels: The entry (55-period) and exit (20-period) channels are drawn with color highlighting.N-Stop Line: The dynamically calculated Trailing Stop ($\mathbf{2N}$) is displayed as a magenta line.Visual Signals: plotshape markers indicate Entry and Exit points.MTF Table: A compact status summary with color coding (Green/Red/Gray) for the higher timeframes is displayed in the upper right corner.
ATH대비 지정하락률에 도착 시 매수 - 장기홀딩 선물 전략(ATH Drawdown Re-Buy Long Only)본 스크립트는 과거 하락 데이터를 이용하여, 정해진 하락 %가 발생하는 경우 자기 자본의 정해진 %만큼을 진입하게 설계되어진 스트레티지입니다.
레버리지를 사용할 수 있으며 기본적으로 셋팅해둔 값이 내장되어있습니다.(자유롭게 바꿔서 쓰시면 됩니다.) 추가적으로 2번의 진입 외에도 다른 진입 기준, 진입 %를 설정하실 수 있으며 - ChatGPT에게 요청하면 수정해줄 것입니다.
실제 사용용도로는 KillSwitch 기능을 꺼주세요. 바 돋보기 기능을 켜주세요.
ATH Drawdown Re-Buy Long Only 전략 설명
1. 전략 개요
ATH Drawdown Re-Buy Long Only 전략은 자산의 역대 최고가(ATH, All-Time High)를 기준으로 한 하락폭(드로우다운)을 활용하여,
특정 구간마다 단계적으로 롱 포지션을 구축하는 자동 재매수(Long Only) 전략입니다.
본 전략은 다음과 같은 목적을 가지고 설계되었습니다.
급격한 조정 구간에서 체계적인 분할 매수 및 레버리지 활용
ATH를 기준으로 한 명확한 진입 규칙 제공
실시간으로
평단가
레버리지
청산가 추정
계좌 MDD
수익률
등을 시각적으로 제공하여 리스크와 포지션 상태를 직관적으로 확인할 수 있도록 지원
※ 본 전략은 교육·연구·백테스트 용도로 제공되며,
어떠한 형태의 투자 권유 또는 수익을 보장하지 않습니다.
2. 전략의 핵심 개념
2-1. ATH(역대 최고가) 기준 드로우다운
전략은 차트 상에서 항상 가장 높은 고가(High)를 ATH로 기록합니다.
새로운 고점이 형성될 때마다 ATH를 갱신하고, 해당 ATH를 기준으로 다음을 계산합니다.
현재 바의 저가(Low)가 ATH에서 몇 % 하락했는지
현재 바의 종가(Close)가 ATH에서 몇 % 하락했는지
그리고 사전에 설정한 두 개의 드로우다운 구간에서 매수를 수행합니다.
1차 진입 구간: ATH 대비 X% 하락 시
2차 진입 구간: ATH 대비 Y% 하락 시
각 구간은 ATH가 새로 갱신될 때마다 한 번씩만 작동하며,
새로운 ATH가 생성되면 다시 “1차 / 2차 진입 가능 상태”로 초기화됩니다.
2-2. 첫 포지션 100% / 300% 특수 규칙
이 전략의 중요한 특징은 **“첫 포지션 진입 시의 예외 규칙”**입니다.
전략이 현재 어떠한 포지션도 들고 있지 않은 상태에서
최초로 롱 포지션을 진입하는 시점(첫 포지션)에 대해:
기본적으로는 **자산의 100%**를 기준으로 포지션을 구축하지만,
만약 그 순간의 가격이 ATH 대비 설정값 이상(예: 약 –72.5% 이상 하락한 상황) 이라면
→ 자산의 300% 규모로 첫 포지션을 진입하도록 설계되어 있습니다.
이 규칙은 다음과 같이 동작합니다.
첫 진입이 1차 드로우다운 구간에서 발생하든,
첫 진입이 2차 드로우다운 구간에서 발생하든,
현재 하락폭이 설정된 기준 이상(예: –72.5% 이상) 이라면
→ “이 정도 하락이면 첫 진입부터 더 공격적으로 들어간다”는 의미로 300% 규모로 진입
그 이하의 하락폭이라면
→ 첫 진입은 100% 규모로 제한
즉, 전략은 다음 두 가지 모드로 동작합니다.
일반적인 상황의 첫 진입: 자산의 100%
심각한 드로우다운 구간에서의 첫 진입: 자산의 300%
이 특수 규칙은 깊은 하락에서는 공격적으로, 평소에는 상대적으로 보수적으로 진입하도록 설계된 것입니다.
3. 전략 동작 구조
3-1. 매수 조건
차트 상 High 기준으로 ATH를 추적합니다.
각 바마다 해당 ATH에서의 하락률을 계산합니다.
사용자가 설정한 두 개의 드로우다운 구간(예시):
1차 구간: 예를 들어 ATH – 50%
2차 구간: 예를 들어 ATH – 72.5%
각 구간에 대해 다음과 같은 조건을 확인합니다.
“이번 ATH 구간에서 아직 해당 구간 매수를 한 적이 없는 상태”이고,
현재 바의 저가(Low)가 해당 구간 가격 이하를 찍는 순간
→ 해당 바에서 매수 조건 충족으로 간주
실제 주문은:
해당 구간 가격에 맞춰 롱 포지션 진입(리밋/시장가 기반 시뮬레이션) 으로 처리됩니다.
3-2. ATH 갱신과 진입 기회 리셋
차트 상에서 새로운 고점(High)이 기존 ATH를 넘어서는 순간,
ATH가 갱신되고,
1차 / 2차 진입 여부를 나타내는 내부 플래그가 초기화됩니다.
이를 통해, 시장이 새로운 고점을 돌파해 나갈 때마다,
해당 구간에서 다시 한 번씩 1차·2차 드로우다운 진입 기회를 갖게 됩니다.
4. 포지션 사이징 및 레버리지
4-1. 계좌 자산(Equity) 기준 포지션 크기 결정
전략은 현재 계좌 자산을 다음과 같이 정의하여 사용합니다.
현재 자산 = 초기 자본 + 실현 손익 + 미실현 손익
각 진입 구간에서의 포지션 가치는 다음과 같이 결정됩니다.
1차 진입 구간:
“자산의 몇 %를 사용할지”를 설정값으로 입력
설정된 퍼센트를 계좌 자산에 곱한 뒤,
다시 전략 내 레버리지 배수(Leverage) 를 곱하여 실제 포지션 가치를 계산
2차 진입 구간:
동일한 방식으로, 독립된 퍼센트 설정값을 사용
즉, 포지션 가치는 다음과 같이 계산됩니다.
포지션 가치 = 현재 자산 × (해당 구간 설정 % / 100) × 레버리지 배수
그리고 이를 해당 구간의 진입 가격으로 나누어 실제 수량(토큰 단위) 를 산출합니다.
4-2. 첫 포지션의 예외 처리 (100% / 300%)
첫 포지션에 대해서는 위의 일반적인 퍼센트 설정 대신,
다음과 같은 고정 비율이 사용됩니다.
기본: 자산의 100% 규모로 첫 포지션 진입
단, 진입 시점의 ATH 대비 하락률이 설정값 이상(예: –72.5% 이상) 일 경우
→ 자산의 300% 규모로 첫 포지션 진입
이때 역시 다음 공식을 사용합니다.
포지션 가치 = 현재 자산 × (100% 또는 300%) × 레버리지
그리고 이를 가격으로 나누어 실제 진입 수량을 계산합니다.
이 규칙은:
첫 진입이 1차 구간이든 2차 구간이든 동일하게 적용되며,
“충분히 깊은 하락 구간에서는 첫 진입부터 더 크게,
평소에는 비교적 보수적으로” 라는 운용 철학을 반영합니다.
4-3. 실레버리지(Real Leverage)의 추적
전략은 각 바 단위로 다음을 추적합니다.
바가 시작할 때의 기존 포지션 크기
해당 바에서 새로 진입한 수량
이를 바탕으로, 진입이 발생한 시점에 다음을 계산합니다.
실제 레버리지 = (포지션 가치 / 현재 자산)
그리고 차트 상에 예를 들어:
Lev 2.53x 와 같은 형식의 레이블로 표시합니다.
이를 통해, 매수 시점마다 실제 계좌 레버리지가 어느 정도였는지를 직관적으로 확인할 수 있습니다.
5. 시각화 및 모니터링 요소
5-1. 차트 상 시각 요소
전략은 차트 위에 다음과 같은 정보를 직접 표시합니다.
ATH 라인
High 기준으로 계산된 역대 최고가를 주황색 선으로 표시
평단가(평균 진입가) 라인
현재 보유 포지션이 있을 때,
해당 포지션의 평균 진입가를 노란색 선으로 표시
추정 청산가(고정형 청산가) 라인
포지션 수량이 변화하는 시점을 감지하여,
당시의 평단가와 실제 레버리지를 이용해 근사적인 청산가를 계산
이를 빨간색 선으로 차트에 고정 표시
포지션이 없거나 레버리지가 1배 이하인 경우에는 청산가 라인을 제거
매수 마커 및 레이블
1차/2차 매수 조건이 충족될 때마다 해당 지점에 매수 마커를 표시
"Buy XX% @ 가격", "Lev XXx" 형태의 라벨로
진입 비율과 당시 레버리지를 함께 시각화
레이블의 위치는 설정에서 선택 가능:
바 아래 (Below Bar)
바 위 (Above Bar)
실제 가격 위치 (At Price)
5-2. 우측 상단 정보 테이블
차트 우측 상단에는 현재 계좌·포지션 상태를 요약한 정보 테이블이 표시됩니다.
대표적으로 다음 항목들이 포함됩니다.
Pos Qty (Token)
현재 보유 중인 포지션 수량(토큰 기준, 절대값 기준)
Pos Value (USDT)
현재 포지션의 시장 가치 (수량 × 현재 가격)
Leverage (Now)
현재 실레버리지 (포지션 가치 / 현재 자산)
DD from ATH (%)
현재 가격 기준, 최근 ATH에서의 하락률(%)
Avg Entry
현재 포지션의 평균 진입 가격
PnL (%)
현재 포지션 기준 미실현 손익률(%)
Max DD (Equity %)
전략 전체 기간 동안 기록된 계좌 기준 최대 손실(MDD, Max Drawdown)
Last Entry Price
가장 최근에 포지션을 추가로 진입한 직후의 평균 진입 가격
Last Entry Lev
위 “Last Entry Price” 시점에서의 실레버리지
Liq Price (Fixed)
위에서 설명한 고정형 추정 청산가
Return from Start (%)
전략 시작 시점(초기 자본) 대비 현재 계좌 자산의 총 수익률(%)
이 테이블을 통해 사용자는:
현재 계좌와 포지션의 상태
리스크 수준
누적 성과
를 직관적으로 파악할 수 있습니다.
6. 시간 필터 및 라벨 옵션
6-1. 전략 동작 기간 설정
전략은 옵션으로 특정 기간에만 전략을 동작시키는 시간 필터를 제공합니다.
“Use Date Range” 옵션을 활성화하면:
시작 시각과 종료 시각을 지정하여
해당 구간에 한해서만 매매가 발생하도록 제한
옵션을 비활성화하면:
전략은 전체 차트 구간에서 자유롭게 동작
6-2. 진입 라벨 위치 설정
사용자는 매수/레버리지 라벨의 위치를 선택할 수 있습니다.
바 아래 (Below Bar)
바 위 (Above Bar)
실제 가격 위치 (At Price)
이를 통해 개인 취향 및 차트 가독성에 맞추어
시각화 방식을 유연하게 조정할 수 있습니다.
7. 활용 대상 및 사용 예시
본 전략은 다음과 같은 목적에 적합합니다.
현물 또는 선물 롱 포지션 기준 장기·스윙 관점 추매 전략 백테스트
“고점 대비 하락률”을 기준으로 한 규칙 기반 운용 아이디어 검증
레버리지 사용 시
계좌 레버리지·청산가·MDD를 동시에 모니터링하고자 하는 경우
특정 자산에 대해
“새로운 고점이 형성될 때마다
일정한 규칙으로 깊은 조정 구간에서만 분할 진입하고자 할 때”
실거래에 그대로 적용하기보다는,
전략 아이디어 검증 및 리스크 프로파일 분석,
자신의 성향에 맞는 파라미터 탐색 용도로 사용하는 것을 권장합니다.
8. 한계 및 유의사항
백테스트 결과는 미래 성과를 보장하지 않습니다.
과거 데이터에 기반한 시뮬레이션일 뿐이며,
실제 시장에서는
유동성
슬리피지
수수료 체계
강제청산 규칙
등 다양한 변수가 존재합니다.
청산가는 단순화된 공식에 따른 추정치입니다.
거래소별 실제 청산 규칙, 유지 증거금, 수수료, 펀딩비 등은
본 전략의 계산과 다를 수 있으며,
청산가 추정 라인은 참고용 지표일 뿐입니다.
레버리지 및 진입 비율 설정에 따라 손실 폭이 매우 커질 수 있습니다.
특히 **“첫 포지션 300% 진입”**과 같이 매우 공격적인 설정은
시장 급락 시 계좌 손실과 청산 리스크를 크게 증가시킬 수 있으므로
신중한 검토가 필요합니다.
실거래 연동 시에는 별도의 리스크 관리가 필수입니다.
개별 손절 기준
포지션 상한선
전체 포트폴리오 내 비중 관리 등
본 전략 외부에서 추가적인 안전장치가 필요합니다.
9. 결론
ATH Drawdown Re-Buy Long Only 전략은 단순한 “저가 매수”를 넘어서,
ATH 기준으로 드로우다운을 구조적으로 활용하고,
첫 포지션에 대한 **특수 규칙(100% / 300%)**을 적용하며,
레버리지·청산가·MDD·수익률을 통합적으로 시각화함으로써,
하락 구간에서의 규칙 기반 롱 포지션 구축과
리스크 모니터링을 동시에 지원하는 전략입니다.
사용자는 본 전략을 통해:
자신의 시장 관점과 리스크 허용 범위에 맞는
드로우다운 구간
진입 비율
레버리지 설정
다양한 시나리오에 대한 백테스트와 분석
을 수행할 수 있습니다.
다시 한 번 강조하지만,
본 전략은 연구·학습·백테스트를 위한 도구이며,
실제 투자 판단과 책임은 전적으로 사용자 본인에게 있습니다.
/ENG Version.
This script is designed to use historical drawdown data and automatically enter positions when a predefined percentage drop from the all-time high occurs, using a predefined percentage of your account equity.
You can use leverage, and default parameter values are provided out of the box (you can freely change them to suit your style).
In addition to the two main entry levels, you can add more entry conditions and custom entry percentages – just ask ChatGPT to modify the script.
For actual/live usage, please turn OFF the KillSwitch function and turn ON the Bar Magnifier feature.
ATH Drawdown Re-Buy Long Only Strategy
1. Strategy Overview
The ATH Drawdown Re-Buy Long Only strategy is an automatic re-buy (Long Only) system that builds long positions step-by-step at specific drawdown levels, based on the asset’s all-time high (ATH) and its subsequent drawdown.
This strategy is designed with the following goals:
Systematic scaled buying and leverage usage during sharp correction periods
Clear, rule-based entry logic using drawdowns from ATH
Real-time visualization of:
Average entry price
Leverage
Estimated liquidation price
Account MDD (Max Drawdown)
Return / performance
This allows traders to intuitively monitor both risk and position status.
※ This strategy is provided for educational, research, and backtesting purposes only.
It does not constitute investment advice and does not guarantee any profits.
2. Core Concepts
2-1. Drawdown from ATH (All-Time High)
On the chart, the strategy always tracks the highest high as the ATH.
Whenever a new high is made, ATH is updated, and based on that ATH the following are calculated:
How many percent the current bar’s Low is below the ATH
How many percent the current bar’s Close is below the ATH
Using these, the strategy executes buys at two predefined drawdown zones:
1st entry zone: When price drops X% from ATH
2nd entry zone: When price drops Y% from ATH
Each zone is allowed to trigger only once per ATH cycle.
When a new ATH is created, the “1st / 2nd entry possible” flags are reset, and new opportunities open up for that ATH leg.
2-2. Special Rule for the First Position (100% / 300%)
A key feature of this strategy is the special rule for the very first position.
When the strategy currently holds no position and is about to open the first long position:
Under normal conditions, it builds the position using 100% of account equity.
However, if at that moment the price has dropped by at least a predefined threshold from ATH (e.g. around –72.5% or more),
→ the strategy will open the first position using 300% of account equity.
This rule works as follows:
Whether the first entry happens at the 1st drawdown zone or at the 2nd drawdown zone,
If the current drawdown from ATH is at or below the threshold (e.g. –72.5% or worse),
→ the strategy interprets this as “a sufficiently deep crash” and opens the initial position with 300% of equity.
If the drawdown is less severe than the threshold,
→ the first entry is capped at 100% of equity.
So the strategy has two modes for the first entry:
Normal market conditions: 100% of equity
Deep drawdown conditions: 300% of equity
This special rule is intended to be aggressive in extremely deep crashes while staying more conservative in normal corrections.
3. Strategy Logic & Execution
3-1. Entry Conditions
The strategy tracks the ATH using the High price.
For each bar, it calculates the drawdown from ATH.
The user defines two drawdown zones, for example:
1st zone: ATH – 50%
2nd zone: ATH – 72.5%
For each zone, the strategy checks:
If no buy has been executed yet for that zone in the current ATH leg, and
If the current bar’s Low touches or falls below that zone’s price level,
→ That bar is considered to have triggered a buy condition.
Order simulation:
The strategy simulates entering a long position at that zone’s price level
(using a limit/market-like approximation for backtesting).
3-2. ATH Reset & Entry Opportunity Reset
When a new High goes above the previous ATH:
The ATH is updated to this new high.
Internal flags that track whether the 1st and 2nd entries have been used are reset.
This means:
Each time the market makes a new ATH,
The strategy once again has a fresh opportunity to execute 1st and 2nd drawdown entries for that new ATH leg.
4. Position Sizing & Leverage
4-1. Position Size Based on Account Equity
The strategy defines current equity as:
Current Equity = Initial Capital + Realized PnL + Unrealized PnL
For each entry zone, the position value is calculated as follows:
The user inputs:
“What % of equity to use at this zone”
The strategy:
Multiplies current equity by that percentage
Then multiplies by the strategy’s leverage factor
Thus:
Position Value = Current Equity × (Zone % / 100) × Leverage
Finally, this position value is divided by the entry price to determine the actual position size in tokens.
4-2. Exception for the First Position (100% / 300%)
For the very first position (when there is no open position),
the strategy does not use the zone % parameters. Instead, it uses fixed ratios:
Default: Enter the first position with 100% of equity.
If the drawdown from ATH at that moment is greater than or equal to a predefined threshold (e.g. –72.5% or more)
→ Enter the first position with 300% of equity.
The position value is computed as:
Position Value = Current Equity × (100% or 300%) × Leverage
Then it is divided by the entry price to obtain the token quantity.
This rule:
Applies regardless of whether the first entry occurs at the 1st zone or 2nd zone.
Embeds the philosophy:
“In very deep crashes, go much larger on the first entry; otherwise, stay more conservative.”
4-3. Tracking Real Leverage
On each bar, the strategy tracks:
The existing position size at the start of the bar
The newly added size (if any) on that bar
When a new entry occurs, it calculates the real leverage at that moment:
Real Leverage = (Position Value / Current Equity)
This is then displayed on the chart as a label, for example:
Lev 2.53x
This makes it easy to see the actual leverage level at each entry point.
5. Visualization & Monitoring
5-1. On-Chart Visual Elements
The strategy plots the following directly on the chart:
ATH Line
The all-time high (based on High) is plotted as an orange line.
Average Entry Price Line
When a position is open, the average entry price of that position is plotted as a yellow line.
Estimated Liquidation Price (Fixed) Line
The strategy detects when the position size changes.
At each size change, it uses the current average entry price and real leverage to compute an approximate liquidation price.
This “fixed liquidation price” is then plotted as a red line on the chart.
If there is no position, or if leverage is 1x or lower, the liquidation line is removed.
Entry Markers & Labels
When 1st/2nd entry conditions are met, the strategy:
Marks the entry point on the chart.
Displays labels such as "Buy XX% @ Price" and "Lev XXx",
showing both entry percentage and real leverage at that time.
The label placement is configurable:
Below Bar
Above Bar
At Price
5-2. Information Table (Top-Right Panel)
In the top-right corner of the chart, the strategy displays a summary table of the current account and position status. It typically includes:
Pos Qty (Token)
Absolute size of the current position (in tokens)
Pos Value (USDT)
Market value of the current position (qty × current price)
Leverage (Now)
Current real leverage (position value / current equity)
DD from ATH (%)
Current drawdown (%) from the latest ATH, based on current price
Avg Entry
Average entry price of the current position
PnL (%)
Unrealized profit/loss (%) of the current position
Max DD (Equity %)
The maximum equity drawdown (MDD) recorded over the entire backtest period
Last Entry Price
Average entry price immediately after the most recent add-on entry
Last Entry Lev
Real leverage at the time of the most recent entry
Liq Price (Fixed)
The fixed estimated liquidation price described above
Return from Start (%)
Total return (%) of equity compared to the initial capital
Through this table, users can quickly grasp:
Current account and position status
Current risk level
Cumulative performance
6. Time Filters & Label Options
6-1. Strategy Date Range Filter
The strategy provides an option to restrict trading to a specific time range.
When “Use Date Range” is enabled:
You can specify start and end timestamps.
The strategy will only execute trades within that range.
When this option is disabled:
The strategy operates over the entire chart history.
6-2. Entry Label Placement
Users can customize where entry/leverage labels are drawn:
Below Bar (Below Bar)
Above Bar (Above Bar)
At the actual price level (At Price)
This allows you to adjust visualization according to personal preference and chart readability.
7. Use Cases & Applications
This strategy is suitable for the following purposes:
Long-term / swing-style re-buy strategies for spot or futures long positions
Testing rule-based strategies that rely on “drawdown from ATH” as a main signal
Monitoring account leverage, liquidation price, and MDD when using leverage
Handling situations where, for a given asset:
“Every time a new ATH is formed,
you want to wait for deep corrections and enter only at specific drawdown zones”
It is generally recommended to use this strategy not as a direct plug-and-play live system, but as a tool for:
Strategy idea validation
Risk profile analysis
Parameter exploration to match your personal risk tolerance and style
8. Limitations & Warnings
Backtest results do not guarantee future performance.
They are based on historical data only.
In live markets, additional factors exist:
Liquidity
Slippage
Fee structures
Exchange-specific liquidation rules
Funding fees, etc.
The liquidation price is only an approximate estimate, derived from a simplified formula.
Actual liquidation rules, maintenance margin requirements, fees, and other details differ by exchange.
The liquidation line should be treated as a reference indicator, not an exact guarantee.
Depending on the configured leverage and entry percentages, losses can be very large.
In particular, extremely aggressive settings such as “first position 300% of equity” can greatly increase the risk of large account drawdowns and liquidation during sharp market crashes.
Use such settings with extreme caution.
For live trading, additional risk management is essential:
Your own stop-loss rules
Maximum position size limits
Portfolio-level exposure controls
And other external safety mechanisms beyond this strategy
9. Conclusion
The ATH Drawdown Re-Buy Long Only strategy goes beyond simple “buy the dip” logic. It:
Systematically utilizes drawdowns from ATH as a structural signal
Applies a special first-position rule (100% / 300%)
Integrates visualization of leverage, liquidation price, MDD, and returns
All of this supports rule-based long position building in drawdown phases and comprehensive risk monitoring.
With this strategy, users can:
Explore different:
Drawdown zones
Entry percentages
Leverage levels
Run various backtests and scenario analyses
Better understand the risk/return profile that fits their own market view and risk tolerance
Once again, this strategy is intended for research, learning, and backtesting only.
All real trading decisions and their consequences are solely the responsibility of the user.
920 Order Flow SATY ATR//@version=6
indicator("Order-Flow / Volume Signals (No L2)", overlay=true)
//======================
// Inputs
//======================
rvolLen = input.int(20, "Relative Volume Lookback", minval=5)
rvolMin = input.float(1.1, "Min Relative Volume (× avg)", step=0.1)
wrbLen = input.int(20, "Wide-Range Lookback", minval=5)
wrbMult = input.float(1, "Wide-Range Multiplier", step=0.1)
upperCloseQ = input.float(0.60, "Close near High (0-1)", minval=0.0, maxval=1.0)
lowerCloseQ = input.float(0.40, "Close near Low (0-1)", minval=0.0, maxval=1.0)
cdLen = input.int(25, "Rolling CumDelta Window", minval=5)
useVWAP = input.bool(true, "Use VWAP Bias Filter")
showSignals = input.bool(true, "Show Long/Short OF Triangles")
//======================
// Core helpers
//======================
rng = high - low
tr = ta.tr(true)
avgTR = ta.sma(tr, wrbLen)
wrb = rng > wrbMult * avgTR
// Relative Volume
volAvg = ta.sma(volume, rvolLen)
rvol = volAvg > 0 ? volume / volAvg : 0.0
// Close location in bar (0..1)
clo = rng > 0 ? (close - low) / rng : 0.5
// VWAP (session) + SMAs
vwap = ta.vwap(close)
sma9 = ta.sma(close, 9)
sma20 = ta.sma(close, 20)
sma200= ta.sma(close, 200)
// CumDelta proxy (uptick/downtick signed volume)
tickSign = close > close ? 1.0 : close < close ? -1.0 : 0.0
delta = volume * tickSign
cumDelta = ta.cum(delta)
rollCD = cumDelta - cumDelta
//======================
// Signal conditions
//======================
volActive = rvol >= rvolMin
effortBuy = wrb and clo >= upperCloseQ
effortSell = wrb and clo <= lowerCloseQ
cdUp = ta.crossover(rollCD, 0)
cdDown = ta.crossunder(rollCD, 0)
biasBuy = not useVWAP or close > vwap
biasSell = not useVWAP or close < vwap
longOF = barstate.isconfirmed and volActive and effortBuy and cdUp and biasBuy
shortOF = barstate.isconfirmed and volActive and effortSell and cdDown and biasSell
//======================
// Plot ONLY on price chart
//======================
// SMAs & VWAP
plot(sma9, title="9 SMA", color=color.orange, linewidth=3)
plot(sma20, title="20 SMA", color=color.white, linewidth=3)
plot(sma200, title="200 SMA", color=color.black, linewidth=3)
plot(vwap, title="VWAP", color=color.new(color.aqua, 0), linewidth=3)
// Triangles with const text (no extra pane)
plotshape(showSignals and longOF, title="LONG OF",
style=shape.triangleup, location=location.belowbar, size=size.tiny,
color=color.new(color.green, 0), text="LONG OF")
plotshape(showSignals and shortOF, title="SHORT OF",
style=shape.triangledown, location=location.abovebar, size=size.tiny,
color=color.new(color.red, 0), text="SHORT OF")
// Alerts
alertcondition(longOF, title="LONG OF confirmed", message="LONG OF confirmed")
alertcondition(shortOF, title="SHORT OF confirmed", message="SHORT OF confirmed")
//────────────────────────────
// End-of-line labels (offset to the right)
//────────────────────────────
var label label9 = na
var label label20 = na
var label label200 = na
var label labelVW = na
if barstate.islast
// delete old labels before drawing new ones
label.delete(label9)
label.delete(label20)
label.delete(label200)
label.delete(labelVW)
// how far to move the labels rightward (increase if needed)
offsetBars = input.int(3)
label9 := label.new(bar_index + offsetBars, sma9, "9 SMA", style=label.style_label_left, textcolor=color.white, color=color.new(color.orange, 0))
label20 := label.new(bar_index + offsetBars, sma20, "20 SMA", style=label.style_label_left, textcolor=color.black, color=color.new(color.white, 0))
label200 := label.new(bar_index + offsetBars, sma200, "200 SMA", style=label.style_label_left, textcolor=color.white, color=color.new(color.black, 0))
labelVW := label.new(bar_index + offsetBars, vwap, "VWAP", style=label.style_label_left, textcolor=color.black, color=color.new(color.aqua, 0))
//────────────────────────────────────────────────────────────────────
//────────────────────────────────────────────
// Overnight High/Low + HOD/LOD (no POC)
//────────────────────────────────────────────
sessionRTH = input.session("0930-1600", "RTH Session (exchange tz)")
levelWidth = input.int(2, "HL line width", minval=1, maxval=5)
labelOffsetH = input.int(10, "HL label offset (bars to right)", minval=0)
isRTH = not na(time(timeframe.period, sessionRTH))
rthOpen = isRTH and not isRTH
// --- Track Overnight High/Low during NON-RTH; freeze at RTH open
// --- Track Overnight High/Low during NON-RTH; freeze at RTH open
var float onHigh = na
var float onLow = na
var int onHighBar = na
var int onLowBar = na
var float onHighFix = na
var float onLowFix = na
var int onHighFixBar = na
var int onLowFixBar = na
if not isRTH
if na(onHigh) or high > onHigh
onHigh := high
onHighBar := bar_index
if na(onLow) or low < onLow
onLow := low
onLowBar := bar_index
if rthOpen
onHighFix := onHigh
onLowFix := onLow
onHighFixBar := onHighBar
onLowFixBar := onLowBar
onHigh := na, onLow := na
onHighBar := na, onLowBar := na
// ──────────────────────────────────────────
// Candle coloring + labels for 9/20/VWAP crosses
// ──────────────────────────────────────────
showCrossLabels = input.bool(true, "Show cross labels")
// Helpers
minAll = math.min(math.min(sma9, sma20), vwap)
maxAll = math.max(math.max(sma9, sma20), vwap)
// All three lines
goldenAll = open <= minAll and close >= maxAll
deathAll = open >= maxAll and close <= minAll
// 9/20 only (exclude cases that also crossed VWAP)
dcUpOnly = open <= math.min(sma9, sma20) and close >= math.max(sma9, sma20) and not goldenAll
dcDownOnly = open >= math.max(sma9, sma20) and close <= math.min(sma9, sma20) and not deathAll
// Candle colors (priority: all three > 9/20 only)
var color cCol = na
cCol := goldenAll ? color.yellow : deathAll ? color.black :dcUpOnly ? color.lime :dcDownOnly ? color.red : na
barcolor(cCol)
// Labels
plotshape(showCrossLabels and barstate.isconfirmed and goldenAll, title="GOLDEN CROSS",
style=shape.labelup, location=location.belowbar, text="GOLDEN CROSS",
color=color.new(color.yellow, 0), textcolor=color.black, size=size.tiny)
plotshape(showCrossLabels and barstate.isconfirmed and deathAll, title="DEATH CROSS",
style=shape.labeldown, location=location.abovebar, text="DEATH CROSS",
color=color.new(color.black, 0), textcolor=color.white, size=size.tiny)
plotshape(showCrossLabels and barstate.isconfirmed and dcUpOnly, title="DC UP",
style=shape.labelup, location=location.belowbar, text="DC UP",
color=color.new(color.lime, 0), textcolor=color.black, size=size.tiny)
plotshape(showCrossLabels and barstate.isconfirmed and dcDownOnly, title="DC DOWN",
style=shape.labeldown, location=location.abovebar, text="DC DOWN",
color=color.new(color.red, 0), textcolor=color.white, size=size.tiny)
// ──────────────────────────────────────────
// Audible + alert conditions
// ──────────────────────────────────────────
alertcondition(goldenAll, title="GOLDEN CROSS", message="GOLDEN CROSS detected")
alertcondition(deathAll, title="DEATH CROSS", message="DEATH CROSS detected")
alertcondition(dcUpOnly, title="DC UP", message="Dual Cross UP detected")
alertcondition(dcDownOnly,title="DC DOWN", message="Dual Cross DOWN detected")
Understand Daily ATR & SDTR Context on SPXWHY
Every trader needs clarity.
Markets move quickly, volatility shifts without warning, and daily price action often feels chaotic unless you understand the context behind it.
When you know where you are inside the day’s expected range and volatility environment, decision-making becomes more objective, disciplined, and confident.
That’s the purpose of this tool:
to give traders a clearer sense of intraday reality so they can act with intention instead of impulse.
________________________________________
HOW
It does this by anchoring each session to a set of objective, volatility-based reference points:
• Daily ATR projections that outline the day’s typical movement range
• A standardized deviation envelope (SDTR) that highlights areas of expansion or exhaustion
• RTH-aligned resets, so the levels refresh cleanly at the start of each session
These elements work together to form a steady, unbiased framework around each trading day.
________________________________________
WHAT
The result is a daily ATR + SDTR context overlay, now available free on TradingView.
It provides:
• Expected daily high/low zones based on smoothed ATR
• A volatility shell around the prior close
• Daily context levels that reset automatically at each RTH open
• A clean, unobtrusive visual guide for interpreting intraday price behavior
It works on any intraday timeframe and integrates seamlessly with your existing workflow — structure, VWAP, volume analysis, price action, Fibonacci levels, or your preferred set of signals.
This isn’t a trading system.
It’s a lens — designed to help traders see the day more clearly.
Weekday Close vs Open — Last N (per weekday)# Weekday Close vs Open - Last N Occurrences
This indicator distills every weekday's historical open-to-close behavior into a compact table so you can see how "typical" the current session is before the day even closes. It runs independently of your chart timeframe by pulling daily OHLCV data under the hood, tracking the last **N** completed occurrences for each weekday, and refreshing only when a daily bar closes. On daily charts you can also shade every past bar that matches today's weekday (excluding the in-progress session) to reinforce the pattern visually while the table remains non-repainting.
## What It Shows
- **Win/Loss/Tie counts** - how many of the last `N` occurrences closed above the open (wins), below (losses), or inside the tie threshold you define as "flat".
- **Win % heatmap** - the win column is color-coded (deep green > deep red) so you immediately recognize strong or weak weekdays.
- **Advanced metrics (optional)** - average daily volume plus the average percentage excursion above/below the open (`AvgUp%`, `AvgDn%`) for that weekday.
- **Totals row** - aggregates every weekday into one row to estimate overall hit rate and average stats across the entire data set.
- **Weekday shading (optional)** - on daily charts you can tint every bar that matches today's weekday (all Mondays, all Fridays, etc.) for instant pattern recognition.
## How It Works
1. The script requests daily OHLCV data (non-repainting) regardless of the chart timeframe.
2. When a new daily bar confirms, it packs that day's data into one of seven arrays (one per weekday). Each day contributes five floats (O/H/L/C/V) so trimming and statistics stay in lockstep.
3. A helper function (`f_dayMetrics`) scans daily history to compute average volume, average excursion above/below the open, and win/loss/tie counts for the requested weekday.
4. The table populates on the last bar of the chart session, respecting your advanced/totals toggles and keeping text at `size.normal`.
## Reading the Table
- **Win/Loss/Tie columns**: raw counts taken from your chosen `N`.
- **Win %***: excludes ties from the denominator so it reflects only decisive closes.
- **AvgUp% / AvgDn%**: typical intraday extension (high vs open, open vs low) in percent.
- **Avg Vol**: arithmetic mean of daily volume for that weekday.
- **TOTAL row**: provides a global win rate plus volume/up/down averages weighted by how many samples each weekday contributed.
## Practical Uses
- Spot weekdays that historically trend higher or lower before entering a trade.
- Compare current price action against the typical intraday range (`AvgUp%` vs today's move).
- Filter mean-reversion vs breakout setups based on the most reliable weekday patterns.
- Quickly gauge whether today is behaving "in character" by referencing the highlighted row or the optional whole-chart weekday shading.
> **Tip:** Use smaller `N` values (e.g., 10-20) for adaptive, recent behavior and larger values (50+) to capture longer-term seasonality. Tighten the tie threshold if you want almost every candle to register as win/loss, or widen it to focus only on meaningful moves.
Top N Candle HighlighterTrack highest candle sizes on current timeframes. This short script:
1. Tracks the **top N largest candles** on the current chart
2. Option to use **body size** or **full candle range**
3. Highlights candles using `box.new()` (fully v6 compatible)
4. Optionally shows **rank and size labels**
5. Handles red, green, and doji candles differently with color
ATR Volatility AlertsOverview:
This is a dynamic alert tool based on the Average True Range (ATR), designed to help traders detect sudden price movements that exceed normal volatility levels. Whether you are trading breakouts or monitoring for abnormal spikes, this indicator visualizes these events on the chart and triggers system alerts when the price move exceeds your specified ATR multiplier.
Key Features:
Fully Customizable ATR Range:
You can adjust the ATR Length (Default: 14) and the Multiplier (Default: 1.5x).
Tip: Increase the multiplier (e.g., to 2.0 or 3.0) to catch only extreme volatility, or lower it for scalping smaller moves.
Visual Chart Signals:
Visual markers appear instantly when a bar's movement exceeds the ATR threshold.
Green Triangle: Indicates an Upward Spike.
Red Triangle: Indicates a Downward Spike.
Flexible System Alerts:
Designed to integrate seamlessly with TradingView's alert system. You can choose from three specific alert directions based on your strategy:
1.Price Spike Up: Triggers only on sharp upward moves.
2.Price Spike Down: Triggers only on sharp downward moves.
3.Bidirectional Volatility Alert: Triggers on BOTH huge pumps and dumps.
How to Set Alerts:
Click the "Create Alert" button in TradingView.
Select ATR Volatility Alerts in the "Condition" dropdown.
Choose the specific logic you need:
· Select Price Spike Up for bullish monitoring.
· Select Price Spike Down for bearish monitoring.
· Select Bidirectional Volatility Alert to watch for any volatility expansion.
Two Supertrend Crossover SignalThis indicator is designed to visualize trend shifts using two Supertrend lines and a crossover-based signal system.
It also colors the area between the two Supertrend lines based on the current trend direction, making trend changes easy to identify at a glance.
How It Works
The indicator plots:
Fast Supertrend (shorter ATR length, lower factor)
Slow Supertrend (longer ATR length, higher factor)
A crossover between these two Supertrend lines indicates a possible trend shift.
Buy Signal
A BUY signal occurs when: Fast Supertrend crosses ABOVE Slow Supertrend
This suggests bullish momentum strengthening.
Sell Signal
A SELL signal occurs when: Fast Supertrend crosses BELOW Slow Supertrend
This suggests bearish momentum increasing.
Buy/Sell Signal Labels
The chart displays clear BUY (green) and SELL (red) labels at every crossover.
These signals help traders quickly pinpoint potential entries or exits.
This indicator is ideal for:
✓ Trend trading
✓ Swing trading
✓ Identifying momentum shifts
✓ Visual confirmation of market direction
✓ Combining with price action or EMA filters
You may adjust ATR length and multiplier depending on the timeframe:
For Scalping (1–5 min):
Fast ATR: 5–7
Slow ATR: 10–14
For Intraday (5–15 min):
Fast ATR: 7
Slow ATR: 10–14
For Swing Trading (1h–4h):
Fast ATR: 10
Slow ATR: 20
Important Notes
This indicator does not repaint the Supertrend values.
Signals are based on confirmed crossovers.
Use stop-loss and risk management appropriate for your strategy.
Always combine with market context (support/resistance, volume, etc.)
ROC x4 (Multi-Period Overlay) + Table📈 ROC x4 (Multi-Period Momentum Suite) + Compact Table
A clean, powerful momentum indicator that overlays four Rate-of-Change (ROC) periods inside a single pane — without needing to stack multiple separate indicators.
This script is designed for traders who use multi-timeframe momentum confirmation, trend strength validation, and early detection of rotation, compression, or expansion in price behavior.
🔍 What This Indicator Does
Plots 4 different ROC lengths in one panel
Includes a compact real-time ROC table that fits even in small panes
Tracks momentum shifts, trend acceleration, slowdowns, and regime transitions
Allows manual input for all 4 ROC lengths
Optional smoothing to reduce noise
Zero-line toggle for momentum direction clarity
Perfect for traders who want to monitor short-term, mid-term, and long-term ROC simultaneously.
SVE Daily ATR + SDTR Context BandsSVE Daily ATR + SDTR Context Bands is a free companion overlay from The Volatility Engine™ ecosystem.
It plots daily ATR-based expansion levels and a Standardized Deviation Threshold Range (SDTR) to give traders a clean, quantitative view of where intraday price sits relative to typical daily movement and volatility extremes.
This module is designed as an SVE-compatible context layer—using discrete, RTH-aligned daily zones, expected-move bands, and a standardized volatility shell—so traders can build situational awareness even without the full SPX Volatility Engine™ (SVE).
It does not generate trade signals.
Its sole purpose is to provide a clear volatility framework you can combine with your own structure, Fibonacci, or signal logic (including SVE, if you use it).
🔍 What It Shows
* Daily ATR Bands (expHigh / expLow)
- Expected high/low based on smoothed daily ATR
- Updates at the RTH open
* Daily SDTR Bands (expHighSDTR / expLowSDTR)
- Standard deviation threshold range for volatility extremes
- Helps identify overextended conditions
Discrete RTH-aligned Zones
- Bands reset cleanly at each RTH session
No continuous carry-over from prior days
Daily ATR & SDTR stats label
Quick-reference box showing current ATR and SDTR values
🎯 Purpose
This tool helps traders:
- Gauge intraday context relative to expected daily movement
- Assess volatility state (quiet, normal, expanded, extreme)
- Identify likely exhaustion or expansion zones
- Frame intraday price action inside daily volatility rails
- Support decision-making with objective context rather than emotion
It complements any strategy and works on any intraday timeframe.
⚙️ Inputs
- ATR Lookback (default: 20 days)
- RTH Session Times
- SDTR Lookback
- Show/Hide Daily Stats Label
🧩 Part of the SVE Ecosystem
This module is part of the broader SPX Volatility Engine™ framework.
The full SVE system includes:
- Composite signal scoring
- Volatility compression logic
- Histogram slope and momentum analysis
- Internals (VIX / VVIX / TICK)
- Structural zone awareness
- Real-time bias selection
- High-clarity decision support
⚠️ Disclaimer
This tool is provided for educational and informational purposes only.
No performance claims are made or implied.
Not investment advice.
BB Breakout + EMA Touch (50/100)Shows points only when BOTH happen on the same candle:
1️⃣ Price breaks through Bollinger Bands
2️⃣ Price touches (or crosses) EMA 50 or EMA 100
The Bear & Bull TieWhat it does:
Bear & Bull Tie is a moving average crossover indicator that identifies trend reversals and generates entry/exit signals based on the relationship between price and three simple moving averages (SMA 21, SMA 55, SMA 89). The indicator combines these three MAs into an Average Moving Average (AMA) to confirm directional bias, then uses ATR (Average True Range) volatility measurement for dynamic position sizing and stop-loss placement.
How it works:
The indicator operates on a simple but effective principle: it enters a bullish trend when price closes above all three moving averages simultaneously, and enters a bearish trend when price closes below all three MAs simultaneously. This "three MA alignment" approach filters out noise and confirms genuine trend changes. The indicator then plots:
Entry levels at the highest MA during uptrends or lowest MA during downtrends
Stop-loss zones calculated using 2x ATR distance from entry prices
Trend confirmation fill between price and the Average Moving Average, color-coded blue for bullish and red for bearish
The ATR-based stop-loss sizing adapts to market volatility, making it suitable for different market conditions and timeframes.
How to use it:
Monitor the filled zones to visually confirm your trend bias
Watch for alerts when new long or short setups form; entry prices and ATR-based stops are displayed on the chart
Trade the zones between your entry level and stop-loss zone, adjusting position size based on your risk tolerance
Exit when colors reverse to indicate trend termination
The indicator works best on higher timeframes (1H and above) where trend clarity is stronger and false signals are reduced.
Alerts: FOR AUTOMATION / NOTIFICATION's (create an alert for B/B tie (2, 4) that uses Any Alert / Function Call )
Long Positions:
entries ---> "Bull Tie on NVDA | Entry : 100.5 | ATR Stop : 99.5"
exits ------> "Bull Tie on NVDA | Exit : 110.1"
Short Positions:
entries ---> "Bear Tie on NVDA | Entry : 120.05 | ATR Stop : 85.05"
exits -----> "Bear Tie on NVDA | Exit : 100"
Credits:
This script incorporates concepts and code portions from @LOKEN94 with his explicit permission. Special thanks for the foundational logic that inspired this development.
Disclaimer:
This indicator is for educational and analytical purposes. It is not financial advice. Past performance does not guarantee future results. Always manage risk properly and use stops. Test thoroughly on historical data before live trading.
Energy Meter (Candle Range/ATR Ratio)Purpose:
This indicator is a simple, intuitive way to visualize auction energy — the actual force behind a price move — rather than just its appearance on the chart. It’s built on a single idea:
If a bar travels farther than normal in its fixed amount of time, something pushed harder than usual.
That “push” is auction energy, and it’s the raw material of microstructure inference: reading intent and imbalance from nothing more than candles, tempo, and volatility.
Traditional indicators focus on price patterns or volume. This one focuses on pressure — the underlying imbalance driving each bar.
How It Works
Each bar’s True Range is divided by its ATR, producing a normalized ratio:
1.0 = Average energy
>1.2 (default) = Above-normal energy
<1.0 = Quiet, low-pressure bars
This ratio is plotted as a histogram to highlight bursts of force, with a smoothed line added to show the tempo of recent energy changes.
When the histogram spikes, you’re seeing the auction flash its teeth: aggression, initiative, failed absorption, breakout ignition, or the first punch of a reversal.
When the line rolls over, you’re seeing the engine lose torque.
It’s a minimalist tool for seeing who is actually winning the auction, even when price looks deceptively calm.
Why It Matters
Price moves because of imbalance, not geometry. Two candles that look identical can represent completely different internal dynamics.
This indicator helps you see:
Breakout strength vs. fakeouts
Acceleration vs. drift
Exhaustion after extended runs
Reversal attempts with real intent
Quiet absorption before explosive moves
Shifts in aggression hidden inside consolidation
For new traders, it’s a clean introduction to microstructure inference — extracting meaningful order-flow insights without needing L2, DOM, or volume profile.
For experienced traders, it's a compact impulse detector that complements trend, volatility, and liquidity models.
Summary
This is a lightweight, first-principles tool designed to expose the energy signature of the auction: how hard the market is trying to go somewhere.
It doesn’t predict direction — it reveals pressure, so you can judge the quality of the move you’re trading.
Energy beats geometry.
Intent beats patterns.
Microstructure is hiding in every candle; this indicator makes it visible.
Mirror Blocks: StrategyMirror Blocks is an educational structural-wave model built around a unique concept:
the interaction of mirrored weighted moving averages (“blocks”) that reflect shifts in market structure as price transitions between layered symmetry zones.
Rather than attempting to “predict” markets, the Mirror Blocks framework visualizes how price behaves when it expands away from, contracts toward, or flips across stacked WMA structures. These mirrored layers form a wave-like block system that highlights transitional zones in a clean, mechanical way.
This strategy version allows you to study how these structural transitions behave in different environments and on different timeframes.
The goal is understanding wave structure, not generating signals.
How It Works
Mirror Blocks builds three mirrored layers:
Top Block (Structural High Symmetry)
Base Block (Neutral Wave)
Bottom Block (Structural Low Symmetry)
The relative position of these blocks — and how price interacts with them — helps visualize:
Compression and expansion
Reversal zones
Wave stability
Momentum transitions
Structure flips
A structure is considered bullish-stack aligned when:
Top > Base > Bottom
and bearish-stack aligned when:
Bottom > Base > Top
These formations create the core of the Mirror Blocks wave engine.
What the Strategy Version Adds
This version includes:
Long Only, Short Only, or Long & Short modes
Adjustable symmetry distance (Mirror Distance)
Configurable WMA smoothing length
Optional trend filter using fast/slow MA comparison
ENTER / EXIT / LONG / SHORT labels for structural transitions
Fixed stop-loss controls for research
A clean, transparent structure with no hidden components
It is optimized for educational chart study, not automated signals.
Intended Purpose
Mirror Blocks is meant to help traders:
Study structural transitions
Understand symmetry-based wave models
Explore how price interacts with mirrored layers
Examine reversals and expansions from a mechanical perspective
Conduct long and short backtesting for research
Develop a deeper sense of market rhythm
This is not a prediction model.
It is a visual and structural framework for understanding movement.
Backtesting Disclaimer
Backtest results can vary depending on:
Slippage settings
Commission settings
Timeframe
Asset volatility
Structural sensitivity parameters
Past performance does not guarantee future results.
Use this as a research tool only.
Warnings & Compliance
This script is educational.
It is not financial advice.
It does not provide signals.
It does not promise profitability.
The purpose is to help visualize structure, not predict price.
The strategy features are simply here to help users study how structural transitions behave under various conditions.
License
Released under the Michael Culpepper Gratitude License (2025).
Use and modify freely for education and research with attribution.
No resale.
No promises of profitability.
Purpose is understanding, not signals.
Weekly price boxWeekend Trap / Custom Timebox Analyzer
This indicator allows traders to define a specific time window (e.g., the "Weekend Trap" period from Friday to Sunday, or a full weekly range) and automatically draws a box highlighting the price action during that session. It is designed to help visualize gaps, ranges, and trend direction over specific timeframes.
Key Features
Dynamic Range Detection: automatically draws a box connecting the Highest High and Lowest Low occurring between your start and end times.
Trend Visualization: The box changes color dynamically based on price performance:
Bullish (Blue): Close is higher than the Open of the defined period.
Bearish (Red): Close is lower than the Open of the defined period.
Smart Labeling: Displays a customizable label (default: "Box") along with the real-time Percentage Change of the period. The label is positioned intelligently outside the box to avoid cluttering the price action.
Flexible Timing:
Supports standard intraday sessions (e.g., Mon 09:00 to Mon 17:00).
Supports "wrap-around" sessions (e.g., Friday 23:00 to Sunday 17:00).
New: Supports full-week monitoring (e.g., Friday to Friday) by handling start times that are later than end times on the same day.
Fully Customizable:
Configure specific Bullish and Bearish colors (Border, Background, Text).
Adjust line styles (Solid, Dashed, Dotted) and widths.
Select days via easy-to-use dropdown menus.
How to Use
Time Settings:
Select your Start Day and Time (e.g., Friday 23:00).
Select your End Day and Time (e.g., Sunday 17:00).
Note: Times are based on the Chart/Exchange time.
Visual Settings:
Go to the settings menu to define your preferred colors for Bullish and Bearish scenarios.
Toggle the Label on/off and adjust text size.
Use Cases
Weekend Gaps: Monitor price action that occurs during off-hours or between market close and open.
Opening Range Breakouts: Define the first hour of trading to see the initial range.
Weekly Profiles: Set the start and end day to the same day (e.g., Friday to Friday) to visualize the entire week's range and net performance.
Built with Pine Script™ v6
Momentum Divergence Oscillator by JJMomentum Divergence Oscillator by JJ
A powerful, all-in-one momentum tool designed to streamline trade confluence, combining multi-timeframe trend analysis with automatic divergence spotting and classic MACD signals.
How to Use This Indicator
This oscillator is designed to be used in the lower pane of your chart, beneath your primary price chart. It provides three main types of signals:
1. Multi-Timeframe (MTF) Trend Confirmation
The background shading is your primary trend filter. It looks at the MACD trend on two higher timeframes (30m and 60m by default) to confirm the market's overarching direction.
Green Shading: Indicates that both higher timeframes are in a bullish trend (MACD above signal line). Focus on looking for BUY signals during this time.
Red Shading: Indicates that both higher timeframes are in a bearish trend. Focus on looking for SELL signals during this time.
Grey/No Shading: The higher timeframes are not in agreement or are consolidating. Exercise caution or stick to standard price action rules.
2. Automatic Divergence Signals
Divergence is a powerful early warning system where the indicator moves in the opposite direction of the price. The indicator automatically flags these occurrences:
"Bull RSI Div" (Green Label-Up): Bullish divergence identified using the RSI oscillator. This suggests a potential reversal to the upside after a downtrend.
"Bear RSI Div" (Red Label-Down): Bearish divergence identified using the RSI oscillator. This suggests a potential reversal to the downside after an uptrend.
Tip: These signals are often most reliable when they occur within the corresponding MTF background colour (e.g., a "Bull RSI Div" during a Green MTF background).
3. Momentum Shifts and Crossovers
The standard plots provide immediate insight into market momentum:
Blue/Orange Lines: The traditional MACD line (Blue) and Signal line (Orange).
Histogram (Green/Red Bars): Represents the momentum difference between the MACD and Signal lines.
Zero-Line Crosses (Triangles): Tiny triangles appear when the MACD line crosses the zero line, indicating a shift in long-term momentum.
Peaks & Troughs (X-Crosses): The 'X' markers identify local peaks and troughs in the histogram, sometimes indicating short-term exhaustion of the current move.
Disclaimer: Trading involves significant risk and is not suitable for every investor. This indicator is for educational purposes only and should not be considered financial advice. Always use appropriate risk management.
Liquidity ThermometerThis is a universal indicator that assesses market liquidity based on five key market parameters: volume, volatility, candlestick range, body size, and price momentum.
The indicator does not use open interest data and is suitable for all markets, including spot, futures, and Forex.
This indicator normalizes each metric historically and creates a composite index between 0 and 1, where higher values correspond to a stable and calm market environment, and lower values indicate periods of increased risk and potential liquidity stress.
LT generates an integral liquidity index in the range based on five normalized components:
-nVol — normalized volume, reflecting trading density and activity.
-nATR — the volatility component (ATR), inverted, as high volatility is typically associated with declining liquidity.
-nRange — the normalized candlestick range, also inverted to assess the structural narrowness of the price movement.
-nBody — the normalized candlestick body size (|close − open|), inverted to assess the balance of supply and demand.
-nMove — the normalized value of the price impulse movement (|Δclose|), reflecting short-term price spikes.
Each metric is linearly normalized over a sliding window (200 bars) using the formula:
norm(x) = (x − min) / (max − min),
where at max = min, the value is fixed at 0.5 to ensure stability.
The ALT index is calculated as a weighted combination:
ALT = 0.35 nVol + 0.20 (1 − nATR) + 0.20 (1 − nRange) + 0.15 (1 − nBody) + 0.10 (1 − nMove)
The result is further smoothed using EMA(3) to reduce micronoise.
Red Zone (MLI < 0.25) — Risk, Thin Liquidity
When the indicator falls into the red zone, it means the market is extremely volatile:
Characteristics:
Low volume — small trades have a strong impact on the price.
High volatility — candlesticks rise or fall sharply.
Wide candlestick range — the market is "breathing heavily," easily breaking price extremes.
Impulsive movements — small market shocks lead to sharp spikes.
Thin liquidity — few orders in the order book, large orders "eat up" the market.
What this means for a trader:
🔥 High risk of spikes and false breakouts.
⚠ Possible series of liquidations on leverage.
❌ It is not recommended to enter long or short positions without a filter or protection.
✅ Can be used for short scalping strategies if you know the entry point, but very carefully.
Green Zone (MLI > 0.75) — High Liquidity, Safe Zone
When the indicator rises into the green zone, it means the market is stable and balanced:
Characteristics:
High volume — the market is deep, orders are executed without a strong impact on the price.
Low volatility — candlesticks are stable, no sharp spikes.
Narrow candlestick range — price moves calmly.
Weak impulse movements — no sharp surges.
Sufficient liquidity — the market can handle large orders.
What this means for a trader:
✅ Safe zone for opening positions.
🔄 Easier to set stop-loss and take-profit orders.
💡 You can trade both up and down, the risk of sharp movements is minimal.
⚡ Under these conditions, there is a lower risk of spikes and accidental liquidations.
It does not predict price movements or guarantee results. It is an analytical tool intended for additional research into market structure.
Vince/Williams Selling Climax SignalThis indicator identifies moments of ultimate market capitulation based on the "Selling Climax" research by Ralph Vince and Larry Williams. It monitors the ratio of New Lows to total traded issues to detect when selling pressure has reached an unsustainable, panic-driven extreme (defaulting to 20% of the entire market hitting new lows).
The script visualizes this process in two stages. First, it marks the actual days of panic with red diamonds, showing you where the "washout" is occurring. Second, and most importantly, it generates a green diamond buy signal on the very first day the panic subsides. This allows you to enter a position immediately after the supply of desperate sellers has been exhausted, often catching the absolute bottom of a sharp correction.
Vince/Williams Bloodbath Sidestepping RuleThis is a defensive risk management tool designed to keep you on the sidelines during devastating market crashes. Drawing on the "Bloodbath" criteria outlined by Vince and Williams, this script highlights periods where market internals have structurally broken down, specifically when the percentage of New Lows exceeds a "danger" threshold (default 4%).
Unlike the Climax signal which looks for the end of a drop, this rule is designed to spot the acceleration phase of a decline. When the background turns red, it indicates that the market is in a liquidating phase where support levels are likely to fail. You should use this as a strict filter to avoid opening new long positions or to tighten stops on existing ones until the background color clears, signaling that the internal bleeding has stopped.
Vince/Williams Extreme Volatility VulnerabilityDescription: This indicator implements the "Period of Extreme Vulnerability" concept developed by Ralph Vince and Larry Williams. The theory posits that a healthy market must regularly see the number of New Lows "dry up" (drop to near zero). When the percentage of New Lows fails to drop below a minimal threshold (default 0.15%) for a prolonged period (default 65 days), it indicates that internal market structure is rotting even if prices are rising, leaving the market fragile and prone to sudden volatility shocks.
I have programmed this script to track that exact condition—the extended absence of a "low" New Lows reading. It applies a 50-day Moving Average filter to contextually categorize the signal:
Red Dot (Crash Warning): Triggers when the vulnerability period begins while the price is above the 50 SMA. This is the classic warning signal, indicating that an uptrend is unsupported by market internals and a sharp correction may be imminent.
Green Dot (Contrarian Buy): Triggers when the vulnerability period begins while the price is below the 50 SMA. The script identifies this as a potential capitulation or value point where the persistent internal weakness is likely already priced in.
Note: This indicator requires exchange-wide data (New Lows, Advancers, Decliners) to function. It is best used on daily timeframes.
VIX Fix Indicator (Hestla 2015)This script provides a streamlined version of the VIX Fix, referencing the foundational work of Larry Williams and the strategies of Amber Hestla. It serves as a synthetic volatility gauge for assets that lack a dedicated VIX index. The math works by measuring the percentage drop from the highest recent close to the current low, essentially quantifying fear in the market without needing options data.
This specific script is designed to be purely visual. I have removed all the buy and sell labels found in other versions to leave a clean pane that plots only the oscillator and its moving average. You can use this to identify potential market bottoms when the black line spikes significantly, signaling that selling pressure is reaching a mathematical extreme relative to the recent trend.






















