HITESH SOMANI Strategy Technical based strategy. Strong chart pattern based strategy for working professionals who dont have much time for trading
Indicators and strategies
Victoria Smart Overlay – EMA1/SMA3/SMA1Core Components:
EMA 1 (Micro): fastest trend trigger
SMA 3 (Short): trend confirmation
SMA 1 (Base): structure guide
Conditions and Actions:
EMA1 crosses above SMA3 → Uptrend starting → Consider Calls / Long
EMA1 crosses below SMA3 → Downtrend starting → Consider Puts / Short
Price hugging SMA1 → Neutral zone → Wait for breakout
Background Green → Confirmed Uptrend → Stay long or scalp Calls
Background Red → Confirmed Downtrend → Stay short or scalp Puts
Micro EMA + Heikin Ashi (Refined Swing Map)
Purpose: Filters fake moves and identifies strong momentum runs.
Use on 5m / 15m charts for intraday clarity.
Signals and Actions:
EMA1 > EMA3 > EMA5 → Micro-uptrend forming → Enter / hold Calls
EMA1 < EMA3 < EMA5 → Micro-downtrend forming → Enter / hold Puts
EMA lines tangled → No conviction → Wait
200-Day SMA rising → Macro bullish → Favor long trades
200-Day SMA falling → Macro bearish → Favor shorts
Inter-symmetric Forecast (ISF)Concept:
The Inter-Symmetric Forecast (ISF) is a physics-inspired price projection tool that visualizes both trend-continuation and mean-reversion scenarios in one dynamic structure. It extends the classic ADAM Projection by introducing a regime-sensitive weighting based on the Market Reynolds Number (Reₘ), a dimensionless ratio of market momentum × liquidity to volatility-derived “viscosity.”
Mechanism:
ISF mirrors past price action around the current close (the continuation path) while also forward-pasting the same pattern unreflected (the anti-trend path). It then blends these paths bar-by-bar using time-reflected Reₘ values — meaning the liquidity-momentum regime of each past segment determines how much its future mirror leans toward continuation or reversion.
Interpretation:
High Reₘ → strong inertia/liquidity, favors trend continuation.
Low Reₘ → high friction/volatility, favors mean reversion.
The yellow blended forecast shows the regime-weighted midpoint between both outcomes.
Use:
ISF offers traders a visual probability corridor rather than a fixed prediction — illustrating how far a move might extend if momentum persists, or fade if conditions become viscous. It’s best used as a contextual forecasting overlay for discretionary or systematic analysis.
BAY Technical Indicators//@version=5
indicator("BAY Technical Indicators", overlay=true)
// Price source
price = close
// VWAP
vwap = ta.vwap
plot(vwap, title="VWAP", color=color.blue, linewidth=2)
// SMMA (RMA) 20 and 50
smma20 = ta.rma(price, 20)
smma50 = ta.rma(price, 50)
plot(smma20, title="SMMA 20", color=color.lime)
plot(smma50, title="SMMA 50", color=color.purple)
// EMA 9 and 21
ema9 = ta.ema(price, 9)
ema21 = ta.ema(price, 21)
plot(ema9, title="EMA 9", color=color.white)
plot(ema21, title="EMA 21", color=color.red)
// MA 200
ma200 = ta.sma(price, 200)
plot(ma200, title="MA 200", color=color.orange, linewidth=2)
// SMA 325 (Dark Green)
sma325 = ta.sma(price, 325)
plot(sma325, title="SMA 325", color=color.new(color.green, 0)) // Dark green
// Volume SMA 9 (plotted in data window only)
volume_sma9 = ta.sma(volume, 9)
plot(volume_sma9, title="Volume SMA 9", color=color.fuchsia, linewidth=1, display=display.data_window)
SMC ORB vs PM ALPHADesigned to stack institutional confluences such as Smart Money Concepts, Inner Circle Trading, volatility, and market structure.
Plots pre-market high/low and 15 Opening Range.
Plots first sweep of Pre-market high/low as well as orb break/holds.
TP of Previous high/low & SL optional
Full Floating Dashboard YUJiDisplay information on top right corner.
Info shown:
High and Low
Current Price
24 Hour Change
Oversold Screener · v4# Step-2 Oversold Screener · v3.3
US equities · 15-minute event engine · AVWAP entries A–F · optional CVD/RSI/Z guards
## What this script does
Finds short, emotion-driven selloffs in large, healthy US stocks and turns them into actionable, right-side opportunities.
On a qualified 15-minute close it:
1. emits a minimal webhook so your backend/AI can vet the news and fundamentals, and
2. anchors an Event-AVWAP and plots ±1/±2/±3σ bands to guide entries A–F as price mean-reverts.
The logic runs in a fixed 15-minute space, independent of the chart timeframe you view.
## How an event is detected (Step-2 signal)
All conditions are evaluated on 15-minute data, including extended hours.
Depth, measured vs yesterday’s RTH reference
* Reference = min(yesterday’s RTH VWAP proxy, yesterday’s Close).
* 4h depth: current price vs reference across 16×15m bars ≤ threshold (default −4%).
* 8h depth: lowest close across the last 32×15m bars vs reference ≤ threshold (default −6%).
Relative underperformance
* Versus market ETF (SPY/QQQ) and sector ETF (XLK/XLF/XLY… or KWEB/CQQQ).
* Uses the same 16/32×15m windows; stock must be weaker by at least the set margins (default −3%).
Macro circuit breakers (any one trips = suppress signal)
* VIX level ≥ fuse (default 28).
* Market 4h/8h drawdown ≤ limits (default −2.0% / −3.5%).
* Sector 4h/8h drawdown ≤ limits (default −2.5% / −4.0%).
Momentum and distribution guards
* RSI(1h) < 30 by default (computed from 15m series).
* Optional Z-score filters: stock Z ≤ zTrig, and macro Z floors for market/sector.
* Cooldown per symbol so you don’t get spammed by repeated events.
When the event closes, the script posts a tiny JSON to your alert webhook and pins an on-chart “S2” marker at the event bar.
## Event-AVWAP and bands
From the event bar forward the script computes AVWAP natively in 15m space and draws bands at ±1σ/±2σ/±3σ.
σ is a rolling standard deviation of typical price with optional EMA smoothing and an optional cap.
Why this helps
* AVWAP from the shock timestamp approximates the crowd’s average position after the selloff.
* Reclaiming key bands often marks the start of orderly mean reversion rather than a dead-cat bounce.
## Entry proposals A–F (right-side confirmations)
Each entry requires first touching a lower band, then reclaiming a higher band.
A touch ≤ −2σ, then cross up through −1σ
B touch ≤ −1σ, then reclaim AVWAP
C break above −1σ, retest near −1σ within N bars, then bounce
D after compression (low ATR%), reclaim AVWAP
E touch ≤ −3σ, then cross up through −2σ
F touch ≤ −3σ, then cross up through −1σ (fast, aggressive)
Labeling hygiene
* Only the first three occurrences of each type A–F are shown within a one-week window after the event.
* A debounce interval avoids over-labeling across adjacent bars.
## Optional CVD gate (order-flow confirmation)
When enabled, entries must also pass a 15-minute CVD gate that looks for sell pressure exhaustion and a turn-up in cumulative delta.
Defaults are conservative; start with CVD off until you’re comfortable, then enable to filter chop after capitulations.
## Alert payload (minimal by design)
On the event bar close the script fires one alert with a tiny JSON that is easy to route and process in bulk:
```json
{
"event": "Crash_signal_15m",
"symbol": "NVDA",
"symbol_id": "NASDAQ:NVDA",
"ts_alert_15m_ms": 1730898900000,
"ts_alert_15m_local": "2025-11-06 10:45"
}
```
Notes
* ts_alert_15m_ms is the 15-minute close time in milliseconds since epoch (UTC reference).
* ts_alert_15m_local uses your chart’s timezone for readability.
Optional: a 24-hour streaming mode can resend this minimal payload on every 15-minute close during the day after the event (tiny patch available on request).
## Inputs you will actually touch
Bench/Sector symbols
* Bench: SPY or QQQ. Sector: XLK/XLF/XLY… or KWEB/CQQQ depending on the name.
Depth and relative thresholds
* 4h depth ≤ −4%, 8h depth ≤ −6%.
* Relative to market/sector ≤ −3% each.
Macro fuses
* VIX ≥ 28; market ≤ −2.0%/−3.5%; sector ≤ −2.5%/−4.0%.
Z/RSI guards
* Z window 80 bars (15m), stock zTrig ≤ −1.5, macro floors ≥ −1.0.
* RSI(1h) < 30.
AVWAP band engine
* σ EMA length 3; σ cap off by default.
* Retest window for entry C: 24 bars (≈6 hours).
Presentation and hygiene
* One-week entry window; per-type cap 3; debounce 8×15m bars.
* Signal table on/off, label pinning on/off.
## How to run it
1. Open a 15-minute chart (extended hours enabled recommended).
2. Add the indicator and choose Bench/Sector for the names you are reviewing.
3. Create a single alert per chart with Condition = Any alert() function call and Options = Once per bar close.
4. Point the alert to your webhook URL (or use app/email if you don’t have a URL).
5. Let your backend/AI receive the minimal JSON, do the news/fundamentals check, and decide Allow / Hold / Reject.
6. For Allowed names, use the on-chart A–F markers to stage in; manage risk against Event-AVWAP and upper HVNs/POC.
## Defaults that work well
* RSI(1h) < 30
* Depth 4h/8h ≤ −4%/−6% vs yesterday’s reference
* Relative to market/sector ≤ −3%
* Z: stock ≤ −1.5; macro floors ≥ −1.0
* Fuses: VIX ≥ 28; market ≤ −2.0%/−3.5%; sector ≤ −2.5%/−4.0%
* Bands: σ EMA = 3; no σ cap; one-week window; 3 labels per type
## Notes and limitations
* This is an indicator, not an auto-trader. Position sizing and exits are up to you.
* Designed for liquid US equities; thin ADRs and micro-caps are noisy.
* All event logic and entries are evaluated on bar close; AVWAP and bands do not repaint.
* If you need to monitor many symbols without a server, a Scanner variant can batch 10–17 tickers per script and alert without a webhook.
Liquidity Regime OscillatorThe Liquidity Signal Line is a macro-driven confirmation tool designed to capture the underlying global liquidity regime in a single, smoothed oscillator. It measures the combined directional flow of monetary and financial conditions using high-impact macro data: Federal Reserve assets (WALCL), Treasury General Account (TGA), and the Overnight Reverse Repo facility (RRP) – adjusted by key market proxies such as the U.S. Dollar Index, credit spreads (HYG/LQD), and equity risk appetite (SPHB/SPHQ). These components are normalized, weighted, and then double-smoothed into a stable signal that translates complex liquidity dynamics into a simple 0–100 scale.
Liquidity expansion provides fuel for risk assets, while contraction drains leverage and risk appetite. The Signal Line acts as a confirmation overlay for trend and allocation strategies, showing whether systemic liquidity is broadly supportive or restrictive. Readings above 50 indicate an expansionary environment (risk-on bias), below 50 a contractionary one (risk-off bias). Because the calculation uses higher-timeframe macro data, it can be displayed on any chart to give traders a consistent, regime-aware signal that bridges macro policy and technical execution.
Risk & Position DashboardRisk & Position Dashboard
Overview
The Risk & Position Dashboard is a comprehensive trading tool designed to help traders calculate optimal position sizes, manage risk, and visualize potential profit/loss scenarios before entering trades. This indicator provides real-time calculations for position sizing based on account size, risk percentage, and stop-loss levels, while displaying multiple take-profit targets with customizable risk-reward ratios.
Key Features
Position Sizing & Risk Management:
Automatic position size calculation based on account size and risk percentage
Support for leveraged trading with maximum leverage limits
Fractional shares support for brokers that allow partial share trading
Real-time fee calculation including entry, stop-loss, and take-profit fees
Break-even price calculation including trading fees
Multi-Target Profit Management:
Support for up to 3 take-profit levels with individual portion allocations
Customizable risk-reward ratios for each take-profit target
Visual profit/loss zones displayed as colored boxes on the chart
Individual profit calculations for each take-profit level
Visual Dashboard:
Clean, customizable table display showing all key metrics
Configurable label positioning and styling options
Real-time tracking of whether stop-loss or take-profit levels have been reached
Color-coded visual zones for easy identification of risk and reward areas
Advanced Configuration:
Comprehensive input validation and error handling
Support for different chart timeframes and symbols
Customizable colors, fonts, and display options
Hide/show individual data fields for personalized dashboard views
How to Use
Set Account Parameters: Configure your account size, maximum risk percentage per trade, and trading fees in the "Account Settings" section.
Define Trade Setup: Use the "Entry" time picker to select your entry point on the chart, then input your entry price and stop-loss level.
Configure Take Profits: Set your desired risk-reward ratios and portion allocations for each take-profit level. The script supports 1-3 take-profit targets.
Analyze Results: The dashboard will automatically calculate and display position size, number of shares, potential profits/losses, fees, and break-even levels.
Visual Confirmation: Colored boxes on the chart show profit zones (green) and loss zones (red), with lines extending to current price levels.
Reset Entry and SL:
You can easily reset the entry and stop-loss by clicking the "Reset points..." button from the script's "More" menu.
This is useful if you want to quickly clear your current trade setup and start fresh without manually adjusting the points on the chart.
Calculations
The script performs sophisticated calculations including:
Position size based on risk amount and price difference between entry and stop-loss
Leverage requirements and position amount calculations
Fee-adjusted risk-reward ratios for realistic profit expectations
Break-even price including all trading costs
Individual profit calculations for partial position closures
Detailed Take-Profit Calculation Formula:
The take-profit prices are calculated using the following mathematical formula:
// Core variables:
// risk_amount = account_size * (risk_percentage / 100)
// total_risk_per_share = |entry_price - sl_price| + (entry_price * fee%) + (sl_price * fee%)
// shares = risk_amount / total_risk_per_share
// direction_factor = 1 for long positions, -1 for short positions
// Take-profit calculation:
net_win = total_risk_per_share * shares * RR_ratio
tp_price = (net_win + (direction_factor * entry_price * shares) + (entry_price * fee% * shares)) / (direction_factor * shares - fee% * shares)
Step-by-step example for a long position (based on screenshot):
Account Size: 2,000 USDT, Risk: 2% = 40 USDT
Entry: 102,062.9 USDT, Stop Loss: 102,178.4 USDT, Fee: 0.06%
Risk per share: |102,062.9 - 102,178.4| + (102,062.9 × 0.0006) + (102,178.4 × 0.0006) = 115.5 + 61.24 + 61.31 = 238.05 USDT
Shares: 40 ÷ 238.05 = 0.168 shares (rounded to 0.17 in display)
Position Size: 0.17 × 102,062.9 = 17,350.69 USDT
Position Amount (with 9x leverage): 17,350.69 ÷ 9 = 1,927.85 USDT
For 2:1 RR: Net win = 238.05 × 0.17 × 2 = 80.94 USDT
TP1 price = (80.94 + (1 × 102,062.9 × 0.17) + (102,062.9 × 0.0006 × 0.17)) ÷ (1 × 0.17 - 0.0006 × 0.17) = 101,464.7 USDT
For 3:1 RR: TP2 price = 101,226.7 USDT (following same formula with RR=3)
This ensures that after accounting for all fees, the actual risk-reward ratio matches the specified target ratio.
Risk Management Features
Maximum Trade Amount: Optional setting to limit position size regardless of account size
Leverage Limits: Built-in maximum leverage protection
Fee Integration: All calculations include realistic trading fees for accurate expectations
Validation: Automatic checking that take-profit portions sum to 100%
Historical Tracking: Visual indication when stop-loss or take-profit levels are reached (within last 5000 bars)
Understanding Max Trade Amount - Multiple Simultaneous Trades:
The "Max Trade Amount" feature is designed for traders who want to open multiple positions simultaneously while maintaining proper risk management. Here's how it works:
Key Concept:
- Risk percentage (2%) always applies to your full Account Size
- Max Trade Amount limits the capital allocated per individual trade
- This allows multiple trades with full risk on each trade
Example from Screenshot:
Account Size: 2,000 USDT
Max Trade Amount: 500 USDT
Risk per Trade: 2% × 2,000 = 40 USDT per trade
Stop Loss Distance: 0.11% from entry
Result: Position Size = 17,350.69 USDT with 35x leverage
Total Risk (including fees): 40.46 USDT
Multiple Trades Strategy:
With this setup, you can open:
Trade 1: 40 USDT risk, 495.73 USDT position amount (35x leverage)
Trade 2: 40 USDT risk, 495.73 USDT position amount (35x leverage)
Trade 3: 40 USDT risk, 495.73 USDT position amount (35x leverage)
Trade 4: 40 USDT risk, 495.73 USDT position amount (35x leverage)
Total Portfolio Exposure:
- 4 simultaneous trades = 4 × 495.73 = 1,982.92 USDT position amount
- Total risk exposure = 4 × 40 = 160 USDT (8% of account)
ATR SL/TP Precision Zones (Dots)ATR SL/TP Precision Zones (Dots) is a volatility-based tool designed to help traders set accurate Stop Loss and Take Profit levels based on real market volatility — not fixed pips or emotion.
This indicator uses ATR (Average True Range) multiplied by 1.2 to calculate dynamic distance bands.
Instead of drawing a ribbon or channel, it places simple dots above and below each candle:
Upper Dot (Green) → Suggested Take Profit / Price Stretch Zone
Lower Dot (Red) → Suggested Stop Loss Cushion / Support Expansion Zone
Because ATR measures market volatility, these dots expand during high volatility and tighten during slow markets, helping traders avoid stop-loss hunts and premature exits.
Why This Works
Most traders lose because:
They set SL too close → stopped out by noise
They set TP too far → price never reaches it
This tool calibrates those distances automatically based on real price movement behavior.
ATR = volatility
Volatility = market breathing room
This indicator ensures your trade has room to breathe, increasing win consistency.
Best Use Cases
Scalping
Swing trading
Trend continuation entries
Reversal confirmations with support/resistance
Works on Crypto / Forex / Stocks / Futures
X Tail that Wagsintraday session-framework and ETH-anchored VWAP tool for TradingView. It draws today’s OVN (ETH) high/mid/low, today’s RTH-day open, previous day open/high/low, and a carried ETH VWAP handle (yesterday’s 4:00 PM NY VWAP, projected forward) to give you a clean, non-repainting scaffold for bias, structure, and execution. All timestamps are New York–local with DST handled explicitly, so historical sessions align correctly across time changes.
Key Capabilities
ETH OVN Range (18:00 → 09:30 NY)
Captures the rolling overnight high/low and computes the mid; at 09:30 NY it locks those levels and extends them to 16:00 NY (same day).
Optional labels (size/color configurable) placed slightly to the right of the 4 PM timestamp for readability.
Daily Handles (Today & Previous Day)
Today’s open line starts at the ETH open (anchor preserved) and extends toward 4 PM NY (or up to the “current bar + 5 bars” cap), with label control.
Previous day open/high/low plotted as discrete reference lines for carry-over structure.
ETH-Anchored VWAP (Live) + Bands
ETH-anchored VWAP runs only during the active ETH session (DST-aware).
Optional VWAP bands (0.5×, 1.0×, 2.0× multipliers) plotted as line-break series.
Carried ETH VWAP Handle (PD 4 PM Snapshot)
At 16:00 NY, the script snapshots the final ETH VWAP value.
On the next ETH open, it projects that value as a static dashed line through the session (non-mutating, non-repainting), with optional label.
Labeling & Styling
Single-toggle label system with color and five sizes.
Per-line color/width controls for quick visual hierarchy.
Internal “tail” logic keeps right endpoints near price (open-anchored lines extend to min(4 PM, now + 5 bars)), avoiding chart-wide overdraw.
Robust Session Logic
All session boundaries computed in NY local time; DST rules applied for historical bars.
Cross-midnight windows handled safely (no gaps or misalignment around day rolls).
Primary Use Cases
Session Bias & Context
Use OVN H/M/L and today’s open to define structural bias zones before RTH begins. A break-and-hold above OVN mid, for example, can filter long ideas; conversely, rejection at OVN high can warn of mean reversion.
Carry-Forward Mean/Value Reference
The carried ETH VWAP (PD 4 PM) acts as a “value memory” line for the next day. Traders can:
Fade tests away from it in balanced conditions,
Use it as a pullback/acceptance gauge during trends,
Track liquidity grabs when price spikes through and reclaims.
Execution Planning & Risk
Anchor stops/targets around PD H/L and OVN H/M/L for well-defined invalidation.
Combine with your entry model (order-flow, momentum, or pattern) to time fades at range extremes or momentum breaks from OVN mid.
Confluence Mapping
Layer the tool with opening range tools, HTF zones, or profile/VWAPs (weekly/daily) to spot high-quality confluence where multiple references cluster.
Regime & Day-Type Read
Quickly see whether RTH accepts/rejects the OVN range or gravitates to PD VWAP handle, helping classify the day (trend, balanced, double-distribution, etc.).
Quick Start
Apply to your intraday chart (any instrument supported by TradingView; best on ≤15m for live intraday context).
In Current Day group, keep Open and OVN HL on; optionally display the mid.
In Previous Day group, enable PD Open/HL for carry-over levels.
Enable AVWAP if you want live ETH-anchored VWAP and its Bands for distance context.
Keep PD VWAP on to project yesterday’s 4 PM ETH VWAP as a static dashed line into today.
Use the Label group to size/color the on-chart tags.
Settings Overview (Plain-English)
Label: Toggle labels on/off; choose label text color and size.
Current Day:
Open (color/width) — daily open line anchored at ETH open.
OVN HL (and Mid) — overnight high/low and midpoint, locked at 09:30 and extended to 16:00.
AVWAP + Bands — ETH-anchored VWAP with optional 0.5×/1×/2× bands.
Previous Day:
PD Open/HL — yesterday’s daily handles.
PD VWAP — the carried snapshot of yesterday’s 4 PM ETH VWAP projected forward (dashed).
Notes & Best Practices
Time Zone: All session logic is hard-coded to America/New_York and DST-robust. No manual DST tweaks required.
Non-Repainting: The carried PD VWAP line is a snapshot; once drawn, it does not back-fill or mutate.
Intraday Use: Designed for intraday execution. It will display on higher TFs, but the session granularity is most informative at ≤15m.
Performance: Script caps lines/labels (500) and uses short “tails” to keep charts responsive.
Compatibility: Uses request.security(..., "D", series, lookahead_on) intentionally to lock daily handles early for planning; this is by design.
Typical Playbook Examples
Fade Extremes in Balance: As RTH opens inside OVN, look for rejection wicks at OVN High with confluence from PD VWAP handle overhead; risk above OVN High.
Trend Continuation: In directional sessions, acceptances above OVN Mid with price pulling back to the live ETH VWAP can offer continuation entries.
Reversion to Value: Sharp extensions away from the carried PD VWAP that quickly stall often revert to that handle; use it as a target or as an acceptance test.
Day of Week LetterLetters printed on the Daily candle corresponding the day of the trading week it is on. Used for weekly range logic
Set it to 'bring to front' to see it
ATR + High/Lows//@version=6
indicator('ATR + Values', overlay = true)
// ========================
// === User Inputs ===
// ========================
showATR = input.bool(true, 'Show ATR/Move Table')
showHLR = input.bool(true, 'Show HL/R Table')
atrLength = input.int(14, 'ATR Period')
textColor = input.color(color.rgb(247, 242, 242), 'Default Text Color')
backgroundCol = input.color(color.rgb(0, 0, 0), 'Background Color')
rowOffset = input.int(0, 'Vertical Offset (rows)', minval = 0, maxval = 10)
colOffset = input.int(0, 'Horizontal Offset (columns)', minval = 0, maxval = 100)
var string tz = 'America/New_York'
// ========================
// === ATR / Move Logic ===
// ========================
dailyATRseries = request.security(syminfo.tickerid, 'D', ta.atr(atrLength), lookahead = barmerge.lookahead_off)
dailyATRprev = dailyATRseries
newDayID = year(time, tz) * 10000 + month(time, tz) * 100 + dayofmonth(time, tz)
var int lastDayID = na
var float dayHigh = na
var float dayLow = na
var float fixedATR = na
isNewSession = na(lastDayID) or newDayID != lastDayID
after4am = hour(time, tz) >= 4
firstBarAfter4 = isNewSession and after4am and not(hour(time , tz) >= 4 and newDayID == year(time , tz) * 10000 + month(time , tz) * 100 + dayofmonth(time , tz))
if firstBarAfter4
dayHigh := high
dayLow := low
lastDayID := newDayID
fixedATR := dailyATRprev
else
dayHigh := math.max(dayHigh, high)
dayLow := math.min(dayLow, low)
intradayRange = dayHigh - dayLow
moveBg = intradayRange > fixedATR ? color.new(color.red, 77) : color.new(color.teal, 74)
// ========================
// === ATR + Move Table ===
// ========================
var table atrTable = table.new(position.top_right, 1, 2, border_width = 1, border_color = color.rgb(255, 255, 255))
if barstate.islast and showATR
table.clear(atrTable, 0, 0)
// Row 0: ATR Value
table.cell(atrTable, 0, 0, str.tostring(fixedATR, format.mintick),
bgcolor=color.rgb(0, 0, 0),
text_color=color.rgb(247, 242, 242),
text_halign=text.align_center)
// Row 1: Move Value (colored)
table.cell(atrTable, 0, 1, str.tostring(intradayRange, format.mintick),
bgcolor=moveBg,
text_color=color.rgb(247, 242, 242),
text_halign=text.align_center)
else
table.clear(atrTable, 0, 0)
// ========================
// === HL / Range Logic ===
// ========================
prevHigh = high
prevLow = low
currHigh = high
currLow = low
rangeHL = currHigh - currLow
rangeHL1 = prevHigh - prevLow
col1Text = str.tostring(rangeHL1, '0.00')
col2Text = str.tostring(prevHigh, '0.00') + ' ' + str.tostring(prevLow, '0.00')
col3Text = str.tostring(currHigh, '0.00') + ' ' + str.tostring(currLow, '0.00')
col4Text = str.tostring(rangeHL, '0.00')
prevColor = close > open ? color.rgb(64, 224, 208) : color.rgb(253, 143, 100)
currColor = close > open ? color.rgb(64, 224, 208) : color.rgb(253, 143, 100)
// ========================
// === HL / Range Table ===
// ========================
var table hlTable = table.new(position.top_center, 4 + colOffset, rowOffset + 1)
if barstate.islast and showHLR
for row = 0 to rowOffset by 1
for col = 0 to 3 + colOffset by 1
table.cell(hlTable, col, row, '', bgcolor = na)
row = rowOffset
colStart = colOffset
table.cell(hlTable, colStart + 0, row, col1Text, text_color = textColor, bgcolor = backgroundCol, text_halign = text.align_center, text_size = size.large)
table.cell(hlTable, colStart + 1, row, col2Text, text_color = prevColor, bgcolor = backgroundCol, text_halign = text.align_center, text_size = size.normal)
table.cell(hlTable, colStart + 2, row, col3Text, text_color = currColor, bgcolor = backgroundCol, text_halign = text.align_center, text_size = size.normal)
table.cell(hlTable, colStart + 3, row, col4Text, text_color = textColor, bgcolor = backgroundCol, text_halign = text.align_center, text_size = size.large)
else
table.clear(hlTable, 0, 0)
Nifty Futures Momentum ScalperNifty Futures Momentum Scalper
Backtesting
VPA , RSI, momentum trades with EMA crossover
tradingview_momentum_Hull-Suite-W-FVSO-NO-WeekendMomentum no weekend trades. It uses FVZO and Hull suite.
This strategy has low win rate but successfully catches trends. Works well on ETH in High Time Frame multi-year.
Squeeze Ultimate MTF DashboardThis script provides real time data on the following across 3 TF of your choice all displayed in a clear table on your chart:
1) Momentum - do we have expanding positive or negative momentum
2) Do we have stacked averages - any choices of 4 EMA's
3) Are we in a squeeze
4) How many bars since the squeeze fired have passed
This allows you to gauge, on MTF, whether we have expanding momentum, in a stacked moving average environment and whether the squeeze is getting ready to fire or has already fired, and if so, how long ago.
Credit to John carter for developing the original squeeze
Saifunnas VelMaxtrend following strategy, wait for SOS candle before entry, stoploss below low signal
Stoch PRO + Dynamic EMA (EMA cross)Stoch PRO + Dynamic EMA Documentation
Overview:
- Pine Script v6 overlay indicator combining a trend-colored EMA with a Stochastic oscillator to highlight midline momentum shifts.
- Designed for TradingView charts (Indicators → Import) as a visual aid for timing entries within trend-following setups.
- Crafted and optimized around BTCUSDT on the 4h timeframe; adapt inputs before applying to other markets or intervals.
Inputs:
- EMA Length (default 50): smoothing window for the dynamic EMA; lower values respond faster but whipsaw more.
- Stochastic K Length (20): lookback for the raw %K calculation.
- Stochastic K Smoothing (3): SMA applied to %K to reduce noise.
- Stochastic D Smoothing (3): SMA over %K to produce the companion %D line.
Visual Elements:
- EMA plotted on price with linewidth 3; teal when close > EMA, fuchsia otherwise.
- Background tinted teal/fuchsia at high transparency (≈92) to reinforce the current trend bias without obscuring price bars.
Oscillator Logic:
- %K = ta.stoch(high, low, close, kLength); smoothed with ta.sma(kRaw, kSmooth).
- %D = ta.sma(k, dSmooth).
- Focus is on the midline (50) rather than traditional 20/80 extremes to emphasize rapid momentum flips.
Signals:
- Buy: %K crossing above 50 while close > EMA (teal state). Plots tiny teal circle below the bar.
- Sell: %K crossing below 50 while close < EMA (fuchsia state). Plots tiny purple circle above the bar.
Trading Workflow Tips:
- Use EMA/background color for directional bias, then confirm with %K 50-cross to refine entries.
- Consider higher-timeframe trend filters or price-action confirmation to avoid range chop.
- Stops often sit just beyond the EMA; adjust thresholds (e.g., 55/45) if too many false positives occur.
- Always plan risk/reward upfront—define TP/SL levels that fit your strategy and backtest them thoroughly before trading live.
Alerts & Extensions:
- Wrap crossUp/crossDown in alertcondition() if TradingView alerts are needed.
- For automation/backtesting, convert logic to a strategy() script or add position management rules.
Fibonacci//@version=5
indicator("Fib", overlay = true)
// === INPUTS ===
lineLength = input.int(4, "Line Length (Bars)", minval = 1)
labelSize = input.string("large", "Label Size", options = )
// === Session Start (9:30 AM NY time) ===
sessionStart = timestamp("America/New_York", year(time), month(time), dayofmonth(time), 9, 30)
isNewDay = ta.change(time("D")) != 0
inSession = time >= sessionStart
// === Track High/Low from session start ===
var float dayHigh = na
var float dayLow = na
if isNewDay
dayHigh := na
dayLow := na
if inSession
dayHigh := na(dayHigh) ? high : math.max(dayHigh, high)
dayLow := na(dayLow) ? low : math.min(dayLow, low)
// === Fibonacci Levels ===
range1 = dayHigh - dayLow
fib_0 = dayHigh
fib_236 = dayHigh - 0.236 * range1
fib_382 = dayHigh - 0.382 * range1
fib_500 = dayHigh - 0.500 * range1
fib_618 = dayHigh - 0.618 * range1
fib_764 = dayHigh - 0.764 * range1
fib_100 = dayLow
// === Line and Label Handles ===
var line line_0 = na
var line line_236 = na
var line line_382 = na
var line line_500 = na
var line line_618 = na
var line line_764 = na
var line line_100 = na
var label label_0 = na
var label label_236 = na
var label label_382 = na
var label label_500 = na
var label label_618 = na
var label label_764 = na
var label label_100 = na
// === Redraw Conditions ===
justEnteredSession = inSession and na(dayHigh )
redrawInterval = 2 // ← Redraw every 2 candles
shouldDraw = inSession and not na(dayHigh) and not na(dayLow) and (justEnteredSession or bar_index % redrawInterval == 0)
if shouldDraw
// Delete old lines and labels
line.delete(line_0)
line.delete(line_236)
line.delete(line_382)
line.delete(line_500)
line.delete(line_618)
line.delete(line_764)
line.delete(line_100)
label.delete(label_0)
label.delete(label_236)
label.delete(label_382)
label.delete(label_500)
label.delete(label_618)
label.delete(label_764)
label.delete(label_100)
// Calculate midpoint of line
int midX = bar_index + lineLength / 1
// Label size
labelSizeEnum = labelSize == "large" ? size.large : labelSize == "normal" ? size.normal : size.small
// === Draw lines and % labels ===
// Uncomment the levels you want to show
// line_0 := line.new(bar_index, fib_0, bar_index + lineLength, fib_0, color = color.white, width = 1)
// label_0 := label.new(midX, fib_0, text = str.tostring(fib_0, format.mintick), xloc = xloc.bar_index, yloc = yloc.price, size = labelSizeEnum, style = label.style_label_left, textcolor = color.white, color = color.new(color.white, 85))
// line_236 := line.new(bar_index, fib_236, bar_index + lineLength, fib_236, color = color.green, width = 1)
// label_236 := label.new(midX, fib_236, text = str.tostring(fib_236, format.mintick), xloc = xloc.bar_index, yloc = yloc.price, size = labelSizeEnum, style = label.style_label_left, textcolor = color.green, color = color.new(color.green, 85))
// line_382 := line.new(bar_index, fib_382, bar_index + lineLength, fib_382, color = color.green, width = 1)
// label_382 := label.new(midX, fib_382, text = str.tostring(fib_382, format.mintick), xloc = xloc.bar_index, yloc = yloc.price, size = labelSizeEnum, style = label.style_label_left, textcolor = color.green, color = color.new(color.green, 85))
line_500 := line.new(bar_index, fib_500, bar_index + lineLength, fib_500, color = color.white, width = 1)
label_500 := label.new(midX, fib_500, text = str.tostring(fib_500, format.mintick), xloc = xloc.bar_index, yloc = yloc.price, size = labelSizeEnum, style = label.style_label_left, textcolor = color.white, color = color.new(color.white, 85))
// line_618 := line.new(bar_index, fib_618, bar_index + lineLength, fib_618, color = color.green, width = 1)
// label_618 := label.new(midX, fib_618, text = str.tostring(fib_618, format.mintick), xloc = xloc.bar_index, yloc = yloc.price, size = labelSizeEnum, style = label.style_label_left, textcolor = color.green, color = color.new(color.green, 85))
// line_764 := line.new(bar_index, fib_764, bar_index + lineLength, fib_764, color = color.green, width = 1)
// label_764 := label.new(midX, fib_764, text = str.tostring(fib_764, format.mintick), xloc = xloc.bar_index, yloc = yloc.price, size = labelSizeEnum, style = label.style_label_left, textcolor = color.green, color = color.new(color.green, 85))
// line_100 := line.new(bar_index, fib_100, bar_index + lineLength, fib_100, color = color.white, width = 1)
// label_100 := label.new(midX, fib_100, text = str.tostring(fib_100, format.mintick), xloc = xloc.bar_index, yloc = yloc.price, size = labelSizeEnum, style = label.style_label_left, textcolor = color.white, color = color.new(color.white, 85))
Nasdaq 100 Breadth Composite (sjmccormick)Small indicator combining NDFD, NDFI, NDOH, NFTH into a composite indicator with overbought and oversold areas
RSI - Ostinato TradingRSI indicator for Ostinato Trading scalping strategy. The classic RSI with special color fills for extremum detection.






















