Indicator

DNSE VN301!, MACD Cross Strategy"MACD Trend Following with SMA Trend Filter" is a momentum-based trend-following strategy designed to capture directional market moves as momentum begins to strengthen. The strategy uses the MACD indicator, with its standard parameters of Fast EMA(12), Slow EMA(26), and Signal EMA(9), to identify bullish signals when the MACD line crosses above the signal line and bearish signals when it crosses below.
To improve signal quality, the strategy incorporates an optional SMA(200) trend filter, allowing Long trades only when the SMA is rising and Short trades only when it is falling. By combining MACD momentum crossovers with long-term trend confirmation, the strategy seeks to reduce false signals during sideways market conditions while participating in sustained intraday trends. It also includes configurable stop loss, take profit, trading session filters, and automatic end-of-day position closure for disciplined risk management.
Strategy settings and configuration:
Chart timeframe: recommended 5-minute chart
Position size: 3 contracts
MACD fast length: 12
MACD slow length: 26
MACD signal length: 9
SMA length: 200
Stop loss: 10 points
Take profit: 30 points
SMA trend filter: On / Off
Take profit: On / Off
Time filter: On / Off
Trading session: 09:00 – 14:30
Trade direction: Long / Short / Both
Default script settings:
The strategy uses MACD(12,26,9). The MACD line is calculated from the difference between EMA(12) and EMA(26). The Signal line is the EMA(9) of the MACD line.
When MACD crosses above the Signal line, bullish momentum may be taking control. When MACD crosses below the Signal line, bearish momentum may be taking control.
When the SMA(200) trend filter is enabled, the script only allows Long trades when SMA(200) is rising and only allows Short trades when SMA(200) is falling. When the SMA filter is disabled, the strategy can trade both directions based only on MACD crossover signals.
Users can add the built-in MACD indicator on PulseWire with settings 12, 26, 9 and source close to visually monitor the signal below the price chart.
Entry and exit rules:
Long entry:
MACD(12,26,9) crosses above the Signal line
AND SMA(200) is rising, if the SMA filter is enabled
AND the signal appears during the trading session
AND trade direction allows Long entries
Long exit:
Stop loss: 10 points from entry price
Take profit: 30 points from entry price, if enabled
MACD crosses below the Signal line
Reversal when a valid Short signal appears
Automatic position close at the end of the trading session
Short entry:
MACD(12,26,9) crosses below the Signal line
AND SMA(200) is falling, if the SMA filter is enabled
AND the signal appears during the trading session
AND trade direction allows Short entries
Short exit:
Stop loss: 10 points from entry price
Take profit: 30 points from entry price, if enabled
MACD crosses above the Signal line
Reversal when a valid Long signal appears
Automatic position close at the end of the trading session
Risk disclaimer:
Futures trading involves a high level of risk and prices can move sharply. This script is provided for reference, research, and backtesting purposes only. Users should fully understand derivatives trading, their own risk tolerance, and the strategy logic before applying it to live trading.
All investment decisions are the responsibility of the user. phaisinh.online is not responsible for any losses arising from the use of this strategy in real trading. Past performance does not guarantee future results.
___________________________________________________________________
"MACD Trend Following với Bộ lọc Xu hướng SMA" là một chiến lược giao dịch theo xu hướng dựa trên động lượng, được thiết kế nhằm nắm bắt các biến động giá theo một hướng khi động lượng thị trường bắt đầu gia tăng. Chiến lược sử dụng chỉ báo MACD với các tham số tiêu chuẩn gồm Fast EMA(12), Slow EMA(26) và Signal EMA(9) để xác định tín hiệu mua khi đường MACD cắt lên trên đường tín hiệu, và tín hiệu bán khi đường MACD cắt xuống dưới đường tín hiệu.
Để nâng cao chất lượng tín hiệu, chiến lược tích hợp bộ lọc xu hướng SMA(200) (có thể bật hoặc tắt), chỉ cho phép mở vị thế Long khi SMA đang dốc lên và vị thế Short khi SMA đang dốc xuống. Bằng cách kết hợp tín hiệu giao cắt động lượng của MACD với xác nhận xu hướng dài hạn, chiến lược hướng tới việc giảm thiểu các tín hiệu nhiễu trong giai đoạn thị trường đi ngang, đồng thời tận dụng các xu hướng intraday kéo dài. Ngoài ra, chiến lược còn bao gồm các tùy chọn Stop Loss, Take Profit, bộ lọc khung thời gian giao dịch, và cơ chế tự động đóng toàn bộ vị thế khi kết thúc phiên, nhằm đảm bảo quản trị rủi ro một cách chặt chẽ và có kỷ luật.
Cài đặt & cấu hình chiến lược:
Biểu đồ: khuyến nghị khung 5 phút
Khối lượng giao dịch: 3 hợp đồng
Chu kỳ nhanh MACD: 12
Chu kỳ chậm MACD: 26
Chu kỳ tín hiệu MACD: 9
Chu kỳ SMA: 200
Cắt lỗ: 10 điểm
Chốt lời: 30 điểm
Bộ lọc xu hướng SMA: Bật / Tắt
Dùng chốt lời: Bật / Tắt
Bộ lọc giờ: Bật / Tắt
Khung giờ giao dịch: 09:00 – 14:30
Chiều giao dịch: Mua / Bán / Cả hai
Cài đặt mặc định của script:
Chiến lược sử dụng MACD(12,26,9), trong đó đường MACD được tính từ chênh lệch giữa EMA(12) và EMA(26). Đường Signal là EMA(9) của chính đường MACD.
Khi MACD cắt lên đường Signal, động lượng tăng có thể đang chiếm ưu thế. Khi MACD cắt xuống đường Signal, động lượng giảm có thể đang chiếm ưu thế.
Khi bật bộ lọc xu hướng SMA(200), script chỉ cho phép lệnh Mua khi SMA(200) dốc lên và chỉ cho phép lệnh Bán khi SMA(200) dốc xuống. Khi tắt bộ lọc SMA, chiến lược có thể giao dịch cả hai chiều chỉ dựa trên tín hiệu giao cắt MACD.
Người dùng có thể thêm chỉ báo MACD có sẵn trên PulseWire với tham số 12, 26, 9 và nguồn close để quan sát tín hiệu trực quan bên dưới biểu đồ giá.
Điều kiện vào và thoát lệnh:
Vào lệnh Mua:
MACD(12,26,9) cắt lên đường Signal
VÀ SMA(200) dốc lên, nếu bật bộ lọc SMA
VÀ tín hiệu xuất hiện trong khung giờ giao dịch
VÀ chiều giao dịch cho phép lệnh Mua
Thoát lệnh Mua:
Cắt lỗ: 10 điểm từ giá vào lệnh
Chốt lời: 30 điểm từ giá vào lệnh, nếu bật
MACD cắt xuống đường Signal
Đảo chiều khi xuất hiện tín hiệu Bán hợp lệ
Tự động đóng lệnh khi hết khung giờ giao dịch
Vào lệnh Bán:
MACD(12,26,9) cắt xuống đường Signal
VÀ SMA(200) dốc xuống, nếu bật bộ lọc SMA
VÀ tín hiệu xuất hiện trong khung giờ giao dịch
VÀ chiều giao dịch cho phép lệnh Bán
Thoát lệnh Bán:
Cắt lỗ: 10 điểm từ giá vào lệnh
Chốt lời: 30 điểm từ giá vào lệnh, nếu bật
MACD cắt lên đường Signal
Đảo chiều khi xuất hiện tín hiệu Mua hợp lệ
Tự động đóng lệnh khi hết khung giờ giao dịch
Tuyên bố rủi ro:
Giao dịch hợp đồng tương lai có mức độ rủi ro cao và giá có thể biến động mạnh. Script này chỉ phục vụ mục đích tham khảo, nghiên cứu và kiểm thử. Người dùng cần hiểu rõ giao dịch phái sinh, khẩu vị rủi ro cá nhân và logic của chiến lược trước khi áp dụng vào giao dịch thực tế.
Mọi quyết định đầu tư thuộc trách nhiệm của người dùng. phaisinh.online không chịu trách nhiệm cho bất kỳ khoản lỗ nào phát sinh từ việc sử dụng chiến lược này trong giao dịch thực tế. Hiệu quả trong quá khứ không đảm bảo kết quả trong tương lai.
Strategy

