Glacial Momentum Index Glacial Momentum Index (GMI) - Technical Documentation 🧊
Core Concept
The GMI is a momentum oscillator that measures sustained directional pressure in price movements. It combines velocity analysis with a for-loop scanning system to identify medium-term trends while filtering out noise and false breakouts.
Architecture
1. Velocity Index Calculation
velocity_index = (price - EMA) / ATR
Components:
Price Source: OHLC4 (average of open, high, low, close)
Velocity Basis: 40-period EMA of price
Normalization: ATR(24) makes the indicator adaptive to volatility
Purpose: Measures how far price has deviated from its moving average, scaled by current market volatility. This creates a normalized momentum reading that works across different market conditions.
2. For-Loop Momentum Score
The core innovation. Scans 5-55 bars (50-bar window) and counts directional consistency:
For each bar from 5 to 55 bars ago:
- If velocity_index > velocity_index : +1 point
- If velocity_index < velocity_index : -1 point
Final Score = (net points / total bars) × 100
Output: A percentage score from -100% to +100%
+100% = every bar shows upward momentum
-100% = every bar shows downward momentum
0% = equal distribution
Why 5-55 bars?
Start at 5 to ignore immediate noise
End at 55 to capture medium-term trends
Creates a 50-bar scanning window
3. Drift Layer
A 34-period slower velocity calculation providing macro context. Plotted as a white line scaled ×20 to match the velocity display range. This shows the underlying trend while the velocity index shows short-term moves.
Signal Logic
Entry Conditions
LONG:
Loop score > 28% (meaning 64%+ of scanned bars are trending up)
Velocity index > 0 (confirming current upward momentum)
SHORT:
Loop score < -25% (meaning 62%+ of scanned bars are trending down)
Velocity index < 0 (confirming current downward momentum)
State Persistence
Uses a state machine (signal_state: -1, 0, 1) that:
Enters long when both conditions meet
Stays long until short conditions trigger
No exit on neutral - holds position through consolidation
This prevents excessive trading during sideways markets.
Visual Elements
Histogram (Primary Signal)
Shows loop score as columns
Color: Cyan above long threshold, navy below short threshold, gray in between
Direct visualization of trend strength
Velocity Line (Thick, 4px)
Scaled ×20 to overlay on histogram
Color matches signal state (cyan=long, navy=short, gray=neutral)
Shows immediate momentum
Drift Line (White, 2px)
Scaled ×20 for consistency
Provides slower context
Helps identify when velocity is aligned with macro trend
Background Fill
Subtle tint (94% transparency)
Cyan during long state
Navy during short state
Instantly shows current position
Threshold Lines
Long: 28 (cyan dashed)
Short: -25 (navy dashed)
Zero: 0 (gray solid)
Signal Markers
Triangle up (cyan) on new long
Triangle down (navy) on new short
Only appear on state changes, not every bar
Why It Works for Crypto
ATR Normalization: Adapts to Bitcoin/Ethereum's variable volatility
Medium-Term Focus: 50-bar scan catches trends lasting days/weeks
State Persistence: Doesn't exit on minor pullbacks
Asymmetric Thresholds: 28/-25 reflects crypto's tendency to trend up stronger than down
Velocity Confirmation: Prevents entries when loop score is positive but price is actually falling
Parameter Tuning Guide
Velocity Period (40):
Lower (20-30) = more sensitive, faster signals
Higher (50-60) = smoother, fewer signals
Loop Window (5-55):
Wider window = catches longer trends
Narrower window = responds faster to changes
Long Threshold (28):
Lower (20-25) = more entries, potentially more noise
Higher (35-40) = fewer, higher-conviction entries
Short Threshold (-25):
Higher (-20 to -15) = more short entries
Lower (-30 to -35) = more selective shorts
Current Optimized Settings (BTC/ETH 4H-1D)
Velocity: 40 periods (catches medium-term momentum shifts)
Loop: 5-55 bars (50-bar trend scan)
Long: 28% (requires 64% directional consistency)
Short: -25% (requires 62% directional consistency)
Source: OHLC4 (reduces single-wick noise)
What Makes This Different
Unlike standard oscillators (RSI, MACD, Stochastic):
Not mean-reverting - designed to ride trends, not fade them
Context-aware - loop score measures sustained pressure, not just current momentum
Volatility-adaptive - ATR normalization works in both high and low vol regimes
State-based - holds positions through noise instead of flipping constantly
The for-loop mechanism is the key innovation: it requires a majority of recent history to show directional alignment before signaling, filtering out temporary spikes that destroy most momentum systems.
스크립트에서 "价格在30元内股票"에 대해 찾기
Rocket Scan – Midday Movers (No Pullback)This indicator is designed to spot intraday breakout movers that often appear after the market open — the ones that rip out of nowhere and cause FOMO if you’re late.
🔑 Core Logic
• Momentum Burst: Detects sudden price pops (ROC) with confirming relative volume.
• Squeeze → Breakout: Finds low-volatility compressions (tight Bollinger bandwidth) and flags the first breakout move.
• VWAP Reclaims: Highlights strong reversals when price reclaims VWAP on volume.
• Relative Volume (RVOL): Filters for unusual activity vs. recent averages.
• Gap Filter: Skips large overnight gappers, focuses on fresh intraday movers.
• Relative Strength: Optional filter requiring the symbol to outperform SPY (and sector ETF if chosen).
• Session Window: Default 10:30–15:30 ET to ignore noisy open action and catch true midday moves.
🎯 Use Case
• Built for traders who want early alerts on midday runners without waiting for pullbacks.
• Helps identify potential entry points before FOMO kicks in.
• Works best on liquid tickers (stocks, ETFs, crypto) with reliable intraday volume.
📊 Visuals
• Plots fast EMA, slow EMA, and VWAP for trend context.
• Paints green ▲ for long signals and red ▼ for short signals on the chart.
• Info label shows RVOL, ROC, RS filter status, and gap conditions.
🚨 Alerts
Two alert conditions included:
• Rocket: Midday LONG → Fires when bullish conditions align.
• Rocket: Midday SHORT → Fires when bearish conditions align.
⸻
⚠️ Disclaimer:
This tool is for educational and research purposes only. It is not financial advice. Trading involves risk; always do your own research or consult a licensed professional.
Order Block Volumatic FVG StrategyInspired by: Volumatic Fair Value Gaps —
License: CC BY-NC-SA 4.0 (Creative Commons Attribution–NonCommercial–ShareAlike).
This script is a non-commercial derivative work that credits the original author and keeps the same license.
What this strategy does
This turns BigBeluga’s visual FVG concept into an entry/exit strategy. It scans bullish and bearish FVG boxes, measures how deep price has mitigated into a box (as a percentage), and opens a long/short when your mitigation threshold and filters are satisfied. Risk is managed with a fixed Stop Loss % and a Trailing Stop that activates only after a user-defined profit trigger.
Additions vs. the original indicator
✅ Strategy entries based on % mitigation into FVGs (long/short).
✅ Lower-TF volume split using upticks/downticks; fallback if LTF data is missing (distributes prior bar volume by close’s position in its H–L range) to avoid NaN/0.
✅ Per-FVG total volume filter (min/max) so you can skip weak boxes.
✅ Age filter (min bars since the FVG was created) to avoid fresh/immature boxes.
✅ Bull% / Bear% share filter (the 46%/53% numbers you see inside each FVG).
✅ Optional candle confirmation and cooldown between trades.
✅ Risk management: fixed SL % + Trailing Stop with a profit trigger (doesn’t trail until your trigger is reached).
✅ Pine v6 safety: no unsupported args, no indexof/clamp/when, reverse-index deletes, guards against zero/NaN.
How a trade is decided (logic overview)
Detect FVGs (same rules as the original visual logic).
For each FVG currently intersected by the bar, compute:
Mitigation % (how deep price has entered the box).
Bull%/Bear% split (internal volume share).
Total volume (printed on the box) from LTF aggregation or fallback.
Age (bars) since the box was created.
Apply your filters:
Mitigation ≥ Long/Short threshold.
Volume between your min and max (if enabled).
Age ≥ min bars (if enabled).
Bull% / Bear% within your limits (if enabled).
(Optional) the current candle must be in trade direction (confirm).
If multiple FVGs qualify on the same bar, the strategy uses the most recent one.
Enter long/short (no pyramiding).
Exit with:
Fixed Stop Loss %, and
Trailing Stop that only starts after price reaches your profit trigger %.
Input settings (quick guide)
Mitigation source: close or high/low. Use high/low for intrabar touches; close is stricter.
Mitigation % thresholds: minimal mitigation for Long and Short.
TOTAL Volume filter: skip FVGs with too little/too much total volume (per box).
Bull/Bear share filter: require, e.g., Long only if Bull% ≥ 50; avoid Short when Bull% is high (Short Bull% max).
Age filter (bars): e.g., ≥ 20–30 bars to avoid fresh boxes.
Confirm candle: require candle direction to match the trade.
Cooldown (bars): minimum bars between entries.
Risk:
Stop Loss % (fixed from entry price).
Activate trailing at +% profit (the trigger).
Trailing distance % (the trailing gap once active).
Lower-TF aggregation:
Auto: TF/Divisor → picks 1/3/5m automatically.
Fixed: choose 1/3/5/15m explicitly.
If LTF can’t be fetched, fallback allocates prior bar’s volume by its close position in the bar’s H–L.
Suggested starting presets (you should optimize per market)
Mitigation: 60–80% for both Long/Short.
Bull/Bear share:
Long: Bull% ≥ 50–70, Bear% ≤ 100.
Short: Bull% ≤ 60 (avoid shorting into strong support), Bear% ≥ 0–70 as you prefer.
Age: ≥ 20–30 bars.
Volume: pick a min that filters noise for your symbol/timeframe.
Risk: SL 4–6%, trailing trigger 1–2%, distance 1–2% (crypto example).
Set slippage/fees in Strategy Properties.
Notes, limitations & best practices
Data differences: The LTF split uses request.security_lower_tf. If the exchange/data feed has sparse LTF data, the fallback kicks in (it’s deliberate to avoid NaNs but is a heuristic).
Real-time vs backtest: The current bar can update until close; results on historical bars use closed data. Use “Bar Replay” to understand intrabar effects.
No pyramiding: Only one position at a time. Modify pyramiding in the header if you need scaling.
Assets: For spot/crypto, TradingView “volume” is exchange volume; in some markets it may be tick volume—interpret filters accordingly.
Risk disclosure: Past performance ≠ future results. Use appropriate position sizing and risk controls; this is not financial advice.
Credits
Visual FVG concept and original implementation: BigBeluga.
This derivative strategy adds entry/exit logic, volume/age/share filters, robust LTF handling, and risk management while preserving the original spirit.
License remains CC BY-NC-SA 4.0 (non-commercial, attribution required, share-alike).
Volume Delta Volume Signals by Claudio [hapharmonic]// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © hapharmonic
//@version=6
FV = format.volume
FP = format.percent
indicator('Volume Delta Volume Signals by Claudio ', format = FV, max_bars_back = 4999, max_labels_count = 500)
//------------------------------------------
// Settings |
//------------------------------------------
bool usecandle = input.bool(true, title = 'Volume on Candles',display=display.none)
color C_Up = input.color(#12cef8, title = 'Volume Buy', inline = ' ', group = 'Style')
color C_Down = input.color(#fe3f00, title = 'Volume Sell', inline = ' ', group = 'Style')
// ✅ Nueva entrada para colores de señales
color buySignalColor = input.color(color.new(color.green, 0), "Buy Signal Color", group = "Signals")
color sellSignalColor = input.color(color.new(color.red, 0), "Sell Signal Color", group = "Signals")
string P_ = input.string(position.top_right,"Position",options = ,
group = "Style",display=display.none)
string sL = input.string(size.small , 'Size Label', options = , group = 'Style',display=display.none)
string sT = input.string(size.normal, 'Size Table', options = , group = 'Style',display=display.none)
bool Label = input.bool(false, inline = 'l')
History = input.bool(true, inline = 'l')
// Inputs for EMA lengths and volume confirmation
bool MAV = input.bool(true, title = 'EMA', group = 'EMA')
string volumeOption = input.string('Use Volume Confirmation', title = 'Volume Option', options = , group = 'EMA',display=display.none)
bool useVolumeConfirmation = volumeOption == 'none' ? false : true
int emaFastLength = input(12, title = 'Fast EMA Length', group = 'EMA',display=display.none)
int emaSlowLength = input(26, title = 'Slow EMA Length', group = 'EMA',display=display.none)
int volumeConfirmationLength = input(6, title = 'Volume Confirmation Length', group = 'EMA',display=display.none)
string alert_freq = input.string(alert.freq_once_per_bar_close, title="Alert Frequency",
options= ,group = "EMA",
tooltip="If you choose once_per_bar, you will receive immediate notifications (but this may cause interference or indicator repainting).
\n However, if you choose once_per_bar_close, it will wait for the candle to confirm the signal before notifying.",display=display.none)
//------------------------------------------
// UDT_identifier |
//------------------------------------------
type OHLCV
float O = open
float H = high
float L = low
float C = close
float V = volume
type VolumeData
float buyVol
float sellVol
float pcBuy
float pcSell
bool isBuyGreater
float higherVol
float lowerVol
color higherCol
color lowerCol
//------------------------------------------
// Calculate volumes and percentages |
//------------------------------------------
calcVolumes(OHLCV ohlcv) =>
var VolumeData data = VolumeData.new()
data.buyVol := ohlcv.V * (ohlcv.C - ohlcv.L) / (ohlcv.H - ohlcv.L)
data.sellVol := ohlcv.V - data.buyVol
data.pcBuy := data.buyVol / ohlcv.V * 100
data.pcSell := 100 - data.pcBuy
data.isBuyGreater := data.buyVol > data.sellVol
data.higherVol := data.isBuyGreater ? data.buyVol : data.sellVol
data.lowerVol := data.isBuyGreater ? data.sellVol : data.buyVol
data.higherCol := data.isBuyGreater ? C_Up : C_Down
data.lowerCol := data.isBuyGreater ? C_Down : C_Up
data
//------------------------------------------
// Get volume data |
//------------------------------------------
ohlcv = OHLCV.new()
volData = calcVolumes(ohlcv)
// Plot volumes and create labels
plot(ohlcv.V, color=color.new(volData.higherCol, 90), style=plot.style_columns, title='Total',display = display.all - display.status_line)
plot(ohlcv.V, color=volData.higherCol, style=plot.style_stepline_diamond, title='Total2', linewidth = 2,display = display.pane)
plot(volData.higherVol, color=volData.higherCol, style=plot.style_columns, title='Higher Volume', display = display.all - display.status_line)
plot(volData.lowerVol , color=volData.lowerCol , style=plot.style_columns, title='Lower Volume',display = display.all - display.status_line)
S(D,F)=>str.tostring(D,F)
volStr = S(math.sign(ta.change(ohlcv.C)) * ohlcv.V, FV)
buyVolStr = S(volData.buyVol , FV )
sellVolStr = S(volData.sellVol , FV )
// ✅ MODIFICACIÓN: Porcentaje sin decimales
buyPercentStr = str.tostring(math.round(volData.pcBuy)) + " %"
sellPercentStr = str.tostring(math.round(volData.pcSell)) + " %"
totalbuyPercentC_ = volData.buyVol / (volData.buyVol + volData.sellVol) * 100
sup = not na(ohlcv.V)
if sup
TC = text.align_center
CW = color.white
var table tb = table.new(P_, 6, 6, bgcolor = na, frame_width = 2, frame_color = chart.fg_color, border_width = 1, border_color = CW)
tb.cell(0, 0, text = 'Volume Candles', text_color = #FFBF00, bgcolor = #0E2841, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 0, 5, 0)
tb.cell(0, 1, text = 'Current Volume', text_color = CW, bgcolor = #0B3040, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 1, 1, 1)
tb.cell(0, 2, text = 'Buy', text_color = #000000, bgcolor = #92D050, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 2, text = 'Sell', text_color = #000000, bgcolor = #FF0000, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 3, text = buyVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 3, text = sellVolStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(0, 5, text = 'Net: ' + volStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.merge_cells(0, 5, 1, 5)
tb.cell(0, 4, text = buyPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
tb.cell(1, 4, text = sellPercentStr, text_color = CW, bgcolor = #074F69, text_halign = TC, text_valign = TC, text_size = sT)
cellCount = 20
filledCells = 0
for r = 5 to 1 by 1
for c = 2 to 5 by 1
if filledCells < cellCount * (totalbuyPercentC_ / 100)
tb.cell(c, r, text = '', bgcolor = C_Up)
else
tb.cell(c, r, text = '', bgcolor = C_Down)
filledCells := filledCells + 1
filledCells
if Label
sp = ' '
l = label.new(bar_index, ohlcv.V,
text=str.format('Net: {0}\nBuy: {1} ({2})\nSell: {3} ({4})\n{5}/\\\n {5}l\n {5}l',
volStr, buyVolStr, buyPercentStr, sellVolStr, sellPercentStr, sp),
style=label.style_none, textcolor=volData.higherCol, size=sL, textalign=text.align_left)
if not History
(l ).delete()
//------------------------------------------
// Draw volume levels on the candlesticks |
//------------------------------------------
float base = na,float value = na
bool uc = usecandle and sup
if volData.isBuyGreater
base := math.min(ohlcv.O, ohlcv.C)
value := base + math.abs(ohlcv.O - ohlcv.C) * (volData.pcBuy / 100)
else
base := math.max(ohlcv.O, ohlcv.C)
value := base - math.abs(ohlcv.O - ohlcv.C) * (volData.pcSell / 100)
barcolor(sup ? color.new(na, na) : ohlcv.C < ohlcv.O ? color.red : color.green,display = usecandle? display.all:display.none)
UseC = uc ? volData.higherCol:color.new(na, na)
plotcandle(uc?base:na, uc?base:na, uc?value:na, uc?value:na,
title='Body', color=UseC, bordercolor=na, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
plotcandle(uc?ohlcv.O:na, uc?ohlcv.H:na, uc?ohlcv.L:na, uc?ohlcv.C:na,
title='Fill', color=color.new(UseC,80), bordercolor=UseC, wickcolor=UseC,
display = usecandle ? display.all - display.status_line : display.none, force_overlay=true,editable=false)
//------------------------------------------------------------
// Plot the EMA and filter out the noise with volume control. |
//------------------------------------------------------------
float emaFast = ta.ema(ohlcv.C, emaFastLength)
float emaSlow = ta.ema(ohlcv.C, emaSlowLength)
bool signal = emaFast > emaSlow
color c_signal = signal ? C_Up : C_Down
float volumeMA = ta.sma(ohlcv.V, volumeConfirmationLength)
bool crossover = ta.crossover(emaFast, emaSlow)
bool crossunder = ta.crossunder(emaFast, emaSlow)
isVolumeConfirmed(source, length, ma) =>
math.sum(source > ma ? source : 0, length) >= math.sum(source < ma ? source : 0, length)
bool ISV = isVolumeConfirmed(ohlcv.V, volumeConfirmationLength, volumeMA)
bool crossoverConfirmed = crossover and (not useVolumeConfirmation or ISV)
bool crossunderConfirmed = crossunder and (not useVolumeConfirmation or ISV)
PF = MAV ? emaFast : na
PS = MAV ? emaSlow : na
p1 = plot(PF, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PF, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
p2 = plot(PS, color = c_signal, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 80), linewidth = 10, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 90), linewidth = 20, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 95), linewidth = 30, editable = false, force_overlay = true, display = display.pane)
plot(PS, color = color.new(c_signal, 98), linewidth = 45, editable = false, force_overlay = true, display = display.pane)
fill(p1, p2, top_value=crossover ? emaFast : emaSlow,
bottom_value =crossover ? emaSlow : emaFast,
top_color =color.new(c_signal, 80),
bottom_color =color.new(c_signal, 95)
)
// ✅ Usar colores configurables para señales
plotshape(crossoverConfirmed and MAV, style=shape.triangleup , location=location.belowbar, color=buySignalColor , size=size.small, force_overlay=true,display =display.pane)
plotshape(crossunderConfirmed and MAV, style=shape.triangledown, location=location.abovebar, color=sellSignalColor, size=size.small, force_overlay=true,display =display.pane)
string msg = '---------\n'+"Buy volume ="+buyVolStr+"\nBuy Percent = "+buyPercentStr+"\nSell volume = "+sellVolStr+"\nSell Percent = "+sellPercentStr+"\nNet = "+volStr+'\n---------'
if crossoverConfirmed
alert("Price (" + str.tostring(close) + ") Crossed over MA\n" + msg, alert_freq)
if crossunderConfirmed
alert("Price (" + str.tostring(close) + ") Crossed under MA\n" + msg, alert_freq)
Opening Range BoxThis indicator, called the "Opening Range Box," is a visual tool that helps you track the start of key trading sessions like London and New York (or whatever session you set).
It does three main things:
Finds the Daily 'First Move': It automatically calculates the High and Low reached during the first 30 minutes (or whatever time you set) of each defined session.
Draws a Box: It immediately draws a colored, transparent box on your chart from the moment the session starts. The top of the box is the OR High, and the bottom is the OR Low. This box acts as a clear reference for the session's initial boundaries.
Extends the Levels: After the initial 30 minutes are over, the box stops growing vertically (it locks in the OR High/Low) but continues to stretch out horizontally for the rest of the trading session. This allows you to easily see how the price reacts to the opening levels throughout the day.
In short: It visually highlights the most important price levels established at the very beginning of the major market sessions.
Opening Range BoxThis indicator, called the "Opening Range Box," is a visual tool that helps you track the start of key trading sessions like London and New York.
It does three main things:
Finds the Daily 'First Move': It automatically calculates the High and Low reached during the first 30 minutes (or whatever time you set) of each defined session.
Draws a Box: It immediately draws a colored, transparent box on your chart from the moment the session starts. This box acts as a clear reference for the session's initial boundaries.
Extends the Levels: After the initial 30 minutes are over, the box stops growing vertically (it locks in the OR High/Low) but continues to stretch out horizontally for the rest of the trading session. This allows you to easily see how the price reacts to the opening levels throughout the day.
In short: It visually highlights the most important price levels established at the very beginning of the major market sessions.
Multi Indicator Screener# 📊 Multi-Indicator Screener | BB + KC Squeeze + RSI + MACD + ADX
### 🔹 Institutional-Grade Multi-Symbol Scanner with Breakout Alerts
---
## 📌 Overview
The **Multi-Indicator Screener** is an advanced dashboard that monitors **10 symbols simultaneously** with **multi-indicator confluence**:
- 🔹 **Bollinger Bands + Keltner Channel (Squeeze Logic)**
- 🔹 **RSI + MACD Confirmation**
- 🔹 **ADX Trend Strength**
- 🔹 **ATR-based Trailing Stops**
- 🔹 **Volume-Confirmed Breakouts**
Designed for **professional traders**, this screener highlights **high-probability setups** across multiple assets in real time.
---
## ✨ Key Features
### 🔹 Bollinger Band Suite
- ✅ Detects **directional bias** (Bullish / Bearish / Neutral).
- ✅ Marks **Breakouts (Up/Down)** with optional **volume confirmation**.
- ✅ LazyBear-style **Squeeze Detection**:
- 🔒 Squeeze ON → Low volatility, contraction phase.
- 🚀 Squeeze OFF → Breakout potential.
- Neutral → No clear squeeze.
### 🔹 RSI + MACD Confluence
- ✅ RSI confirmation above user-defined threshold (default 55).
- ✅ MACD crossover confirmation.
- ✅ RSI value color-coded in table:
- 🔴 Oversold (<30)
- 🟢 Strong bullish (>60)
- 🟢 Lime (>75 = very strong)
- 🟠 Neutral zone
### 🔹 ADX Trend Strength
- ✅ Displays **ADX value**, plus **+DI / -DI**.
- ✅ ADX > 25 → Highlighted as strong trend.
### 🔹 ATR Trailing Stop Loss
- ✅ Auto-calculated **buy-side trailing stop** & **sell-side trailing stop**.
- ✅ Adjustable via multiplier input.
### 🔹 Multi-Symbol Screener Table
- ✅ Preloaded with **Top 10 Nifty 50 symbols** (customizable).
- ✅ Dashboard columns include:
- Symbol
- BB Direction
- Breakout
- Squeeze Status
- Higher-TF BB Confirmation
- RSI + MACD Signals
- RSI Value
- ADX, +DI, -DI
- Trailing SL (Buy/Sell)
- Volume Confirmation
---
## 🔔 Alerts
Each symbol has **independent breakout alerts**:
- 📢 `Volume-Confirmed BB Breakout Detected`
Alerts fire when a **breakout above/below Bollinger Bands** is confirmed with **above-average volume**.
---
## 📖 How to Use
1. **Select Symbols**
- By default, loads top Nifty 50 stocks.
- Replace with your preferred tickers (`NSE:RELIANCE`, `NASDAQ:AAPL`, `BINANCE:BTCUSDT`, etc.).
2. **Enable Presets**
- **Scalping Mode** → BB Length = 10, Multiplier = 1.5 (more sensitive).
- **Swing Mode** → BB Length = 30, Multiplier = 2.5 (smoother).
3. **Monitor Table**
- Look for **✔️ confirmations** across BB, RSI, MACD, ADX, and Volume.
- Strong setups = multiple confirmations aligning.
4. **Set Alerts**
- Add alerts for your desired symbols to never miss a breakout.
---
## 🎯 Best For
- ✅ Scalpers & Swing Traders
- ✅ Multi-asset monitoring (stocks, forex, crypto)
- ✅ Traders using **volatility breakout + momentum confirmation**
- ✅ Institutional-style dashboard users
---
## ⚠️ Disclaimer
This script is for **educational purposes only**.
It is **not financial advice**. Please backtest before trading.
---
Three 20MA (automatically set for each time frame)Three 20MAs (automatically set for each time frame. By using only the 20SMA for each time frame, you can unify how you view the chart and check the consistency of direction between each time frame.
20MA+
default_ma2 = tf == "1" ? 100 :
tf == "5" ? 120 :
tf == "15" ? 80 :
tf == "30" ? 160 :
tf == "60" ? 80 :
tf == "240" ? 120 :
tf == "D" ? 100 :
tf == "W" ? 90 :
tf == "M" ? 60 :
80
default_ma3 = tf == "1" ? 300 :
tf == "5" ? 240 :
tf == "15" ? 320 :
tf == "30" ? 960 :
tf == "60" ? 480 :
tf == "240" ? 600 :
tf == "D" ? 400 :
tf == "W" ? 400 :
tf == "M" ? 240 :
320
Smart Money Support/Resistance — LiteSmart Money Support/Resistance — Lite
Overview & Methodology
This indicator identifies support and resistance as zones derived from concentrated buying and selling pressure, rather than relying solely on traditional swing highs/lows. Its design focuses on transparency: how data is sourced, how zones are computed, and how the on‑chart display should be interpreted.
Lower‑Timeframe (LTF) Data
The script requests Up Volume, Down Volume, and Volume Delta from a lower timeframe to expose intrabar order‑flow structure that the chart’s native timeframe cannot show. In practical terms, this lets you see where buyers or sellers briefly dominated inside the body of a higher‑timeframe bar.
bool use_custom_tf_input = input.bool(true, title="Use custom lower timeframe", tooltip="Override the automatically chosen lower timeframe for volume calculations.", group=grpVolume)
string custom_tf_input = input. Timeframe("1", title="Lower timeframe", tooltip="Lower timeframe used for up/down volume calculations (default 5 seconds).", group=grpVolume)
import TradingView/ta/10 as tvta
resolve_lower_tf(useCustom, customTF) =>
useCustom ? customTF :
timeframe.isseconds ? "1S" :
timeframe.isintraday ? "1" :
timeframe.isdaily ? "5" : "60"
get_up_down_volume(lowerTf) =>
= tvta.requestUpAndDownVolume(lowerTf)
var float upVolume = na
var float downVolume = na
var float deltaVolume = na
string lower_tf = resolve_lower_tf(use_custom_tf_input, custom_tf_input)
= get_up_down_volume(lower_tf)
upVolume := u_tmp
downVolume := d_tmp
deltaVolume := dl_tmp
• Data source: TradingView’s ta.requestUpAndDownVolume(lowerTf) via the official TA library.
• Plan capabilities: higher‑tier subscriptions unlock seconds‑based charts and allow more historical bars per chart. This expands both the temporal depth of LTF data and the precision of short‑horizon analysis, while base tiers provide minute‑level data suitable for day/short‑swing studies.
• Coverage clarity: a small on‑chart Coverage Panel reports the active lower timeframe, the number of bars covered, and the latest computed support/resistance ranges so you always know the bounds of valid LTF input.
Core Method
1) Data acquisition (LTF)
The script retrieves three series from the chosen lower timeframe:
– Up Volume (buyers)
– Down Volume (sellers)
– Delta (Up – Down)
2) Rolling window & extrema
Over a user‑defined lookback (Global Volume Period), the algorithm builds rolling arrays of completed bars and scans for extrema:
– Buyers_max / Buyers_min from Up Volume
– Sellers_max / Sellers_min from Down Volume
Only completed bars are considered; the current bar is excluded for stability.
3) Price mapping
The extrema are mapped back to their source candles to obtain price bounds:
– For “maximum” roles the algorithm uses the relevant candle highs.
– For “minimum” roles it uses the relevant candle lows.
These pairs define candidate resistance (max‑based) and support (min‑based) zones or vice versa.
4) Zone construction & minimum width
To ensure practicality on all symbols, zones enforce a minimum vertical thickness of two ticks. This prevents visually invisible or overly thin ranges on instruments with tight ticks.
5) Vertical role resolution
When both max‑ and min‑based zones exist, the script compares their midpoints. If, due to local price structure, the min‑based zone sits above the max‑based zone, display roles are swapped so the higher zone is labeled Resistance and the lower zone Support. Colors/widths are updated accordingly to keep the visual legend consistent.
6) Rendering & panel
Two horizontal lines and a filled box represent each active zone. The Coverage Panel (bottom‑right by default) prints:
– Lower‑timeframe in use
– Number of bars covered by LTF data
– Current Support and Resistance ranges
If the two zones overlap, an additional “Range Market” note is shown.
Key Inputs
• Global Volume Period: shared lookback window for the extrema search.
• Lower timeframe: user‑selectable override of the automatically resolved lower timeframe.
• Visualization toggles: independent show/hide controls and colors for maximum (resistance) and minimum (support) zones.
• Coverage Panel: enable/disable the single‑cell table and its readout.
Operational Notes
• The algorithm aligns all lookups to completed bars (no peeking). Price references are shifted appropriately to avoid using the still‑forming bar in calculations.
• Second‑based lower timeframes improve granularity for scalping and very short‑term entries. Minute‑based lower timeframes provide broader coverage for intraday and short‑swing contexts.
• Use the Coverage Panel to confirm the true extent of available LTF history on your symbol/plan before drawing conclusions from very deep lookbacks.
Visual Walkthrough
A step‑by‑step image sequence accompanies this description. Each figure demonstrates how the indicator reads LTF volume, locates extrema, builds price‑mapped zones, and updates labels/colors when vertical order requires it.
Chart Interpretation
This chart illustrates two distinct perspectives of the Smart Money Support/Resistance — Lite indicator, each derived from different lookback horizons and lower-timeframe (LTF) resolutions.
1- Short-term view (43 bars, 10-second LTF)
Using the most recent 43 completed bars with 10-second intrabar data, the algorithm detects that both maximum and minimum volume extrema fall within a narrow range. The result is a clearly identified range market: resistance between 178.15–184.55 and support between 175.02–179.38.
The Coverage Panel (bottom-right) confirms the scope of valid input: the lower timeframe used, number of bars covered, and the resulting zones. This short-term scan highlights how the indicator adapts to limited data depth, flagging sideways structure where neither side dominates.
2 - Long-term view (120 bars, 30-second LTF)
Over a wider 120-bar lookback with higher-granularity 30-second data, broader supply and demand zones emerge.
– The long-term resistance zone captures the concentration of buyers and sellers at the upper boundary of recent price history.
– The long-term support zone anchors to the opposite side of the distribution, derived from maxima and minima of both buying and selling pressure.
These zones reflect deeper structural levels where market participants previously committed significant volume.
Combined Perspective
By aligning the short-term and long-term outputs, the chart shows how the indicator distinguishes immediate consolidation (range market) from more durable support and resistance levels derived from extended history. This dual resolution approach makes clear that support and resistance are not static lines but dynamic zones, dependent on both timeframe depth and the resolution of intrabar volume data.
RSI(7) + MACD ZoneTitle: RSI(7) + MACD Zone Combo
Description:
This indicator combines RSI (7) and MACD (12,26,9) into a single panel with a unified scale for easier analysis.
RSI (7) is plotted in white and automatically turns red when the market reaches overbought (>70) or oversold (<30) conditions.
MACD is normalized to align with the RSI scale (0–100).
A value of 50 represents MACD = 0.
Above 50 (teal) indicates positive momentum.
Below 50 (red) indicates negative momentum.
This combination allows traders to quickly identify when short-term RSI conditions align with overall momentum shifts from MACD.
How to use:
Look for potential buy opportunities when RSI is oversold (<30) and MACD is above 50 (positive momentum).
Look for potential sell opportunities when RSI is overbought (>70) and MACD is below 50 (negative momentum).
Use in conjunction with price action and risk management — not as a standalone signal.
Market Pressure Oscillator█ OVERVIEW
The Market Pressure Oscillator is an advanced technical indicator for TradingView, enabling traders to identify potential trend reversals and momentum shifts through candle-based pressure analysis and divergence detection. It combines a smoothed oscillator with moving average signals, overbought/oversold levels, and divergence visualization, enhanced by customizable gradients, dynamic band colors, and alerts for quick decision-making.
█ CONCEPT
The indicator measures buying or selling pressure based on candle body size (open-to-close difference) and direction, with optional smoothing for clarity and divergence detection between price action and the oscillator. It relies solely on candle data, offering insights into trend strength, overbought/oversold conditions, and potential reversals with a customizable visual presentation.
█ WHY USE IT?
- Divergence Detection: Identifies bullish and bearish divergences to reinforce signals, especially near overbought/oversold zones.
- Candle Pressure Analysis: Measures pressure based on candle body size, normalized to a ±100 scale.
- Signal Generation: Provides buy/sell signals via overbought/oversold crossovers, zero-line crossovers, moving average zero-line crossovers, and dynamic band color changes.
- Visual Clarity: Uses dynamic colors, gradients, and fill layers for intuitive chart analysis.
Flexibility: Extensive settings allow customization to individual trading preferences.
█ HOW IT WORKS?
- Candle Pressure Calculation: Computes candle body size as math.abs(close - open), normalized against the average body size over a lookback period (avgBody = ta.sma(body, len)). - Candle direction (bullish: +1, bearish: -1, neutral: 0) is multiplied by body weight to derive pressure.
- Cumulative Pressure: Sums pressure values over the lookback period (Lookback Length) and normalizes to ±100 relative to the maximum possible value.
- Smoothing: Optionally applies EMA (Smoothing Length) to normalized pressure.
- Moving Average: Calculates SMA (Moving Average Length) for trend confirmation (Moving Average (SMA)).
- Divergence Detection: Identifies bullish/bearish divergences by comparing price and oscillator pivot highs/lows within a specified range (Pivot Length). Divergence signals appear with a delay equal to the Pivot Length.
- Signals: Generates signals for:
Crossing oversold upward (buy) or overbought downward (sell).
Crossing the zero line by the oscillator or moving average (buy/sell).
Bullish/bearish divergences, marked with labels, enhancing signals, especially near overbought/oversold zones.
Dynamic band color changes when the moving average crosses MA overbought/oversold thresholds (green for oversold, red for overbought).
- Visualization: Plots the oscillator and moving average with dynamic colors, gradient fills, transparent bands, and labels, with customizable overbought/oversold levels.
Alerts: Built-in alerts for divergences, overbought/oversold crossovers, and zero-line crossovers (oscillator and moving average).
█ SETTINGS AND CUSTOMIZATION
- Lookback Length: Period for aggregating candle pressure (default: 14).
- Smoothing Length (EMA): EMA length for smoothing the oscillator (default: 1). Higher values smooth the signal but may reduce signal frequency; adjust overbought/oversold levels accordingly.
- Moving Average Length (SMA): SMA length for the moving average (default: 14, minval=1). Higher values make SMA a trend indicator, requiring adjusted MA overbought/oversold levels.
- Pivot Length (Left/Right): Candles for detecting pivot highs/lows in divergence calculations (default: 2, minval=1). Higher values reduce noise but add delay equal to the set value.
- Enable Divergence Detection: Enables divergence detection (default: true).
- Overbought/Oversold Levels: Thresholds for the oscillator (default: 30/-30) and moving average (default: 10/-10). For the moving average, no arrows appear; bands change color from gray to green (oversold) or red (overbought), reinforcing entry signals.
- Signal Type: Select signals to display: "None", "Overbought/Oversold", "Zero Line", "MA Zero Line", "All" (default: "Overbought/Oversold").
- Colors and Gradients: Customize colors for bullish/bearish oscillator, moving average, zero line, overbought/oversold levels, and divergence labels.
- Transparency: Adjust gradient fill transparency (default: 70, minval=0, maxval=100) and band/label transparency (default: 40, minval=0, maxval=100) for consistent visuals.
- Visualizations: Enable/disable moving average, gradients for zero/overbought/oversold levels, and gradient fills.
█ USAGE EXAMPLES
- Momentum Analysis: Observe the MPO Oscillator above 0 for bullish momentum or below 0 for bearish momentum. The SMA, being smoother, reacts slower and can confirm trend direction as a noise filter.
- Reversal Signals: Look for buy triangles when the oscillator crosses oversold upward, especially when the SMA is below the MA oversold threshold and the band turns green. Similarly, seek sell triangles when crossing overbought downward, with the SMA above the MA overbought threshold and the band turning red.
- Using Divergences: Treat bullish (green labels) and bearish (red labels) divergences as reinforcement for other signals, especially near overbought/oversold zones, indicating stronger potential trend reversals.
- Customization: Adjust lookback length, smoothing, and moving average length to specific instruments and timeframes to minimize false signals.
█ USER NOTES
Combine the indicator with tools like Fibonacci levels or pivot points to enhance accuracy.
Test different settings for lookback length, smoothing, and moving average length on your chosen instrument and timeframe to find optimal values.
Key Levels: Open & Midday🔹 Opening Candle (9:30 AM New York Time)
Plots the high and low of the first 5-minute candle after the market opens.
🔹 12:30 PM Candle (3 hours after open)
Plots the high and low of the candle formed exactly 3 hours after the market opens.
These levels are useful for:
Identifying support/resistance zones.
Creating breakout or reversal strategies.
Tracking intraday momentum shifts.
📌 Important Notes:
Designed for 5-minute charts.
Make sure your chart is set to New York time (exchange time) for accurate levels.
Happy Trading!
AVGO Advanced Day Trading Strategy📈 Overview
The AVGO Advanced Day Trading Strategy is a comprehensive, multi-timeframe trading system designed for active day traders seeking consistent performance with robust risk management. Originally optimized for AVGO (Broadcom), this strategy adapts well to other liquid stocks and can be customized for various trading styles.
🎯 Key Features
Multiple Entry Methods
EMA Crossover: Classic trend-following signals using fast (9) and medium (16) EMAs
MACD + RSI Confluence: Momentum-based entries combining MACD crossovers with RSI positioning
Price Momentum: Consecutive price action patterns with EMA and RSI confirmation
Hybrid System: Advanced multi-trigger approach combining all methodologies
Advanced Technical Arsenal
When enabled, the strategy analyzes 8+ additional indicators for confluence:
Volume Price Trend (VPT): Measures volume-weighted price momentum
On-Balance Volume (OBV): Tracks cumulative volume flow
Accumulation/Distribution Line: Identifies institutional money flow
Williams %R: Momentum oscillator for entry timing
Rate of Change Suite: Multi-timeframe momentum analysis (5, 14, 18 periods)
Commodity Channel Index (CCI): Cyclical turning points
Average Directional Index (ADX): Trend strength measurement
Parabolic SAR: Dynamic support/resistance levels
🛡️ Risk Management System
Position Sizing
Risk-based position sizing (default 1% per trade)
Maximum position limits (default 25% of equity)
Daily loss limits with automatic position closure
Multiple Profit Targets
Target 1: 1.5% gain (50% position exit)
Target 2: 2.5% gain (30% position exit)
Target 3: 3.6% gain (20% position exit)
Configurable exit percentages and target levels
Stop Loss Protection
ATR-based or percentage-based stop losses
Optional trailing stops
Dynamic stop adjustment based on market volatility
📊 Technical Specifications
Primary Indicators
EMAs: 9 (Fast), 16 (Medium), 50 (Long)
VWAP: Volume-weighted average price filter
RSI: 6-period momentum oscillator
MACD: 8/13/5 configuration for faster signals
Volume Confirmation
Volume filter requiring 1.6x average volume
19-period volume moving average baseline
Optional volume confirmation bypass
Market Structure Analysis
Bollinger Bands (20-period, 2.0 multiplier)
Squeeze detection for breakout opportunities
Fractal and pivot point analysis
⏰ Trading Hours & Filters
Time Management
Configurable trading hours (default: 9:30 AM - 3:30 PM EST)
Weekend and holiday filtering
Session-based trade management
Market Condition Filters
Trend alignment requirements
VWAP positioning filters
Volatility-based entry conditions
📱 Visual Features
Information Dashboard
Real-time display of:
Current entry method and signals
Bullish/bearish signal counts
RSI and MACD status
Trend direction and strength
Position status and P&L
Volume and time filter status
Chart Visualization
EMA plots with customizable colors
Entry signal markers
Target and stop level lines
Background color coding for trends
Optional Bollinger Bands and SAR display
🔔 Alert System
Entry Alerts
Customizable alerts for long and short entries
Method-specific alert messages
Signal confluence notifications
Advanced Alerts
Strong confluence threshold alerts
Custom alert messages with signal counts
Risk management alerts
⚙️ Customization Options
Strategy Parameters
Enable/disable long or short trades
Adjustable risk parameters
Multiple entry method selection
Advanced indicator on/off toggle
Visual Customization
Color schemes for all indicators
Dashboard position and size options
Show/hide various chart elements
Background color preferences
📋 Default Settings
Initial Capital: $100,000
Commission: 0.1%
Default Position Size: 10% of equity
Risk Per Trade: 1.0%
RSI Length: 6 periods
MACD: 8/13/5 configuration
Stop Loss: 1.1% or ATR-based
🎯 Best Use Cases
Day Trading: Designed for intraday opportunities
Swing Trading: Adaptable for longer-term positions
Momentum Trading: Excellent for trending markets
Risk-Conscious Trading: Built-in risk management protocols
⚠️ Important Notes
Paper Trading Recommended: Test thoroughly before live trading
Market Conditions: Performance varies with market volatility
Customization: Adjust parameters based on your risk tolerance
Educational Purpose: Use as a learning tool and customize for your needs
🏆 Performance Features
Detailed performance metrics
Trade-by-trade analysis capability
Customizable risk/reward ratios
Comprehensive backtesting support
This strategy is for educational purposes. Past performance does not guarantee future results. Always practice proper risk management and consider your financial situation before trading.
BioSwarm Imprinter™BioSwarm Imprinter™ — Agent-Based Consensus for Traders
What it is
BioSwarm Imprinter™ is a non-repainting, agent-based sentiment oscillator. It fuses many short-to-medium lookback “opinions” into one 0–100 consensus line that is easy to read at a glance (50 = neutral, >55 bullish bias, <45 bearish bias). The engine borrows from swarm intelligence: many simple voters (agents) adapt their influence over time based on how well they’ve been predicting price, so the crowd gets smarter as conditions change.
Use it to:
• Detect emerging trends sooner without overreacting to noise.
• Filter mean-reversion vs continuation opportunities.
• Gate entries with a confidence score that reflects both strength and persistence of the move.
• Combine with your execution tools (VWAP/ORB/levels) as a state filter rather than a trade signal by itself.
⸻
Why it’s different
• Swarm learning: Each agent improves or decays its “fitness” depending on whether its vote matched the next bar’s direction. High-fitness agents matter more; weak agents fade.
• Multi-horizon by design: The crowd is composed of fixed, simple lookbacks spread from lenMin to lenMax. You get a blended, robust view instead of a single fragile parameter.
• Two complementary lenses: Each agent evaluates RSI-style balance (via Wilder’s RMA) and momentum (EMA deviation). You decide the weight of each.
• No repaint, no MTF pitfalls: Everything runs on the chart’s timeframe with bar-close confirmation; no request.security() or forward references.
• Actionable UI: A clean consensus line, optional regime background, confidence heat, and triangle markers when thresholds are crossed.
⸻
What you see on the chart
• Consensus line (0–100): Smoothed to your preference; color/area makes bull/bear zones obvious.
• Regime coloring (optional): Light green in bull zone, light red in bear zone; neutral otherwise.
• Confidence heat: A small gauge/number (0–100) that combines distance from neutral and recent persistence.
• Markers (optional): Triangles when consensus crosses up through your bull threshold (e.g., 55) or down through your bear threshold (e.g., 45).
• Info panel (optional): Consensus value, regime, confidence, number of agents, and basic diagnostics.
⸻
How it works (under the hood)
1. Horizon bins: The range is divided into numBins. Each bin has a fixed, simple integer length (crucial for Pine’s safety rules).
2. Per-bin features (computed every bar):
• RSI-style balance using Wilder’s RMA (not ta.rsi()), then mapped to −1…+1.
• Momentum as (close − EMA(L)) / EMA(L) (dimensionless drift).
3. Agent vote: For its assigned bin, an agent forms a weighted score: score = wRSI*RSI_like + wMOM*Momentum. A small dead-band near zero suppresses chop; votes are +1/−1/0.
4. Fitness update (bar close): If the agent’s previous vote agreed with the next bar’s direction, multiply its fitness by learnGain; otherwise by learnPain. Fitness is clamped so it never explodes or dies.
5. Consensus: Weighted average of all votes using fitness as weights → map to 0–100 and smooth with EMA.
Why it doesn’t repaint:
• No future references, no MTF resampling, fitness updates only on confirmed bars.
• All TA primitives (RMA/EMA/deltas) are computed every bar unconditionally.
⸻
Signals & confidence
• Bullish bias: consensus ≥ bullThr (e.g., 55).
• Bearish bias: consensus ≤ bearThr (e.g., 45).
• Confidence (0–100):
• Distance score: how far consensus is from 50.
• Momentum score: how strong the recent change is versus its recent average.
• Combined into a single gate; start filtering entries at ≥60 for higher quality.
Tip: For range sessions, raise thresholds (60/40) and increase smoothing; for momentum sessions, lower smoothing and keep thresholds at 55/45.
⸻
Inputs you’ll actually tune
• Agents & horizons:
• N_agents (e.g., 64–128)
• lenMin / lenMax (e.g., 6–30 intraday, 10–60 swing)
• numBins (e.g., 12–24)
• Weights & smoothing:
• wRSI vs wMOM (e.g., 0.7/0.3 for FX & indices; 0.6/0.4 for crypto)
• deadBand (0.03–0.08)
• consSmooth (3–8)
• Thresholds & hygiene:
• bullThr/bearThr (55/45 default)
• cooldownBars to avoid signal spam
⸻
Playbooks (ready-to-use)
1) Breakout / Trend continuation
• Timeframe: 15m–1h for day/swing.
• Filter: Take longs only when consensus > 55 and confidence ≥ 60.
• Execution: Use your ORB/VWAP/pullback trigger for entry. Trail with swing lows or 1.5×ATR. Exit on a close back under 50 or when a bearish signal prints.
2) Mean reversion (fade)
• When: Sideways days or low-volatility clusters.
• Setup: Increase deadBand and consSmooth.
• Signal: Bearish fades when consensus rolls over below ≈55 but stays above 50; bullish fades when it rolls up above ≈45 but stays below 50.
• Targets: The neutral zone (~50) as the first take-profit.
3) Multi-TF alignment
• Keep BioSwarm on 1H for bias, execute on 5–15m:
• Only take entries in the direction of the 1H consensus.
• Skip counter-bias scalps unless confidence is very low (explicit mean-reversion plan).
⸻
Integrations that work
• DynamoSent Pro+ (macro bias): Only act when macro bias and swarm consensus agree.
• ORB + Session VWAP Pro: Trade London/NY ORB breakouts that retest while consensus >55 (long) or <45 (short).
• Levels/Orderflow: BioSwarm is your “go / no-go”; execution stays with your usual triggers.
⸻
Quick start
1. Drop the indicator on a 1H chart.
2. Start with: N_agents=64, lenMin=6, lenMax=30, numBins=16, deadBand=0.06, consSmooth=5, thresholds 55/45.
3. Trade only when confidence ≥ 60.
4. Add your favorite execution tool (VWAP/levels/OR) for entries & exits.
⸻
Non-repainting & safety notes
• No request.security(); no hidden lookahead.
• Bar-close confirmation for fitness and signals.
• All TA calls are unconditional (no “sometimes called” warnings).
• No series-length inputs to RSI/EMA — we use RMA/EMA formulas that accept fixed simple ints per bin.
⸻
Known limits & tips
• Too many signals? Raise deadBand, increase consSmooth, widen thresholds to 60/40.
• Too few signals? Lower deadBand, reduce consSmooth, narrow thresholds to 53/47.
• Over-fitting risk: Keep learnGain/learnPain modest (e.g., ×1.04 / ×0.96).
• Compute load: Large N_agents × numBins is heavier; scale to your device.
⸻
Example recipes
EURUSD 1H (swing):
lenMin=8, lenMax=34, numBins=16, wRSI=0.7, wMOM=0.3, deadBand=0.06, consSmooth=6, thr=55/45
Buy breakouts when consensus >55 and confidence ≥60; confirm with 5–15m pullback to VWAP or level.
SPY 15m (US session):
lenMin=6, lenMax=24, numBins=12, consSmooth=4, deadBand=0.05
On trend days, stay with longs as long as consensus >55; add on shallow pullbacks.
BTC 1H (24/7):
Increase momentum weight: wRSI=0.6, wMOM=0.4, extend lenMax to ~50. Use dynamic stops (ATR) and partials on strong verticals.
⸻
Final word
BioSwarm is a state engine: it tells you when the market is primed to continue or mean-revert. Pair it with your entries and risk framework to turn that state into trades. If you’d like, I can supply a companion strategy template that consumes the consensus and back-tests the three playbooks (Breakout/Fade/Flip) with standard risk management.
Long Multi-TimeframeTo be used on a 30 minute time frame with Market Bias changing from red to light red or green, 4 or more consecutive red dots on the 15 minute and 30 minute frames inside the market bias, and a red to green Bx-Trender, backed up with good flow (real-time plus green net cumulative flow).
主力资金进出监控器Main Capital Flow Monitor-MEWINSIGHTMain Capital Flow Monitor Indicator
Indicator Description
This indicator utilizes a multi-cycle composite weighting algorithm to accurately capture the movement of main capital in and out of key price zones. The core logic is built upon three dimensions:
Multi-Cycle Pressure/Support System
Using triple timeframes (500-day/250-day/90-day) to calculate:
Long-term resistance lines (VAR1-3): Monitoring historical high resistance zones
Long-term support lines (VAR4-6): Identifying historical low support zones
EMA21 smoothing is applied to eliminate short-term fluctuations
Dynamic Capital Activity Engine
Proprietary VARD volatility algorithm:
VARD = EMA
Automatically amplifies volatility sensitivity by 10x when price approaches the safety margin (VARA×1.35), precisely capturing abnormal main capital movements
Capital Inflow Trigger Mechanism
Capital entry signals require simultaneous fulfillment of:
Price touching 30-day low zone (VARE)
Capital activity breaking recent peaks (VARF)
Weighted capital flow verified through triple EMA:
Capital Entry = EMA / 618
Visualization:
Green histogram: Continuous main capital inflow
Red histogram: Abnormal daily capital movement intensity
Column height intuitively displays capital strength
Application Scenarios:
Consecutive green columns → Main capital accumulation at bottom
Sudden expansion of red columns → Abnormal main capital rush
Continuous fluctuations near zero axis → Main capital washing phase
Core Value:
Provides 1-3 trading days early warning of main capital movements, suitable for:
Medium/long-term investors identifying main capital accumulation zones
Short-term traders capturing abnormal main capital breakouts
Risk control avoiding main capital distribution phases
Parameter Notes: Default parameters are optimized through historical A-share market backtesting. Users can adjust cycle parameters according to different market characteristics (suggest extending cycles by 20% for European/American markets).
Formula Features:
Multi-timeframe weighted synthesis technology
Dynamic sensitivity adjustment mechanism
Main capital activity intensity quantification
Early warning function for capital movements
Suitable Markets:
Stocks, futures, cryptocurrencies and other financial markets with obvious main capital characteristics.
指标名称:主力资金进出监控器
指标描述:
本指标通过多周期复合加权算法,精准捕捉主力资金在关键价格区域的进出动向。核心逻辑基于三大维度构建:
多周期压力/支撑体系
通过500日/250日/90日三重时间框架,分别计算:
长期压力线(VAR1-3):监控历史高位阻力区
长期支撑线(VAR4-6):识别历史低位承接区
采用EMA21平滑处理,消除短期波动干扰
动态资金活跃度引擎
独创VARD波动率算法:
当价格接近安全边际(VARA×1.35)时自动放大波动敏感度10倍,精准捕捉主力异动
资金进场触发机制
资金入场信号需同时满足:
价格触及30日最低区域(VARE)
资金活跃度突破近期峰值(VARF)
通过三重EMA验证的加权资金流:
资金入场 = EMA / 618
可视化呈现:
绿色柱状图:主力资金持续流入
红色柱状图:当日资金异动量级
柱体高度直观显示资金强度
使用场景:
绿色柱体连续出现 → 主力底部吸筹
红色柱体突然放大 → 主力异动抢筹
零轴附近持续波动 → 主力洗盘阶段
核心价值:
提前1-3个交易日预警主力资金动向,适用于:
中长线投资者识别主力建仓区间
短线交易者捕捉主力异动突破
风险控制规避主力出货阶段
参数说明:默认参数经A股历史数据回测优化,用户可根据不同市场特性调整周期参数(建议欧美市场延长周期20%)
RSI/Stochastic with overlays a moving average + Bollinger BandsCompact oscillator panel that lets you switch the base between RSI and Stochastic %K, then overlays a moving average + Bollinger Bands on the oscillator values (not on price) to read momentum strength and squeeze/expansion.
What’s added
Selectable base: RSI ↔ Stochastic %K (plots %D when Stoch is chosen).
MA + BB on oscillator to gauge momentum trend (MA) and volatility (bands).
Adjustable bands 70/50/30 with optional fill, plus optional regular divergence and alerts.
How to read
Bull bias: %K above osc-MA and pushing/closing near Upper BB; confirm with %K > %D.
Bear bias: %K below osc-MA and near Lower BB; confirm with %K < %D.
Squeeze: BB on oscillator tightens → expect momentum breakout.
Overextension: repeated touches of Upper/Lower BB in 70/30 zones → strong trend; watch for %K–%D recross.
Quick settings (start here)
Stoch: 14 / 3 / 3; Bands: 70/50/30.
Osc-MA: EMA 14.
BB on oscillator: StdDev 2.0 (tune 1.5–2.5).
Note
Analysis tool, not financial advice. Backtest across timeframes and use risk management.
Trades in FavorTrades in Favor Indicator
Overview
The Trades in Favor indicator is a volume-weighted momentum oscillator that helps traders identify market conditions favoring long or short positions. It analyzes the relationship between price movements and volume to determine whether buying or selling pressure is dominating the market.
How It Works
The indicator calculates the percentage of volume-weighted price movements that are bullish versus bearish over a specified lookback period. It outputs values between 0-100:
Values above 70: Short Trade Zone (bearish conditions)
Values below 30: Long Trade Zone (bullish conditions)
Values around 50: Neutral Zone (balanced conditions)
Key Features
Volume-Weighted Analysis: Incorporates volume data for more accurate momentum readings
Clear Trading Zones: Visual zones with labels for immediate context
Customizable Parameters: Adjustable calculation length and smoothing periods
Built-in Alerts: Notifications when entering different trading zones
Information Table: Real-time display of current readings and percentages
Parameters
Calculation Length (20): Number of bars for momentum calculation
Smoothing Period (5): Moving average smoothing for cleaner signals
Short Trade Zone (70): Upper threshold for short trade conditions
Long Trade Zone (30): Lower threshold for long trade conditions
Trading Applications
Trend Confirmation: Validate trend direction with volume-backed momentum
Entry Timing: Identify optimal entry points in respective trade zones
Market Sentiment: Gauge overall buying vs selling pressure
Risk Management: Avoid trades against dominant market flow
Visual Elements
White oscillator line with clear zone boundaries
Background coloring in extreme zones
On-chart labels for immediate context
Information table showing current percentages
Customizable alert conditions
Best Practices
Use in conjunction with other technical analysis tools
Consider multiple timeframes for confirmation
Pay attention to volume spikes in extreme zones
Watch for divergences between price and the indicator
Perfect for swing traders, day traders, and anyone looking to align their trades with volume-backed market momentum.
1300 BarThe "1300 Bar" indicator is a simple yet effective tool designed to highlight the 1:00 PM EDT (New York time) bar on your chart with a yellow background. This helps traders and analysts easily identify this key intraday mark for strategic analysis or decision-making.
Key Features:
Time-Specific Highlighting: Targets the 13:00 EDT bar using the America/New_York timezone, ensuring accuracy regardless of your chart's display timezone. Focuses solely on coloring the bar yellow, providing a clear visual cue without additional overlays. Works on any symbol and timeframe, though best viewed on 1-minute to 30-minute charts for precise 13:00 EDT alignment.
How to Use:
Add the "1300 Bar" indicator to your chart. The 13:00 EDT bar will be highlighted yellow automatically. Scroll to historical data (e.g., 1:00 PM EDT on prior trading days) to see the highlighted bar.
Notes:
The indicator uses the America/New_York timezone, automatically adjusting for Daylight Saving Time (e.g., UTC-4 in EDT as of now). For best results, apply to a low timeframe (e.g., 1-min to 30-min) to ensure a bar exists at 13:00 EDT. No additional customization options are included, keeping the focus on the yellow bar highlight. Ideal for day traders or analysts who need a straightforward way to mark the 1:00 PM EDT period on their charts!
Fed Rate Change Impact📊 Fed Rate Change Impact — Macro Event-Driven Indicator
Fed Rate Change Impact is an advanced indicator designed to analyze the impact of Federal Reserve interest rate changes on financial markets. It integrates event-driven logic with dynamic visualization, percentage diagnostics, and multi-asset selection, offering a clear and customizable view of post-event effects.
🔍 Key Features 📅 Preloaded Fed Events : Includes over 30 historical rate cut (↓) and hike (↑) dates from 2008 to 2024.
📈 Post-Event Analysis : Calculates the percentage change of the selected asset 5, 10, and 30 days after each event.
📌 Vertical Chart Lines : Visually highlights each event directly on the chart, with dynamic coloring (red for hikes, green for cuts).
📋 Diagnostic Table : Displays real-time impact for each event, with color-coded values and a compact layout.
🧠 Interactive Filter: Choose to display only hikes, only cuts, or both.
🧭 Flexible Asset Selection : Analyze the current chart asset, pick from a predefined list, or manually input any ticker via input.symbol().
🎯 Contextual Highlighting : The table highlights the analyzed asset if it matches the active chart symbol.
⚙️ Customizable Parameters lookahead5, lookahead10, lookahead30: Define the time horizon for measuring post-event impact.
eventFilter : Choose which type of events to display.
presetAsset / customAsset : Select or input the asset to analyze.
🧪 Recommended Use Cases Macroeconomic analysis on indices, commodities, crypto, and forex
Studying delayed effects of rate changes on sensitive assets
Building event-driven strategies or diagnostic overlays
Visual backtesting and cross-asset comparison
🧠 Technical Notes The indicator is compatible with overlay=true and works best on Daily timeframe.
The table automatically adapts to the number of events and includes visual padding for improved readability.
All calculations are performed in real time and require no external data.
WTI Futures Break-Out StrategyThis Channel indicator is designed for 5 min time frame.
Pre-market high and low is defined per trading day between 9:00 AM to 9:30 AM EST.
How it works:
At 9:00 and 9:30 mark lines on Low and Hi levels.
Wait until a candle is closed above or below Low and Hi levels.
- Break-out high = long trade
- Break-out low = short trade
For additional confirmation, use either MACD or Stochastic RSI indicators.
Reference timesThe theory behind this indicator is that sometimes the graph reaches a certain price at at a certain time according to the price it had at the same time and day in any of the previous weeks. If you could easily see what happened a few weeks ago on this day's weekday and half an hour from now, you might theoretically gain more assurance as to where the graph might go in the next half an hour.
This of course relies of the premise that some traders choose to enter or exit positions according to historical times they are referencing. Hence the name - Reference times.
Example:
it is now 08:00 ET Wednesday. I want to guess what the graph will do in the next half hour. I enter in the indicator the weekday "Wednesday", the time "8:30", and go to 30 minute candles.
I will then see all the candles the graph has been on historical Wednesdays at 8:30. If the candles are below the 08:00 price, we might guess that the graph might want to descent. If they are above the graph, we might guess that the graph might ascend.
How it works:
The user defines a weekday and time he wants to inquire on.
The script searches for past weekdays and similar hours.
It marks these bars at their wicks.
The user can also inquire "opposite hours" - 12 hours ahead or earlier.
The user can also inquire "opposite days" - Monday<->Wednesday, Tuesday<->Thursday.
In addition, the User may inquire the previous day of his selected weekday, which will mark the most recent previous day existent.
Side note: The Time zone offset is set for Jerusalem time. and so it may need future adjustment.
send debugging instances if you find any
Thank you
Assaf Fogelman 2025
Reference TimesThe theory behind this indicator is that sometime the graph will change its direction at a point that is the point it reached at that weekday on that time in the previous weeks. If you can easily see what happened a few weeks ago on this day's weekday and a half an hour from now, you might theoretically gain more assurance as to where the graph might go in the next half an hour.
This of course relies of the premise that some traders choose to enter or exit positions according to historical times they are referencing. Hence the name - Reference times.
Example:
it is now 08:00 ET Wednesday. I want to guess what the graph will do in half an hour. I enter in the indicator the weekday "Wednesday", the time "8:30", and go to 30 minute candles.
I will then see all the candles the graph has been on historical Wednesdays at 8:30. If the candles are below the 08:00 price, we might guess that the graph might want to descent. If they are above the graph, we would guess the graph might want to ascend.
How it works:
The user defines a weekday and time he wants to inquire on.
The script searches for past weekdays and similar hours.
It marks these bars at their wicks.
The user can also inquire "opposite hours" - 12 hours ahead or earlier.
The user can also inquire "opposite days" - Monday<->Wednesday, Tuesday<->Thursday.
In addition, the User may inquire the previous day of his selected weekday, which will mark the most recent previous day existent.
Side note: The Time zone offset is set for Jerusalem time. and so it may need future adjustment.
send debugging instances if you find any
Thank you
Assaf Fogelman 2025