A chart-overlay indicator for lower timeframes that draws a fast ATR trailing stop and marks buy and sell triangles when price breaks it, with a volatility sensitivity filter.
1Copy the scriptPress Copy script above, or the copy button on the code below.
2Open the Pine EditorOpen a TradingView chart and choose Pine Editor at the bottom of the screen.
3Paste over the templateCreate a new indicator, select all of the template text and paste. Press Save and give it a name.
4Add it to the chartPress Add to chart, then adjust the settings with the gear icon next to its name.
Source Code
138 lines of Pine Script v6 from pinecode/Referance/Gemini Scalping.pine, published under MPL-2.0 (file header). Keep the author's credit and licence lines when you reuse it.
Gemini Scalping.pine
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// Description: Gemini Scalping Strategy is a comprehensive monitoring system designed for high-frequency trading and scalping on lower timeframes (1m to 15m). This tool combines a fast-response Trailing Stop based on Average True Range (ATR) with a professional, real-time multi-factor Dashboard to provide a complete view of market structure and momentum.
//
// Key Features:
//
// Reactive ATR Trailing Stop: Provides immediate Buy/Sell signals based on volatility expansion and price breakouts. The trail line dynamically changes color to reflect volatility health.
//
// Contextual Dashboard:
//
// Choppiness Index (Corrected): Identifies whether the market is in a Trending phase (below 38.2) or a Sideways phase (above 61.8), helping to avoid "noise" in flat markets.
//
// RSI Control Logic: Uses the 50-level pivot to define market control (Bull Control vs. Bear Control) instead of simple overbought/oversold levels.
//
// ADX Strength: Measures trend intensity to filter out weak breakouts.
//
// ATR Expansion: Monitors whether current volatility is above its average to confirm entry momentum.
//
// How to use:
//
// Entry: Primary signals are generated by the ATR triangles.
//
// Confirmation: Use the Dashboard to verify market quality. High-probability trades occur when ATR signals align with "TREND" status on the CHOP and "BULL/BEAR CONTROL" on the RSI.
//
// Customization: All dashboard elements (position, size, transparency, and theme) are fully customizable via the settings menu.
//
// Disclaimer: This indicator is for educational and analytical purposes only. Trading involves significant risk, and past performance is not indicative of future results.
//@version=6
indicator("Gemini Scalping Strategy [Pro Dash]", "Gemini Scalp + Dash", overlay = true, precision = 4)
// ==========================================
// 1. STRATEGY INPUTS
// ==========================================
grp_strat = "⚙️ Strategy Parameters"
atr_period = input.int(10, "ATR Period", minval = 1, group = grp_strat)
atr_factor = input.float(1.8, "ATR Multiplier", step = 0.1, group = grp_strat)
vol_filter = input.float(1.2, "Volatility Sensitivity Filter", step = 0.1, group = grp_strat)
// ==========================================
// 2. DASHBOARD VISUAL INPUTS
// ==========================================
grp_dash = "📊 Dashboard Aesthetics"
dash_pos = input.string("Bottom Right", "Position", options = ["Top Right", "Bottom Right", "Top Left", "Bottom Left"], group = grp_dash)
dash_size = input.string("Small", "Global Size", options = ["Tiny", "Small", "Normal", "Large"], group = grp_dash)
bg_transp = input.int(5, "Background Transparency", minval = 0, maxval = 100, group = grp_dash)
main_col = input.color(#0052FF, "Theme Color", group = grp_dash)
// Mapping dimensions and position
txt_size = dash_size == "Tiny" ? size.tiny : dash_size == "Small" ? size.small : dash_size == "Normal" ? size.normal : size.large
pos_map = dash_pos == "Top Right" ? position.top_right : dash_pos == "Bottom Right" ? position.bottom_right : dash_pos == "Top Left" ? position.top_left : position.bottom_left
// ==========================================
// 3. TECHNICAL CALCULATIONS
// ==========================================
// ATR Volatility & Pure ATR Trend Logic
float tr_val = ta.tr(true)
float atr_fast = ta.rma(tr_val, atr_period)
float atr_slow = ta.sma(atr_fast, 50)
bool is_volatile = atr_fast > (atr_slow * vol_filter)
var float trail = 0.0
var int trend = 1
float loss = atr_factor * atr_fast
if trend == 1
trail := math.max(close - loss, nz(trail[1]))
if close < trail
trend := -1, trail := close + loss
else
trail := math.min(close + loss, nz(trail[1]))
if close > trail
trend := 1, trail := close - loss
// Secondary Indicators for Context
float rsi_val = ta.rsi(close, 14)
[plus, minus, adx_val] = ta.dmi(14, 14)
float chop_val = 100 * math.log10(math.sum(tr_val, 14) / (math.max(ta.highest(high, 14), close[1]) - math.min(ta.lowest(low, 14), close[1]))) / math.log10(14)
// ==========================================
// 4. SIGNALS & PLOTS
// ==========================================
// Signals based purely on ATR Crossover
bool entry_long = ta.crossover(close, trail)
bool entry_short = ta.crossunder(close, trail)
plotshape(entry_long, "Long ATR", shape.triangleup, location.belowbar, color.green, size = size.small)
plotshape(entry_short, "Short ATR", shape.triangledown, location.abovebar, color.red, size = size.small)
// Stop line color changes based on volatility threshold
color line_c = trend == 1 ? (is_volatile ? color.green : color.gray) : (is_volatile ? color.red : color.gray)
plot(trail, "Trailing Stop", color = line_c, linewidth = 2, style = plot.style_linebr)
// ==========================================
// 5. PROFESSIONAL DASHBOARD RENDERING
// ==========================================
var table dash = table.new(pos_map, 3, 7, bgcolor = color.new(color.black, bg_transp), border_width = 1, border_color = color.new(color.gray, 50))
if barstate.islast
// Header
table.cell(dash, 0, 0, "GEMINI UT BOT STRATEGY", text_color = color.white, bgcolor = main_col, text_size = txt_size)
table.merge_cells(dash, 0, 0, 2, 0)
// Column Headers
table.cell(dash, 0, 1, "INDICATOR", text_color = color.gray, text_size = size.tiny)
table.cell(dash, 1, 1, "VALUE", text_color = color.gray, text_size = size.tiny)
table.cell(dash, 2, 1, "STATUS", text_color = color.gray, text_size = size.tiny)
// CHOP Row (Trend vs Sideways)
color c_c = chop_val > 61.8 ? color.orange : chop_val < 38.2 ? color.blue : color.gray
string c_s = chop_val > 61.8 ? "SIDE" : chop_val < 38.2 ? "TREND" : "NEUT"
table.cell(dash, 0, 2, "CHOP (Trend)", text_color = color.white, text_size = txt_size, text_halign = text.align_left)
table.cell(dash, 1, 2, str.tostring(chop_val, "0.0"), text_color = color.white, text_size = txt_size)
table.cell(dash, 2, 2, c_s, bgcolor = c_c, text_color = color.white, text_size = txt_size)
// RSI Row (Bull vs Bear Control)
color r_c = rsi_val > 50 ? color.green : color.red
table.cell(dash, 0, 3, "RSI (Control)", text_color = color.white, text_size = txt_size, text_halign = text.align_left)
table.cell(dash, 1, 3, str.tostring(rsi_val, "0.0"), text_color = color.white, text_size = txt_size)
table.cell(dash, 2, 3, rsi_val > 50 ? "BULL" : "BEAR", bgcolor = r_c, text_color = color.white, text_size = txt_size)
// ATR Row (Volatility Expansion)
color v_c = is_volatile ? color.orange : color.gray
table.cell(dash, 0, 4, "ATR (Volat)", text_color = color.white, text_size = txt_size, text_halign = text.align_left)
table.cell(dash, 1, 4, str.tostring(atr_fast, "0.0004"), text_color = color.white, text_size = txt_size)
table.cell(dash, 2, 4, is_volatile ? "HIGH" : "LOW", bgcolor = v_c, text_color = color.white, text_size = txt_size)
// ADX Row (Trend Strength)
color a_c = adx_val > 25 ? color.green : color.red
table.cell(dash, 0, 5, "ADX (Force)", text_color = color.white, text_size = txt_size, text_halign = text.align_left)
table.cell(dash, 1, 5, str.tostring(adx_val, "0.0"), text_color = color.white, text_size = txt_size)
table.cell(dash, 2, 5, adx_val > 25 ? "STRNG" : "WEAK", bgcolor = a_c, text_color = color.white, text_size = txt_size)
// ATR ACTION (Current Trend State)
string act_txt = trend == 1 ? "LONG" : "SHORT"
color act_col = trend == 1 ? color.green : color.red
table.cell(dash, 0, 6, "ATR TREND: " + act_txt, bgcolor = act_col, text_color = color.white, text_size = txt_size)
table.merge_cells(dash, 0, 6, 2, 6)
Overview
A configurable dashboard reports market state using the Choppiness Index, RSI above or below 50, ADX strength and ATR expansion. Settings cover the ATR period and multiplier, filter sensitivity, dashboard position, size, transparency and theme colour. The signals come from the ATR line only; the dashboard is context.
The inputs you can change from the gear icon on the chart. Defaults are the author's.
Setting
Type
Default
Variable
ATR Period
int
10
atr_period
ATR Multiplier
float
1.8
atr_factor
Volatility Sensitivity Filter
float
1.2
vol_filter
Position
string
Bottom Right
dash_pos
Global Size
string
Small
dash_size
Background Transparency
int
5
bg_transp
Theme Color
color
#0052FF
main_col
Third-party code. ForexR did not write, test or endorse this script, and the summary above was generated automatically from its code and README. Indicators describe the past, and a strategy's backtest can look better than live trading, especially when a script repaints. Check it in the Strategy Tester and on a demo account before you rely on it.
This overlay indicator builds a money-management table on the price chart. It takes a deposit, a maximum risk percentage per trade, and a commission percentage, then sizes risk against up to ten user-defined stop-loss percentages and an optional ATR stop. The
This TradingView indicator provides scalping money management tools by displaying a customizable panel on the chart. It shows risk management details such as deposit size, maximum risk per trade as a percentage, and commission adjustments. The indicator plots
This overlay indicator plots a Supertrend from an ATR length and factor, four exponential moving averages, and a selectable VWAP or TWAP taken from a chosen timeframe on the price chart. It also shows MACD and stochastic with adjustable lengths, smoothing, ver
This multi-symbol indicator evaluates a combined trading condition across up to 40 user-defined symbols. It processes MACD bullish crossovers, RSI thresholds, Bollinger Band boundaries, and DMI/ADX trend filters using security calls. When buy or sell criteria
This indicator calculates theoretical options contract values and in-the-money probabilities using historical realized volatility across multiple standard deviations. It displays these metrics in a table overlay directly on the price chart. Users can adjust th
This indicator maps market structure and supply and demand zones on the price chart. It marks validated and optional unvalidated swing highs and lows using a pivot length and extra confirmation bars. Consolidation and impulse moves are measured against ATR to