Zone Radar [DefinedEdge]Price spends most of its time going nowhere. Zone Radar finds those stretches automatically, draws the range while it's still forming, and tells you the moment it breaks and how hard.
🎯 What it does
Zone Radar watches for price coiling inside a bounded range. When a genuine consolidation forms, it marks the zone with its support and resistance, then tracks it live. The instant price closes decisively outside the range, it flags the break and scores its strength from 0 to 100. Strong breaks get a bold label and a projected target.
It is a context and breakout tool, not a signal service. It shows you where the market is compressed and when that compression releases. What you do with that read is yours.
🧭 How a zone is found
A range only qualifies when two things are true at once:
Price stays inside an ATR normalised band for a minimum number of bars, so the width adapts to any symbol or timeframe on its own.
Price does not drift across that band from one side to the other, which filters out slow trends pretending to be ranges.
Once a zone is confirmed the box breathes to hug the real range, but it is capped at the width it formed with. That cap is what makes a breakout meaningful: a close beyond it is a true expansion out of compression, not just another bar inside the noise.
💥 Break strength (0 to 100)
Every break is graded on four things that separate a real breakout from a fake one:
Displacement how far beyond the edge it closed, in ATR
Range expansion the break bar's range against its recent average
Volume surge participation on the break (auto adjusted on symbols with no volume data, like spot FX)
Coil quality how long and tight the range was, since a longer coil breaks harder
Breaks at or above your Strong threshold get the bold badge plus a measured move target: the height of the range projected from the breakout point. Broken edges stay on the chart as polarity support and resistance for the retest.
⚙️ Under The Hood
Signals fire on the close of the breakout bar. No repainting, ever.
Fully adjustable: range length, width, break sensitivity, strength threshold, and how much history stays on the chart.
Works on any market and any timeframe. Tuned nicely for intraday out of the box.
🔔 Alerts
Zone formed, break up, break down, strong break up, strong break down. Wire any of them into your workflow.
📝 Notes
Lower timeframes produce far more zones than higher ones, so only the most recent are kept drawn to stay within platform limits. Raise the zone cap if you want more history, or drop to a higher timeframe for a cleaner chart. The ATR based settings are a starting point, not gospel. Tune them to how your instrument actually moves. Indicator

