Two MA Crossover with Buy/Sell Labels//@version=5
indicator("Two MA Crossover with Buy/Sell Labels", overlay=true)
// === User Inputs ===
shortPeriod = input.int(10, title="Fast MA Period")
longPeriod = input.int(100, title="Slow MA Period")
maType = input.string("EMA", title="MA Type", options= )
// === Moving Average Function ===
ma(src, length) =>
maType == "EMA" ? ta.ema(src, length) : ta.sma(src, length)
// === Calculate MAs ===
fastMA = ma(close, shortPeriod)
slowMA = ma(close, longPeriod)
// === Plot MAs ===
plot(fastMA, title="Fast MA", linewidth=2, color=color.green)
plot(slowMA, title="Slow MA", linewidth=2, color=color.red)
// === Crossover Conditions ===
buySignal = ta.crossover(fastMA, slowMA)
sellSignal = ta.crossunder(fastMA, slowMA)
// === Buy Label ===
if buySignal
label.new(bar_index, low, "BUY 🚀",
style=label.style_label_up,
textcolor=color.white,
color=color.green)
// === Sell Label ===
if sellSignal
label.new(bar_index, high, "SELL 🔻",
style=label.style_label_down,
textcolor=color.white,
color=color.red)
Indicadores y estrategias
Timebender - Day SeparatorTimebender — NY Anchored Day Separator
Many traders rely on broker-based day boundaries, which often do not align with New York time — the primary liquidity clock for FX and macro-driven markets. When the trading day is anchored incorrectly, it can distort the reading of weekly structure, session behavior, and intraday narrative.
This script provides a clear and configurable way to anchor trading days to a user-defined timezone and visually separate them on the chart.
What This Script Does
Highlights individual trading days using background shading
Draws vertical separators at the exact start of each shifted trading day
Allows independent toggling of background highlights and separator lines
Supports day-specific coloring so each trading day is immediately recognizable
Enables manual timezone shifting so traders can align charts to New York regardless of broker feed
What Makes It Different
Most day separators rely strictly on exchange time. This script detects calendar transitions from a manually shifted timestamp, allowing traders to define their own day boundary.
This is particularly useful for traders who anchor their analysis to New York time rather than broker session clocks.
Combining optional background shading with precision separators also allows traders to switch between a macro view (highlighted days) and a minimal execution view (lines only) without loading multiple indicators.
How It Works (High-Level)
The script internally offsets the chart’s timestamp by the number of hours specified in the timezone setting. It then detects when a new calendar day begins from that adjusted time and renders the visual separator accordingly.
Because the calculation is based on shifted time rather than exchange time, the indicator maintains consistent day structure across brokers.
How To Use
Set the timezone shift to match the session you anchor your analysis to.
Example: New York is typically UTC-5 or UTC-4 during daylight saving time.
Enable background highlighting for a broader structural view.
Use vertical separators when a cleaner chart is preferred for execution.
Customize colors to match your chart template.
Who This Script Is For
FX traders
Session-based traders
ICT-style market structure traders
Traders using multiple brokers
Anyone who wants consistent day boundaries across charts
Notes
This script is designed as a chart-organization utility. It does not generate trade signals or provide market predictions.
Deep AILibrary "Deeptest"
Comprehensive quantitative backtesting library with 112+ metrics: Sharpe/Sortino ratios, drawdown analysis, Monte Carlo simulation, Walk-Forward Analysis, VaR/CVaR, benchmark comparison, and interactive table rendering for TradingView strategies
@version 1.0.1 (01.01.2026)
============================================================================
CHANGELOG
============================================================================
v1.0.1 (01.01.2026)
- Added textSize parameter to runDeeptest() for controlling table text size
- New values: size.auto, size.small, size.tiny, size.normal, size.large
- Applies to all tables: main, stress test, drawdowns, recoveries, trades
v1.0.0 (31.12.2025)
- Initial release
- 112+ backtesting metrics
- Monte Carlo simulation and Walk-Forward Analysis
- Interactive table rendering with tooltips
============================================================================
TABLE OF CONTENTS
============================================================================
SECTION 1: File Header & Metadata
SECTION 2: Constants & Configuration
SECTION 3: Type Definitions
SECTION 4: Core Calculation Functions - Array Utilities
SECTION 5: Core Calculation Functions - Return Extraction
SECTION 6: Core Calculation Functions - Sharpe & Sortino
SECTION 7: Core Calculation Functions - Performance Metrics
SECTION 8: Core Calculation Functions - Drawdown Analysis
SECTION 9: Core Calculation Functions - Recovery Analysis
SECTION 10: Core Calculation Functions - Trade Analysis
SECTION 11: Core Calculation Functions - Statistical Distribution
SECTION 12: Core Calculation Functions - Risk Metrics
SECTION 13: Core Calculation Functions - Benchmark Comparison
SECTION 14: Core Calculation Functions - Time-Based Metrics
SECTION 15: Core Calculation Functions - Rolling Statistics
SECTION 16: Core Calculation Functions - Strategy Integration
SECTION 17: Core Calculation Functions - Walk Forward Analysis
SECTION 18: Core Calculation Functions - Monte Carlo Simulation
SECTION 19: Core Calculation Functions - Out-of-Sample Analysis
SECTION 20: Formatting Utilities - Value Formatting
SECTION 21: Formatting Utilities - Duration Formatting
SECTION 22: Formatting Utilities - Frequency Formatting
SECTION 23: Formatting Utilities - Date Formatting
SECTION 24: Tooltip Builders - Main Table Metrics
SECTION 25: Tooltip Builders - Complementary Metrics
SECTION 26: Tooltip Builders - Stress Test Metrics
SECTION 27: Tooltip Builders - Period Analysis Cards
SECTION 28: Table Rendering - Structure Helpers
SECTION 29: Table Rendering - Main Deeptest Table
SECTION 30: Table Rendering - Cell Renderers - Complementary Row
SECTION 31: Table Rendering - Stress Test Table
SECTION 32: Table Rendering - Period Analysis Cards
SECTION 33: Main Entry Point
============================================================================
API REFERENCE
============================================================================
Main Export:
------------
runDeeptest() - Complete backtest analysis orchestrator
============================================================================
KEY FEATURES
============================================================================
- Comprehensive backtesting metrics (112+ functions)
- Rolling window analysis with statistical distributions
- Advanced risk metrics (Sharpe, Sortino, Calmar, Martin, VaR, CVaR)
- Drawdown and recovery analysis
- Monte Carlo simulation and Walk-Forward Analysis
- Trade analysis (top/worst trades, consecutive streaks)
- Benchmark comparison (Alpha, Beta, R², Buy & Hold)
- Interactive table rendering with tooltips
============================================================================
USAGE EXAMPLE
============================================================================
╔══════════════════════════════════════════════════════════════════════════════╗
║ PROGRESSIVE USAGE EXAMPLES ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Three examples demonstrating increasing complexity: ║
║ 1. MINIMAL - "Hello World" with basic MA crossover ║
║ 2. BALANCED - Production ready with risk management & filters ║
║ 3. PROFESSIONAL - Full-featured with trailing stops & session filters ║
╚══════════════════════════════════════════════════════════════════════════════╝
╔══════════════════════════════════════════════════════════════════════════════╗
║ EXAMPLE 1: MINIMAL (The "Hello World") ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ The simplest possible integration - just 3 lines to get started: ║
║ 1. Import the library ║
║ 2. Write your strategy logic ║
║ 3. Call runDeeptest() ║
╚══════════════════════════════════════════════════════════════════════════════╝
//@version=6
strategy("MA Crossover ", overlay=true)
// ═══════════════════════════════════════════════════════════════════════════
// ⮟ Import Deeptest (Direct import - no namespace prefix needed)
// ═══════════════════════════════════════════════════════════════════════════
import Fractalyst/Deeptest/1 as *
// ────────────────────────────────────────────────────────────────────────────
// Strategy Logic: Simple Moving Average Crossover
// ────────────────────────────────────────────────────────────────────────────
fastMA = ta.sma(close, 10) // Fast MA: 10 periods
slowMA = ta.sma(close, 30) // Slow MA: 30 periods
// Plot MAs for visualization
plot(fastMA, "Fast MA", color=color.blue)
plot(slowMA, "Slow MA", color=color.orange)
// Entry: Long when fast MA crosses above slow MA
if ta.crossover(fastMA, slowMA)
strategy.entry("Long", strategy.long)
// Exit: Close when fast MA crosses below slow MA
if ta.crossunder(fastMA, slowMA)
strategy.close("Long")
// ═══════════════════════════════════════════════════════════════════════════
// ⮟ Run backtest analysis (all parameters use smart defaults)
// ═══════════════════════════════════════════════════════════════════════════
DT.runDeeptest()
╔══════════════════════════════════════════════════════════════════════════════╗
║ EXAMPLE 2: BALANCED (Production Ready) ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Adds essential production features: ║
║ • User-configurable inputs ║
║ • ADX trend filter to avoid choppy markets ║
║ • Stop loss / Take profit for risk management ║
║ • Custom backtest parameters ║
╚══════════════════════════════════════════════════════════════════════════════╝
//@version=6
strategy("MA Crossover ", overlay=true)
import Fractalyst/Deeptest/1 as *
// ────────────────────────────────────────────────────────────────────────────
// INPUT PARAMETERS
// ────────────────────────────────────────────────────────────────────────────
fastLen = input.int(10, "Fast MA Period", minval=1)
slowLen = input.int(30, "Slow MA Period", minval=1)
riskPct = input.float(2.0, "Risk %", minval=0.1) / 100
slPct = input.float(5.0, "Stop Loss %", minval=0.1) / 100
tpPct = input.float(10.0, "Take Profit %", minval=0.1) / 100
adxThresh = input.int(20, "ADX Trend Threshold")
// ────────────────────────────────────────────────────────────────────────────
// INDICATORS
// ────────────────────────────────────────────────────────────────────────────
fastMA = ta.sma(close, fastLen)
slowMA = ta.sma(close, slowLen)
adx = ta.adx(14)
= ta.dmi(14, 14)
// ────────────────────────────────────────────────────────────────────────────
// FILTERS
// ────────────────────────────────────────────────────────────────────────────
trendConfirmed = adx > adxThresh and diPlus > diMinus
// ────────────────────────────────────────────────────────────────────────────
// STRATEGY LOGIC
// ────────────────────────────────────────────────────────────────────────────
// Entry: MA crossover + trend confirmation
if ta.crossover(fastMA, slowMA) and trendConfirmed
strategy.entry("Long", strategy.long)
// Exit: MA crossunder
if ta.crossunder(fastMA, slowMA)
strategy.close("Long")
// Risk management: Stop loss and take profit
if strategy.position_size > 0
strategy.exit("RM", "Long",
stop=strategy.position_avg_price * (1 - slPct),
limit=strategy.position_avg_price * (1 + tpPct))
// ═══════════════════════════════════════════════════════════════════════════
// ⮟ Run backtest with custom parameters
// ═══════════════════════════════════════════════════════════════════════════
DT.runDeeptest(
riskPerTrade = 1.0, // ← 1% risk per trade
targetMaxDDPct = 15.0, // ← 15% max drawdown target
showStressTest = true, // ← Enable stress test table
showPeriodCards = true, // ← Enable period cards
wfaWindows = 12, // ← Walk-forward windows
mcSimulations = 1000, // ← Monte Carlo runs
bullColor = color.new(#00b9ff, 0),
bearColor = color.new(#ff0051, 0),
benchmarkSymbol = "SPX", // ← Compare to S&P; 500
periodCardMode = "drawdowns", // ← Show drawdown periods
tradeSortBy = "return" // ← Sort by return %
)
╔══════════════════════════════════════════════════════════════════════════════╗
║ EXAMPLE 3: PROFESSIONAL (Full-Featured) ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Complete professional implementation: ║
║ • Organized input groups for better UX ║
║ • Multiple filters: ADX trend, ATR volatility, Session timing ║
║ • Trailing stop to lock in profits ║
║ • Position highlighting for visual feedback ║
║ • Full parameter customization with inline documentation ║
╚══════════════════════════════════════════════════════════════════════════════╝
//@version=6
runDeeptest(targetMaxDDPct, bullColor, bearColor, tableBg, headerBg, borderColor, textPrimary, textMuted, textSize, showComplementaryRow, showStressTestTable, showDrawdownRecoveryCards, showTradeCards)
Parameters:
targetMaxDDPct (float)
bullColor (color)
bearColor (color)
tableBg (color)
headerBg (color)
borderColor (color)
textPrimary (color)
textMuted (color)
textSize (string)
showComplementaryRow (bool)
showStressTestTable (bool)
showDrawdownRecoveryCards (bool)
showTradeCards (bool)
ThresholdConfig
ThresholdConfig - Configuration for metric thresholds and corresponding colors
Fields:
sharpeExc (series float)
sharpeGood (series float)
sharpeOk (series float)
sharpeBear (series color)
sharpeNeutral (series color)
sharpeOrange (series color)
sharpeBull (series color)
ddSevere (series float)
ddMod (series float)
ddMild (series float)
ddSevereColor (series color)
ddModColor (series color)
ddOrange (series color)
ddGoodColor (series color)
rorHigh (series float)
rorMod (series float)
rorLow (series float)
rorHighColor (series color)
rorModColor (series color)
rorOrange (series color)
rorLowColor (series color)
r2Poor (series float)
r2Mod (series float)
r2Good (series float)
r2PoorColor (series color)
r2ModColor (series color)
r2Orange (series color)
r2GoodColor (series color)
kurtHigh (series float)
kurtMod (series float)
kurtOk (series float)
kurtHighColor (series color)
kurtModColor (series color)
kurtOrange (series color)
kurtGoodColor (series color)
skewVNeg (series float)
skewModNeg (series float)
skewPos (series float)
skewVPos (series float)
skewVNegColor (series color)
skewModNegColor (series color)
skewNeutral (series color)
skewPosColor (series color)
payoffPoor (series float)
payoffBE (series float)
payoffGood (series float)
payoffPoorColor (series color)
payoffBEColor (series color)
payoffOrange (series color)
payoffGoodColor (series color)
pfPoor (series float)
pfBE (series float)
pfGood (series float)
pfPoorColor (series color)
pfBEColor (series color)
pfOrange (series color)
pfGoodColor (series color)
ulcerHigh (series float)
ulcerLow (series float)
ulcerHighColor (series color)
ulcerModColor (series color)
ulcerOrange (series color)
ulcerLowColor (series color)
wrLow (series float)
wrOk (series float)
wrHigh (series float)
wrLowColor (series color)
wrOkColor (series color)
wrOrange (series color)
wrHighColor (series color)
cagrPoor (series float)
cagrOk (series float)
cagrGood (series float)
cagrPoorColor (series color)
cagrOkColor (series color)
cagrOrange (series color)
cagrGoodColor (series color)
pInsig (series float)
pMod (series float)
pSig (series float)
pInsigColor (series color)
pModColor (series color)
pOrange (series color)
pSigColor (series color)
calmarPoor (series float)
calmarBE (series float)
calmarGood (series float)
calmarPoorColor (series color)
calmarBEColor (series color)
calmarOrange (series color)
calmarGoodColor (series color)
betaHigh (series float)
betaLow (series float)
betaHighColor (series color)
betaLowColor (series color)
betaGoodColor (series color)
Stats
Stats - Comprehensive backtest statistics container
Fields:
totalTrades (series int)
winTrades (series int)
lossTrades (series int)
evenTrades (series int)
winRate (series float)
lossRate (series float)
avgWinPct (series float)
avgLossPct (series float)
avgTradePct (series float)
profitFactor (series float)
payoffRatio (series float)
expectancy (series float)
grossProfit (series float)
grossLoss (series float)
netProfit (series float)
netProfitPct (series float)
compEffect (series float)
sharpe (series float)
sortino (series float)
calmar (series float)
martin (series float)
maxDrawdown (series float)
maxDrawdownPct (series float)
currentDrawdown (series float)
currentDrawdownPct (series float)
avgDrawdownPct (series float)
maxEquity (series float)
minEquity (series float)
cagr (series float)
monthlyReturn (series float)
maxConsecWins (series int)
maxConsecLosses (series int)
avgTradeDuration (series float)
avgWinDuration (series float)
avgLossDuration (series float)
timeInMarketPct (series float)
tradesPerMonth (series float)
tradesPerYear (series float)
skewness (series float)
kurtosis (series float)
var95 (series float)
cvar95 (series float)
ulcerIndex (series float)
riskOfRuin (series float)
pValue (series float)
zScore (series float)
alpha (series float)
beta (series float)
buyHoldReturn (series float)
equityRSquared (series float)
firstTradeTime (series int)
lastTradeTime (series int)
tradingPeriodDays (series float)
RollingWindowSummary
RollingWindowSummary - Summary of metrics for a single rolling analysis window
Fields:
windowIndex (series int)
startTrade (series int)
endTrade (series int)
effectiveCount (series int)
minValue (series float)
maxValue (series float)
metricValue (series float)
RollingStats
RollingStats - Statistical distribution of rolling window metrics
Fields:
windowSize (series int) : Number of trades in rolling window
expectancyMin (series float) : Minimum rolling expectancy
expectancyMax (series float) : Maximum rolling expectancy
sharpeMin (series float) : Minimum rolling Sharpe
sharpeMax (series float) : Maximum rolling Sharpe
sortinoMin (series float) : Minimum rolling Sortino
sortinoMax (series float) : Maximum rolling Sortino
expectancyWindows (array) : Per-window summaries for expectancy
sharpeWindows (array) : Per-window summaries for Sharpe
sortinoWindows (array) : Per-window summaries for Sortino
expectancyMean (series float) : Mean expectancy across rolling windows
expectancyStdDev (series float) : Standard deviation of expectancy
expectancyPct90 (series float) : 90th percentile expectancy
expectancyPct50 (series float) : 50th percentile expectancy (median)
expectancyPct10 (series float) : 10th percentile expectancy
sharpeMean (series float) : Mean Sharpe across rolling windows
sharpeStdDev (series float) : Standard deviation of Sharpe
sharpePct90 (series float) : 90th percentile Sharpe
sharpePct50 (series float) : 50th percentile Sharpe
sharpePct10 (series float) : 10th percentile Sharpe
sortinoMean (series float) : Mean Sortino across rolling windows
sortinoStdDev (series float) : Standard deviation of Sortino
sortinoPct90 (series float) : 90th percentile Sortino
sortinoPct50 (series float) : 50th percentile Sortino
sortinoPct10 (series float) : 10th percentile Sortino
Banknifty By PaisaPaniThis indicator displays a DEMO performance snapshot
to show how the PaisaPani approach behaves on BankNifty.
It is a trading system.
• Separate indicator designed specifically for BankNifty
• Intended for the mentioned timeframe only
• Focused on execution clarity, not predictions
🔒 Full access is limited.
⚠ Disclaimer:
For educational and demonstration purposes only.
Near 52W High (Within 20%) - ScreenerThis Pine Script indicator is designed specifically for TradingView’s Pine Screener. It identifies stocks whose current closing price is trading within 20% of their 52-week high, helping traders quickly find strong stocks that are consolidating near their long-term highs.
Near 52W High (Within 20%) - ScreenerThis Pine Script indicator is designed specifically for TradingView’s Pine Screener. It identifies stocks whose current closing price is trading within 20% of their 52-week high, helping traders quickly find strong stocks that are consolidating near their long-term highs.
Near 52W High (Within 20%) - ScreenerThis Pine Script indicator is designed specifically for TradingView’s Pine Screener. It identifies stocks whose current closing price is trading within 20% of their 52-week high, helping traders quickly find strong stocks that are consolidating near their long-term highs.
ddddddrrrrrr//@version=5
indicator("🚀 EventSniper HF v3.0 - 高频方向信号", overlay=true)
// 参数
emaFast = input.int(5, "快速EMA")
emaSlow = input.int(20, "慢速EMA")
rsiLen = input.int(7, "RSI周期")
volRatio = input.float(1.8, "量能放大倍数")
// 指标计算
ema1 = ta.ema(close, emaFast)
ema2 = ta.ema(close, emaSlow)
rsi = ta.rsi(close, rsiLen)
volAvg = ta.sma(volume, 20)
volSpike = volume > volAvg * volRatio
// 高频方向信号(核心逻辑)
longCond = ema1 > ema2 and rsi > 50 and volSpike
shortCond = ema1 < ema2 and rsi < 50 and volSpike
// 信号绘图
plotshape(longCond, title="建议做多", location=location.belowbar, color=color.lime, style=shape.labelup, text="多")
plotshape(shortCond, title="建议做空", location=location.abovebar, color=color.red, style=shape.labeldown, text="空")
// 文本提示
label.new(longCond ? bar_index : na, low,
"📈 建议多头方向", style=label.style_label_up,
color=color.green, textcolor=color.white)
label.new(shortCond ? bar_index : na, high,
"📉 建议空头方向", style=label.style_label_down,
color=color.red, textcolor=color.white)
// 报警条件(用于接入Telegram)
alertcondition(longCond, title="📈 多方向警报", message="🚀 多方向信号触发:{{ticker}}")
alertcondition(shortCond, title="📉 空方向警报", message="🚨 空方向信号触发:{{ticker}}")
TEST Grok 4 AlertesCreate your 4 alerts with these short names: Buy → webhook opening long Sell → webhook opening short Close Long → webhook closing long Close Short → webhook closing short
Crée tes 4 alertes avec ces noms courts :
Buy → webhook ouverture long
Sell → webhook ouverture short
Close Long → webhook fermeture long
Close Short → webhook fermeture short
200 SMA from 1H timeframe &LabelPlots the 200-period Simple Moving Average (SMA) calculated strictly on the 1-hour timeframe, visible and accurate on any chart timeframe (1m, 5m, 15m, 4H, daily, etc.).
• The line appears “stepped” on lower timeframes (normal/expected for higher-TF data).
• Includes a clean, updating label on the right edge showing the current 1H 200 SMA value.
• Optional faint background tint highlights new 1H bars for easy visual reference.
Ideal for: Multi-timeframe analysis, trend filtering, support/resistance on intraday charts, or confirming the broader hourly trend while trading lower timeframes.
MA Labels (Fully Custom, Padded)On screen reminder of whatever you want. I use it remember what MA line colors are.
Group 2: Weekly Regime ClassifierThis indicator classifies the weekly market regime inside monthly value so you know whether to rotate, wait, prepare for expansion, or stand aside before looking for daily trades.
Purpose: Decide whether the market is rotating, compressing, attempting to escape value, or should be avoided entirely.
What this script does
This script analyzes weekly price behavior in the context of your manually defined monthly value area. Its job is to classify the current weekly regime so you know which type of trade logic is even allowed, before you look at daily setups.
It answers one question:
“What kind of environment am I dealing with right now?”
It does not generate trades. It does not choose entries or exits. It tells you whether conditions favor:
value rotation,
expansion attempts,
waiting, or
standing aside due to instability.
How it works (in simple terms)
The script always evaluates weekly candles, even if you apply it to a daily chart.
It uses four ideas:
1. Monthly value containment
All weekly analysis is framed by your monthly VAH and VAL.
If weekly closes are outside monthly value, that matters.
If weekly closes are inside monthly value, that matters differently.
The monthly levels are manual inputs and never auto-calculated.
2. Weekly alternation (instability check)
The script checks the last 6 weekly candles:
If most candles flip direction back and forth, the environment is unstable.
This is labeled “Neutral – heavy alternation”.
In this state, trades should be skipped unless conditions are perfect.
This acts as a sector-level permission filter.
3. Weekly regime classification
Based on quantified rules, the script assigns one regime:
ROTATING (Roadmap A default)
Price is staying inside monthly value and weekly ranges are normal.
This favors mean-reversion and value-to-value trades.
COMPRESSING (Wait)
Weekly ranges and volume are shrinking while price remains inside value.
This signals energy building, but no trade yet.
ESCAPING (Roadmap B on deck)
Weekly closes cluster near one edge of monthly value and show progress toward breaking out.
This sets up possible expansion trades, pending daily confirmation.
WAIT / NEUTRAL
Conditions do not clearly support rotation or expansion.
No bias is assumed.
4. Edge proximity and progress
The script also reports whether price is:
near monthly VAH,
near monthly VAL,
or not near an edge.
For escaping regimes, it checks that price is actually moving closer to the edge, not drifting sideways.
What you see on the chart
Optional background shading by regime (informational only)
Optional monthly and weekly level lines (display only)
A dashboard showing:
current weekly regime,
alternation status,
edge proximity,
weekly RangeRatio,
weekly VolumeRatio,
flip count,
freshness of weekly levels
Nothing on the chart triggers trades or alerts.
How you’re meant to use it
Run this after Group 1
Group 1 answers: Can I trade at all?
Group 2 answers: What type of trading makes sense?
Use the regime to choose a roadmap
ROTATING → value rotation logic (Roadmap A)
ESCAPING → watch for expansion logic (Roadmap B)
COMPRESSING → wait
NEUTRAL → skip unless exceptional
Only then drop to the daily chart
Daily execution rules apply only if the weekly regime allows them.
What this script deliberately does NOT do
No entries
No exits
No targets
No stop logic
No automatic level calculation
No intraday analysis
It does not tell you what to trade.
It tells you what kind of environment you’re in.
Group 0HVN Boundary Assist FRVP + ATR Tempo Auto TF DefaultsThis indicator is a structure-assist tool, not a signal generator. It is designed to standardize High-Volume Node (HVN) boundary placement and evaluation when using TradingView’s Fixed Range Volume Profile (FRVP) on weekly and monthly timeframes.
The script does not attempt to discover HVNs automatically. The trader selects the HVN visually using FRVP and inputs the HVN center (effective VPOC). From there, the script applies consistent, rules-based logic to define boundaries, track interaction, and prevent lower-timeframe levels from conflicting with higher-timeframe structure.
What the indicator does
1. Standardizes HVN boundary placement
Using the active timeframe’s ATR, the indicator identifies the first candle that regains tempo on each side of the HVN center.
A valid boundary requires:
A bar range ≥ a fixed fraction of ATR
A close that breaks prior rotational overlap
The close of that candle becomes the candidate HVN high or low. Wicks are ignored for structure.
2. Automatically adapts to timeframe
The indicator enforces locked system defaults:
Weekly: 0.33 ATR expansion, 10-bar overlap lookback
Monthly: 0.25 ATR expansion, 8-bar overlap lookback
These values adjust automatically based on chart timeframe, eliminating discretionary tuning.
3. Tracks retests without redefining structure
HVN interaction is tracked via wick touches within a tight ATR-based tolerance.
Retests are informational only and never move boundaries. This captures recognition and rejection behavior without violating close-based structure rules.
4. Ranks HVN strength (0–3)
Each HVN is scored using:
Tightness relative to ATR
Relative volume confirmation
Presence of at least one retest
This produces a simple, comparable strength ranking without overfitting.
5. Enforces clean monthly → weekly nesting
An optional monthly gate restricts weekly logic to operate only inside a defined monthly HVN.
If conflicts arise, monthly structure always overrides weekly, preventing level overlap and structural ambiguity.
What the indicator does NOT do
It does not read FRVP data (TradingView limitation)
It does not auto-detect HVNs
It does not generate trade signals
It exists to remove subjectivity and inconsistency from HVN boundary placement and evaluation.
Intended use
Apply FRVP and visually identify the HVN
Enter the HVN center price into the indicator
Let the script define precise boundaries and interaction metrics
Use monthly HVNs as structural rails and weekly HVNs for execution
Design philosophy
Structure is defined by closes and volatility, not wicks
Retests measure recognition, not acceptance
Higher timeframe structure always dominates
This tool enforces those rules mechanically so the trader doesn’t have to.
Global Net Liquidity LaggedShows net liquidity and allows the user to move it forward or backward to visualize its effect on the charted subject
Global Net Liquidity LaggedShows net liquidity and allows the user to move it forward or backward to visualize its effect on the charted subject
Group 1: Monthly Permission + Value LocationThis indicator is your monthly gatekeeper: it decides whether trading is allowed and shows where price sits in long-term value, before you ever think about entries.
This script answers one question, clearly and consistently:
“Should I even be trading right now, and where is price sitting inside the big monthly map?”
It is not an entry tool.
It does not tell you when to buy or sell.
It sets permission and context so you don’t make trades in bad environments.
Think of it as the front gate to your system.
What you see on the chart
1. Monthly value levels (manually entered)
You manually enter:
Monthly VAL (Value Area Low)
Monthly VAH (Value Area High)
Optional: Monthly POC, HVN1, HVN2 (display only)
These levels define the monthly value area.
The script never recalculates them or moves them.
Why manual?
Your system defines value from FRVP anchoring.
Automation would break your rules.
This keeps the indicator honest and predictable.
2. Monthly permission: Risk ON vs Risk OFF
The script evaluates the last three completed monthly candles and checks for environments where price is unreliable.
It will mark Risk OFF if any of the following are true:
A. Monthly alternation (chop)
The last three non-doji monthly candles alternate direction
Example: up → down → up
This means direction is not sticking
B. Repeated high volatility
Monthly RangeRatio ≥ your threshold
Happens in 2 of the last 3 months
Indicates unstable movement, not controlled expansion
C. Volume spike during chop
Monthly VolumeRatio spikes above your threshold
Occurs while alternation or chop is present
Indicates emotional participation without structure
If any of those are true → Risk OFF
Otherwise → Risk ON
This matches your rule:
“Avoid environments where closes don’t stick.”
3. Monthly location badge (where price is sitting)
The script classifies the current monthly close into one of five clear states:
Outside Above VAH
Outside Below VAL
Inside (Near VAH)
Inside (Near VAL)
Inside Value
“Near” is defined as a percentage of value width (default 10%), not a guess.
This gives you a fast answer to:
Am I inside value or outside?
If inside, am I near an edge or in the middle?
No interpretation required.
4. Readout dashboard (optional table)
If enabled, the dashboard shows:
Monthly Permission: Risk ON / Risk OFF
Location status (from the badge logic)
Monthly RangeRatio
Monthly VolumeRatio
Monthly ADX(14)
Anchor age (days since you anchored monthly value)
This is a status panel, not a signal board.
How you’re meant to use it
Step 1: Check permission first
If Risk OFF → you do nothing
You do not look for setups
You do not drop to weekly or daily
This enforces discipline.
Step 2: Note monthly location
Inside value → only value rotation logic is allowed later
Outside value → expansion logic may be allowed later
Near an edge → expect interaction, not immediate continuation
This sets the boundaries for all lower-timeframe decisions.
Step 3: Move on to Group 2 only if allowed
This script does not:
Choose Roadmap A or B
Trigger entries
Select targets
That happens later, on weekly and daily charts.
Group 1 only answers:
“Is the environment tradable, and where are we in the big picture?”
What this script deliberately does NOT do
No entries
No exits
No alerts
No pattern guessing
No automated value calculation
No repainting
It is intentionally boring.
That’s the point.
Why this matters (especially for newer traders)
Most traders lose money before the trade:
Trading during chop
Trading inside value as if it’s trending
Trading high volatility without structure
This script prevents that by:
Forcing you to check environment first
Giving you objective monthly context
Removing emotional decision-making
If this script says Risk OFF, you’re already doing the right thing by standing aside.
US Open Vertical LineUS Open Vertical Line
This indicator automatically plots a vertical dashed line at the US market open (09:30 New York time) on your chart.
It is designed for traders who focus on session-based price action, including:
New York open volatility
Opening drive and reversals
Intraday rotations and liquidity events
The indicator is minimal by design — it does not calculate ranges, highs/lows, or signals.
It simply marks the exact moment the US session opens, allowing you to combine it with your own strategy, levels, and risk management.
Key features:
Accurate US open detection using New York time (handles DST automatically)
Works on all timeframes
Clean, non-intrusive vertical dashed line
Ideal for futures, stocks, and index traders
Use it as a visual anchor for planning and executing trades around the most liquid part of the trading day.
Super SMA Trio (20 50 200)Three SMAs in one (20, 50, 200). This is self-explanatory. TradingView wants me to add more text even though nobody should have any trouble understanding the script.
Super EMA Trio (20 50 200)Triple EMA 20/50/200. This is self-explanatory. TradingView wants me to add more text to this because it thinks people can't figure out how to use this script. I don't know why. It seems pretty dumb of them to require more text for nothing.
QWRQWR identifies when trading activity outweighs price movement, highlighting periods where market participation is strong but price remains constrained—useful for filtering setups with favorable risk-reward conditions.






