PTRO Trade Bot v6//@version=6
indicator("PTRO Trade Bot v6", overlay=true)
triggerVol = input.int(50000000, "Min volume (lots)", minval=0)
= request.security("IDX:PTRO", "15", )
neckline = 4750.0
reclaim = 4820.0
trim1 = 4950.0
trim2 = 5000.0
trim3 = 5200.0
hardStop = 4200.0
breakdown = close15 < neckline and vol15 > triggerVol
reclaimTrigger = close15 > reclaim and vol15 > triggerVol
trim1Hit = high15 >= trim1 and high15 < trim1
trim2Hit = high15 >= trim2 and high15 < trim2
trim3Hit = high15 >= trim3 and high15 < trim3
hardStopHit = close15 < hardStop
plot(neckline, "Neckline 4750", color=color.red, style=plot.style_stepline, linewidth=2)
plot(reclaim, "BOS 4820", color=color.green, style=plot.style_stepline, linewidth=2)
plot(trim1, "Trim 1 (4950)", color=color.blue, style=plot.style_circles)
plot(trim2, "Trim 2 (5000)", color=color.blue, style=plot.style_circles)
plot(trim3, "Trim 3 (5200)", color=color.blue, style=plot.style_circles)
plot(hardStop, "Hard Stop 4200", color=color.maroon, style=plot.style_cross, linewidth=2)
alertcondition(breakdown, "PTRO Breakdown 50pct Cut", "PTRO closed below 4750 with vol > 50M. Cut 50pct pre-market.")
alertcondition(reclaimTrigger, "PTRO BOS Reclaim", "PTRO reclaimed 4820 on volume. Thesis confirmed.")
alertcondition(trim1Hit, "PTRO Trim 1 (4950)", "PTRO touched 4950. Trim 25pct, move stop to 4750.")
alertcondition(trim2Hit, "PTRO Trim 2 (5000)", "PTRO touched 5000. Trim 25-30pct, trail stop.")
alertcondition(trim3Hit, "PTRO Trim 3 BOS (5200)", "PTRO touched 5200. Final trim, trail runner 1 ATR.")
alertcondition(hardStopHit, "PTRO Hard Stop (4200)", "PTRO closed below 4200. Thesis dead. Exit remaining.")
Indicator

Indicator

Indicator

Volatility Regime Classifier [AFD]
**What it does**
It answers one question: *is this symbol moving more, or less, than it usually does?*
It measures how far this symbol's own bars have been travelling, ranks that against its recent history, and states the answer as a percentile from 0 to 100 plus a named tier — **QUIET**, **NORMAL**, **ELEVATED** or **EXTREME**. Alongside it you get how the recent stretch compares with the longer one, whether the reading is rising or falling, and a plain-English line saying what that amounts to.
Everything comes from the chart you have open. No VIX, no options data, no implied volatility, no other symbol, and no `request.*()` call of any kind — so it behaves the same on a currency pair, a small-cap, a future or a crypto chart, none of which have an index volatility proxy to borrow.
**How it works**
Realized volatility is measured over three rolling windows — short, mid and long — and one **Sensitivity** setting picks them: Fast 5/15/30, Normal 10/30/60, Slow 20/60/120. Fast is the default.
Four estimators, and this choice matters more than any other setting:
- **Parkinson** (default) — reads the bar's high-low range.
- **Garman-Klass** — reads the range and the open-to-close move.
- **Close-to-close** — reads the dispersion of returns.
- **ATR** — a plain N-bar average of true range. **Not Wilder's smoothing**, so it will
not match PulseWire's built-in ATR at the same length. Deliberate, not a bug.
Parkinson is the default because of a specific failure of the close-to-close default it replaced. Close-to-close measures how *scattered* returns are; a chart reader measures how *far* price went. A clean one-way slide has every return pointing the same way, so its dispersion is genuinely low — and a choppy bounce covering the same ground scores higher than the slide did. Range-based estimators read what the eye reads.
The short-window reading is ranked against the last **400 bars** to give the percentile, and the tier follows from that rank with a **band around each boundary**, so a reading parked on a threshold does not flip back and forth on sampling noise. The panel tells you when the band is holding a tier back.
There is a second route into EXTREME, and it exists because a percentile is self-normalising: roughly a tenth of all bars sit in the top tier however quiet the year has actually been. So a bar is also called EXTREME when the short window reaches a set multiple of the long one, whatever its rank. The multiple differs per estimator, because the four do not put that ratio on the same scale.
On intraday charts the **session-gap return is excluded**. It spans a close and the next open, so it is not a return over one bar of trading, and leaving it in made every session open read as a volatility event that never happened. It is dropped, not zeroed.
**How to use it**
Add it and read the dashboard. It starts compact at four rows; switch **Compact dashboard** off for the full nine, which name every window, bound and setting actually in force rather than the defaults. Hover the marker at the end of the line for a glossary of every number, also built from your current settings.
- **The percentile line** in the lower pane, tier zones shaded behind it.
- **Price-chart markers** — the bar column painted when a tier you have chosen is reached, or a box spanning the whole episode. EXTREME is marked by default; QUIET, NORMAL, ELEVATED and RISING are all available, and a marked tier always beats RISING so an overlapping bar's colour is never an accident of ordering.
- **The market context box** on the price chart, at the corner you pick or off. A headline names the character of the tape — `RANGE EXPANDING`, `RANGE COMPRESSING`, `WIDE AND HOLDING` and eight others — over a line naming what to re-check, a line stating what the short-to-long ratio amounts to in words, and a standing line reading **`Size only - this says nothing about direction.`**
That last line has no off switch, and the vocabulary above it never uses the words "up or "down". `EXPANDING` is equally what a hard rally and a hard sell-off look like.
**Three alerts**, all evaluated on confirmed bars only: the regime tier changed, the short-vs-baseline state changed, and the EXTREME tier was entered.
**Repainting**
The script reads nothing but the current chart's own bars. There are no `request.*()` calls, no higher-timeframe data and no `barmerge.lookahead_on` anywhere in it, so there is no future data for it to borrow. Once a bar closes, its reading is settled and does not change afterwards.
The bar still forming is the ordinary exception, and it is worth being explicit about: its high, low and close are still moving, so the reading on it moves too, and the tier on the live bar can change before the bar is done. The three alert conditions are gated to confirmed bars for that reason. Drawn elements — the panel, the context box, the episode box — are drawn at the last bar and update with it.
**Why it is original**
It is built for the **Pine Screener**, which is unusual in this category. The first ten plots are the contract — percentile, tier code, ratio, short-vs-baseline code, acceleration tier, regime-changed flag, the two raw RV levels, the percentile's sample count, and a flag saying whether the outputs are fully defined — so you can rank or filter a whole watchlist by volatility regime instead of reading one chart at a time. Zero `request.*()` calls, and the warmup is sized to fit the Screener's 500-bar window.
The other difference is that **the regime is a number, not a colour.** The visual layer is drawn *from* the percentile and never replaces it; every tinted panel row still states its value in words, and the whole visual layer switches off without a single reported number changing.
**Limitations**
- **It says nothing about direction, and it is not a signal.** No entries, no exits, no targets, no probability, win-rate or expectancy language anywhere in the script. It describes what has already happened on the chart in front of you.
- **It needs history.** At the default Fast preset the percentile is undefined until bar 404 and shows blank until then. The size-based EXTREME route is defined from bar 30, so **a bar can legitimately show an EXTREME tier beside a blank percentile row** — the panel says which is which, and the `Outputs fully defined` plot flags it.
- **A percentile is relative to this symbol's own recent history.** QUIET on one instrument and QUIET on another are not the same absolute amount of movement. The panel carries the absolute RV level next to the rank for exactly this reason.
- **ATR here is a simple average, not Wilder's**, as above.
**Licence:** Mozilla Public License 2.0. Indicator

Indicator

Indicator

Indicator

Indicator

APEX v14 CLEAN - MNQ/MESNITRO V15 amazing bot just try it out is an advanced AI-powered trading assistant built for precision, discipline, and consistency. Designed around smart money concepts, liquidity analysis, and market structure, it identifies high-probability trading opportunities while filtering out low-quality setups. By combining multiple layers of confluence—including liquidity sweeps, order blocks, fair value gaps (FVGs), optimal trade entries (OTE), trend strength, volatility, and higher-timeframe confirmation—BRABUZ helps traders make confident, data-driven decisions with a strong focus on risk management and capital preservation.
Rather than generating constant signals, BRABUZ is engineered to prioritize quality over quantity, waiting patiently for A+ setups with the highest statistical edge. It continuously adapts to changing market conditions, providing clear trade entries, stop-loss placement, profit targets, and real-time market bias in a clean, easy-to-read interface. Whether you're a prop firm trader, futures trader, or experienced retail trader, BRABUZ is designed to eliminate emotional decision-making, improve consistency, and give you a professional-grade trading edge. is an advanced AI-powered trading assistant built for precision, discipline, and consistency. Designed around smart money concepts, liquidity analysis, and market structure, it identifies high-probability trading opportunities while filtering out low-quality setups. By combining multiple layers of confluence—including liquidity sweeps, order blocks, fair value gaps (FVGs), optimal trade entries (OTE), trend strength, volatility, and higher-timeframe confirmation—BRABUZ helps traders make confident, data-driven decisions with a strong focus on risk management and capital preservation.
Rather than generating constant signals, BRABUZ is engineered to prioritize quality over quantity, waiting patiently for A+ setups with the highest statistical edge. It continuously adapts to changing market conditions, providing clear trade entries, stop-loss placement, profit targets, and real-time market bias in a clean, easy-to-read interface. Whether you're a prop firm trader, futures trader, or experienced retail trader, BRABUZ is designed to eliminate emotional decision-making, improve consistency, and give you a professional-grade trading edge. Indicator

ORB+VWAPITSP ORB + VWAP — Opening Range Breakout with VWAP & Volume Confirmation
Overview
This indicator combines three of the most widely used intraday trading concepts into a single, non-repainting signal engine: Opening Range Breakout (ORB), session-anchored VWAP, and volume confirmation. It is built for NSE intraday trading but works on any liquid market with a defined session.
Most ORB tools only look at whether price broke the opening range. This one adds two additional filters — trend alignment via VWAP and participation via volume — so signals are less prone to false breakouts on thin, directionless moves.
How It Works
1. Opening Range — the script automatically detects the first bar of each new regular trading session and builds a high/low range over a user-defined number of minutes (default 15). Once that window elapses, the range locks for the rest of the session.
2. Session VWAP — a fresh volume-weighted average price is calculated from the first bar of each session, giving an accurate intraday fair-value reference rather than a rolling multi-day average.
3. Volume Filter — breakout bars are checked against a multiple of the recent average volume, filtering out low-conviction breaks.
4. Signal Logic — a long signal fires when price closes above the opening range high, is trading above session VWAP, and volume confirms. A short signal is the mirror condition. Each signal fires once per session per direction to avoid repeated alerts on choppy retests.
Key Features
• Auto-resetting opening range box, visually plotted on the chart
• Session-anchored VWAP line with configurable source
• Optional volume confirmation filter (adjustable multiple and lookback)
• Optional VWAP trend filter — can be disabled for raw ORB signals
• ATR-based stop-loss and target labels auto-printed on each signal
• Configurable info table (position, on/off) showing live ORB status, levels, and VWAP bias
• Background tint reflecting current VWAP bias
• Built-in alert conditions for both breakout directions, ready for webhook/Telegram/automation integration
How to Use
• Works best on 5-minute or 15-minute charts for liquid stocks and index futures.
• Set your chart session to Regular Trading Hours for correct daily resets.
• Adjust the Opening Range window (default 15 minutes) to match your market's typical volatility — some traders prefer 30 minutes for less noise.
• Use the VWAP and Volume filters as confluence checks; disabling both reduces this to a pure ORB breakout tool.
• ATR stop/target labels are a starting reference, not a substitute for your own risk management.
Settings
• Opening Range Minutes
• VWAP source and on/off filter
• Volume MA length and confirmation multiple
• ATR length, stop multiple, target multiple
• Info table visibility and position (9 placement options)
• Signal color customization
Alerts
Two alert conditions are built in — Long ORB Breakout and Short ORB Breakdown — both suitable for webhook-based automation to Telegram, Discord, or other delivery channels.
Notes
• Non-repainting: all breakout and VWAP calculations use only confirmed price/volume data at the time each bar closes.
• This is a discretionary decision-support tool, not a standalone trading system. Always combine with your own risk management and market context.
Disclaimer
This script is for educational and informational purposes only and does not constitute financial advice. Trading involves substantial risk of loss. Past performance of any strategy or signal does not guarantee future results. Use at your own risk and always backtest/forward-test before live deployment.
Indicator

Indicator

NQ Edge Pro - AMT Toolkit v0.1//@version=6
indicator("NQ Edge Pro - AMT Toolkit v0.1", overlay=true, max_lines_count=100, max_labels_count=100)
//=========================
// INPUTS
//=========================
showPDLevels = input.bool(true, "Show Previous Day Levels")
showLabels = input.bool(true, "Show Labels")
extendLines = input.bool(true, "Extend Lines")
vahColor = color.new(color.green, 0)
pocColor = color.new(color.yellow, 0)
valColor = color.new(color.red, 0)
//=========================
// PREVIOUS DAY DATA
//=========================
prevHigh = request.security(
syminfo.tickerid,
"D",
high ,
gaps=barmerge.gaps_off,
lookahead=barmerge.lookahead_on)
prevLow = request.security(
syminfo.tickerid,
"D",
low ,
gaps=barmerge.gaps_off,
lookahead=barmerge.lookahead_on)
// Temporary approximation
dayRange = prevHigh - prevLow
prevPOC = prevLow + dayRange * 0.50
prevVAH = prevLow + dayRange * 0.70
prevVAL = prevLow + dayRange * 0.30
// Correct new-day detection
newDay = timeframe.change("D")
//=========================
// DRAW LINES
//=========================
var line vahLine = na
var line pocLine = na
var line valLine = na
if newDay and showPDLevels
line.delete(vahLine)
line.delete(pocLine)
line.delete(valLine)
vahLine := line.new(
bar_index, prevVAH,
bar_index + 1, prevVAH,
extend=extendLines ? extend.right : extend.none,
color=vahColor,
width=2)
pocLine := line.new(
bar_index, prevPOC,
bar_index + 1, prevPOC,
extend=extendLines ? extend.right : extend.none,
color=pocColor,
width=2)
valLine := line.new(
bar_index, prevVAL,
bar_index + 1, prevVAL,
extend=extendLines ? extend.right : extend.none,
color=valColor,
width=2)
//=========================
// LABELS
//=========================
if newDay and showPDLevels and showLabels
label.new(
bar_index, prevVAH,
"Prev VAH",
style=label.style_label_left,
color=vahColor,
textcolor=color.white)
label.new(
bar_index, prevPOC,
"Prev POC",
style=label.style_label_left,
color=pocColor,
textcolor=color.black)
label.new(
bar_index, prevVAL,
"Prev VAL",
style=label.style_label_left,
color=valColor,
textcolor=color.white)
//=========================
// DASHBOARD
//=========================
var table dash = table.new(
position.top_right,
2,
5,
border_width=1)
location = close > prevVAH ? "Above Value" :
close < prevVAL ? "Below Value" :
"Inside Value"
if barstate.islast
table.cell(
dash, 0, 0,
"AMT TOOLKIT",
text_color=color.white,
bgcolor=color.blue)
table.cell(
dash, 1, 0,
location,
text_color=color.white,
bgcolor=color.blue)
table.cell(dash, 0, 1, "Prev VAH")
table.cell(dash, 1, 1, str.tostring(prevVAH, format.mintick))
table.cell(dash, 0, 2, "Prev POC")
table.cell(dash, 1, 2, str.tostring(prevPOC, format.mintick))
table.cell(dash, 0, 3, "Prev VAL")
table.cell(dash, 1, 3, str.tostring(prevVAL, format.mintick))
table.cell(dash, 0, 4, "Location")
table.cell(dash, 1, 4, location) Indicator

Indicator

Multi-Engine Strategy (Green Optimized + Candlestick Breakout)Multi-Engine Quantitative Strategy (Trend, Dip & Candlestick Breakouts)
Overview
This strategy is an optimized multi-engine quantitative trading system designed for active momentum traders. It combines dynamic trend filtering with three distinct entry engines—allowing it to adapt to changing market structures, whether buying pullbacks in an established trend or capturing high-momentum breakout expansions.
Key Strategy Features
1. Trend & Macro Alignment
Macro Filter: Ensures trades are only taken in favorable environments by requiring price to trade above both the 50 EMA and the VWAP.
Support Validation: Uses a 21 EMA fast line to define dynamic dynamic support levels for pullback entries.
2. Multi-Engine Entry Logic
Engine A: Buy the Dip (Pullback Engine)
Identifies oversold opportunities within a macro uptrend.
Triggers when price touches or dips near the 21 EMA buffer zone and prints a strong green reversal candle while remaining above the 50 EMA.
Engine B: Structural High Breakout
Targets apex breakout consolidations.
Triggers when price crosses above the highest high of the lookback period (N bars) accompanied by an institutional volume spike.
Engine C: First Green Over Prior Red (Candlestick Breakout)
Captures immediate micro-momentum shifts at potential pivot points.
Triggers when a green candle (close > open) breaks cleanly above the high of the immediately preceding red candle (close < open ), validated by volume expansion.
3. Institutional Risk & Execution Rules
Volume Filter: Requires a customizable volume multiplier (default: 1.2x 5-period SMA) on breakouts to filter out low-volume bull traps.
Dynamic Stop-Loss: Sets stop-losses at key dynamic swing levels (e.g., recent 5-bar low or prior candle's low) to adapt to market volatility.
Risk/Reward Framing: Uses a default 1:2 Risk-to-Reward ratio on all entries.
Macro Guardrail Exit: Closes open positions immediately if price breaks below the 50 EMA, preserving capital during structural reversals.
Input Settings & Customization
Strategy Engine Toggles: Enable or disable any of the 3 entry engines independently to isolate performance per asset class.
Moving Averages: Adjust Fast EMA (21) and Slow EMA (50) lengths to fit higher or lower timeframes.
Breakout Lookback: Fine-tune structural high lookbacks (default: 5 bars).
Volume Multiplier: Adjust breakout volume threshold requirements.
Backtest Lookback Window: Define strict date ranges for targeted backtesting.
Recommended Usage
Asset Classes: Tech Stocks, Crypto (BTC/ETH), High-Beta Equities, Forex Pairs.
Timeframes: Best tuned for intraday (5m, 15m) and lower swing timeframes (1H, 4H). Strategy

Indicator

Indicator

RSI + Bollinger BandsRSI + Bollinger Bands — RSIBB
RSIBB combines the Relative Strength Index with Bollinger Bands by projecting RSI momentum directly into price space. Instead of displaying RSI in a separate oscillator pane, this indicator places the RSI Flow alongside price and the Bollinger Band structure, allowing momentum, volatility, and price action to be evaluated together on a single chart.
How It Works
The RSI Flow is centered around the Bollinger Band basis:
RSI 50 aligns with the Bollinger Band basis.
The upper RSI threshold, set to 70 by default, aligns with the primary Upper Band.
The lower RSI threshold, set to 30 by default, aligns with the primary Lower Band.
RSI values beyond the selected thresholds extend into the outer momentum and volatility zones.
The yellow RSI Flow line represents projected RSI momentum. The white RSI Flow-Base line applies EMA smoothing to the projected RSI Flow, making momentum shifts and potential crosses easier to identify.
Bollinger Band Settings
The Bollinger Band system includes adjustable:
Length
Source
Basis moving-average type
Standard-deviation multiplier
Extended-band multiplier
Extended-band visibility
Supported basis moving averages include:
SMA
EMA
SMMA/RMA
WMA
VWMA
The optional Extended Bands highlight areas where momentum and price have moved beyond the primary Bollinger Band range.
RSI Settings
The RSI system includes adjustable:
RSI length
RSI source
Upper RSI threshold
Lower RSI threshold
EMA smoothing length
The default thresholds are 70 and 30, but they can be changed to make the projection more or less sensitive.
Interpretation
When the RSI Flow moves above the basis, momentum is positioned on the bullish side of its range. When it moves below the basis, momentum is positioned on the bearish side.
Movement near or beyond the primary bands indicates that RSI has reached or exceeded its selected upper or lower threshold. The extended zones can help identify stronger momentum expansion, volatility extremes, and possible exhaustion areas.
Crosses between the RSI Flow and its smoothed Flow-Base may help visualize changes in momentum direction. These signals should be evaluated alongside market structure, trend, volatility, and other forms of confirmation.
RSIBB does not provide automatic trade entries or guarantee reversals at the bands. It is designed as a visual analysis tool that places RSI momentum and Bollinger Band behavior into one unified price-chart display.
This indicator is intended for informational and educational purposes only and does not constitute financial advice. Indicator

Kinetic Slippage Index (KSI)//@version=6
indicator("켈트너채널 50/2.8 다음봉 시가 알람", overlay=true)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 설정
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
kcLength = input.int(50, "켈트너채널 기간", minval=1)
kcMultiple = input.float(2.8, "ATR 배수", minval=0.1, step=0.1)
showSignal = input.bool(true, "차트에 신호 표시")
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 켈트너채널 계산
// 중심선: EMA 50
// 채널 폭: ATR 50 × 2.8
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
basis = ta.ema(close, kcLength)
atrValue = ta.atr(kcLength)
upperBand = basis + atrValue * kcMultiple
lowerBand = basis - atrValue * kcMultiple
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 조건봉 판정
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 숏 조건봉
// 1. 고가가 상단선 터치
// 2. 음봉
// 3. 시가와 종가가 모두 상단선 아래
shortSetup =
high >= upperBand and
close < open and
open < upperBand and
close < upperBand
// 롱 조건봉
// 1. 저가가 하단선 터치
// 2. 양봉
// 3. 시가와 종가가 모두 하단선 위
longSetup =
low <= lowerBand and
close > open and
open > lowerBand and
close > lowerBand
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 조건봉 다음 봉이 시작될 때 알람
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
shortAlert = barstate.isnew and shortSetup
longAlert = barstate.isnew and longSetup
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 채널 표시
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
basisPlot = plot(basis, "중심선 EMA 50", color=color.orange)
upperPlot = plot(upperBand, "켈트너 상단선", color=color.red)
lowerPlot = plot(lowerBand, "켈트너 하단선", color=color.blue)
fill(upperPlot, lowerPlot, color=color.new(color.gray, 92))
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 신호 표시
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
plotshape(
showSignal and shortAlert,
title="숏 알람",
style=shape.labeldown,
location=location.abovebar,
color=color.red,
text="SHORT",
textcolor=color.white,
size=size.small
)
plotshape(
showSignal and longAlert,
title="롱 알람",
style=shape.labelup,
location=location.belowbar,
color=color.green,
text="LONG",
textcolor=color.white,
size=size.small
)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// PulseWire 알람 조건
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
alertcondition(
shortAlert,
title="켈트너 숏 알람",
message="SHORT|{{ticker}}|{{interval}}|price={{open}}"
)
alertcondition(
longAlert,
title="켈트너 롱 알람",
message="LONG|{{ticker}}|{{interval}}|price={{open}}"
) Indicator

Indicator

Indicator
