Strategy

Asian Range Liquidity Sweep - Kill Zone ReversalASIAN RANGE LIQUIDITY SWEEP — the complete ICT Asian Range liquidity model in one indicator
The Asia session builds a small, quiet range. London opens, runs the stops sitting above or below that range, and then walks the price the other way. That single move is one of the most repeatable things in FX, and this indicator is the full rule set for it: the range, the liquidity raid, the higher-timeframe point of interest that makes the raid tradeable, the entry, the stop, the targets — and, just as important, the days on which the raid will NOT happen.
Everything is drawn in New York time, the way the model is defined.
━━━ WHAT IT DOES ━━━
① ASIAN RANGE (20:00 – 00:00 New York)
A time based range, not a structural one. The box, its high, its low and its 50 % are projected forward into the whole trading day. The high is buy side liquidity, the low is sell side liquidity. Direction is mechanical and never inverts: above the range this model only sells, below the range it only buys.
② HIGHER TIMEFRAME POI ENGINE — the filter that decides everything
A raid of the Asian high on its own is, most of the time, a trap. The raid only becomes high probability when it lands inside a higher-timeframe point of interest. The indicator scans three timeframes at once (15m / 1h / 4h by default) for
· Fair Value Gaps
· Order Blocks
· Breaker Blocks (a demand block that price closed through and that now acts as resistance)
· Inverse Fair Value Gaps (a bullish gap that got closed through and flipped bearish)
Every zone is anchored to the exact candles that built it, is extended while it is alive, and is dropped once it is used up or once it sits too far from the daily range to matter. On top of that, the higher-timeframe structure itself has to agree: bearish structure for shorts, bullish for longs.
③ LONDON KILL ZONE (02:00 – 05:00, optional 01:30 start) — Trade 1
Between those hours the indicator waits for price to raid the Asian high (or low) INTO one of those zones. A raid is not even accepted as valid until price has traded back into a fair value gap. Then it waits for a lower-timeframe confirmation and enters at a point of interest — never at market:
· MSS + FVG — market structure shift, entry on the retracement into the gap
· CISD — change in state of delivery, entry back at the CISD level itself
· FVG tap — proximal edge on small gaps, 50 % on big ones
· HIDDEN ORDER BLOCK — the opposite-colour candle trapped between two same-direction fair value gaps. The block almost nobody marks, and the sharpest entry in the whole model
That list is a risk ladder: 1m MSS+FVG is the most aggressive and pays the most, 15m FVG is the safest, wins most often and pays the least. Pick the timeframe you actually want to trade and run the indicator there.
Stop goes on the protective structure that belongs to the entry zone. Target 1 is always the opposite side of the Asian range. Target 2 extends to the next inducement swing — the draw for the day.
④ NEW YORK KILL ZONE (07:00 – 10:00) — Trade 2, the continuation
When the London raid then breaks the OPPOSITE side of the Asian range with displacement, the London extreme is very likely the high or the low of the day. The indicator draws the optimal trade entry fibonacci over that impulse — 0.5 / 0.618 / 0.705 / 0.79 — and takes the continuation from the retracement into it, with the stop beyond 0.79 or 1.0. The setup is strongest when the origin zone was a 4h zone, because the whole day is then a 4h market-maker model running internal to external. If the draw on liquidity was already reached before New York opens, the day is flagged as low probability and skipped.
⑤ THE NO-SWEEP FILTERS — the part almost nobody explains
Two situations mean the raid you are waiting for will never come:
· HTF POI ALREADY TAPPED IN ASIA — price worked into the zone during the Asian session and then broke structure against the range. The Asian high is now protected. The indicator says so on the chart and points you at the fallbacks instead: the 50 % of the range, an internal range high (trend line liquidity), or a fair value gap built inside the Asian session.
· STRONG HIGH / STRONG LOW INSIDE THE RANGE — a sweep immediately followed by a break of structure. That extreme is protected. What looks like equal highs later on is a rejection-block reversal, not a raid. Wait for the sweep and you miss the trade.
⑥ NEWS FILTER
High-impact US news in the New York session turns London into a range or a one-way run with no reversal. Pine cannot read a news feed, so paste the dates and those days are skipped.
━━━ WHY EVERY SIGNAL EXPLAINS ITSELF ━━━
Hover any signal pill and you get the full reasoning, not a label:
the range and its size, the exact price the liquidity was raided at, which point of interest it landed in, what the higher timeframe structure was doing, which confirmation fired, whether the raid was validated by a fair value gap, plus entry, stop, both targets, risk in pips, reward in pips and the R multiple.
Setups that were found but rejected are explained too. A "NO TRADE" tag tells you the raid, the zone and the confirmation were all there but the reward did not pay for the stop — so you learn the filter instead of wondering why nothing fired.
Every zone, every structure event, the range lines, the OTE levels and both education cards carry the same kind of tooltip. There is a HOW TO READ THIS card and an honest BEFORE YOU TRADE THIS card on the chart.
━━━ COCKPIT PANEL ━━━
Live session state, symbol, chart timeframe, higher-timeframe bias, the full Asian range with a PROTECTED / OPEN flag on each side, an eight-step checklist that fills in as the setup builds, the open position with stop and target, a large status line, a rough win / loss / break-even tracker and the timestamp of the last signal.
━━━ ALERTS AND AUTOMATION ━━━
Every event fires a clean JSON payload ready for a webhook — entry, stop, both targets, the range boundaries, the point of interest that produced the signal, symbol, exchange, timeframe, volume and an optional account field. Events: ENTRY, TP1, SL, BE, SWEEP, RANGE. Five plain-language alertconditions are included as well for anybody who just wants a notification.
━━━ SETTINGS WORTH KNOWING ━━━
· Sessions are fully configurable if your broker feed needs a different reference
· Turn individual POI types and POI timeframes on and off
· Choose one confirmation model or let it take the first valid trigger
· Four stop modes, two-target management, break-even at a chosen R
· Full chart theme with navy background, mint / red candles and session shading — or switch it off and keep your own
━━━ HONEST NOTES ━━━
This model is mechanical up to the trigger. Direction is fixed and never inverts, the windows are fixed, the filters are fixed — but the final judgement, is this really the high of the session, stays discretionary. Anybody telling you a setup is 100 % mechanical is selling you something.
Expect zero to four setups a day across two pairs, roughly 20 pips average per trade, and losing days. Judge it weekly and monthly, never daily. The safest entry model fires rarely by design; the aggressive ones fire more and stop out more.
The win / loss counter in the panel is a rough on-chart tracker that assumes a fill at the marked price and resolves target before stop within the same bar. It is not a backtest and it is not a performance claim.
This indicator is a study tool. It is not financial advice.
━━━ CREDIT ━━━
The rule set follows the well-known ICT Asian-sweep model as it is taught publicly in the ICT community. The implementation, the point-of-interest engine, the no-sweep filters, the panel and the design are original work.
Open source — read it, change it, learn from it.
WHY THESE PARTS BELONG TOGETHER
The session range, the higher-timeframe point of interest and the lower-timeframe confirmation form
a single filter chain, and the model does not work with any link missing. The range supplies the
liquidity pool that is going to be raided, the higher-timeframe zone decides whether that raid is a
reversal or a trap, and the lower-timeframe trigger decides when. A raid without a zone is noise,
a zone without a raid has nothing to react to, and both without a trigger have no entry.
Indicator

Market Profile VPOC Breakout - Imbalance SignalsA breakout setup does not fail because the setup is bad. It fails because it was taken in the wrong market phase. Roughly 70 % of the time price is INSIDE the higher-timeframe balance — inside fair value — and there a breakout has almost no edge. In the remaining ~30 %, when the market is OUT OF BALANCE, the identical trigger becomes one of the highest-probability trades there is. That combination shows up about ONCE PER DAY.
Market Profile VPOC Breakout automates that location-first workflow end to end: weekly and daily volume/TPO profiles, the value areas, the VPOC sequence, the transferred prior-day value-area edge, single prints, the P / b micro-profile proof, the entry trigger, the risk model and ready-to-use webhook JSON — all on one chart, with an explanation attached to every single object.
═══════════════════════════════
THE 7 CONFIRMATIONS
═══════════════════════════════
The panel walks you through them live, top to bottom, and nothing below step 1 matters while the market is in balance.
① WEEKLY LOCATION — the previous week's value area is the equilibrium. Price inside it = the 70 % phase → stand down. Price above VAH or below VAL = imbalance → hunt. The shaded zone on the chart is that balance; the background wash tells you at a glance which phase you are in (mint = imbalance up, red = imbalance down, gold = balance).
② EQUILIBRIUM TEST + REJECTION — the week opened outside the balance, price came back to TEST the weekly value area and was aggressively traded away from it again. That rejection is the proof that the market no longer wants to be in equilibrium.
③ TREND OF EQUILIBRIUM — the sequence of daily VPOCs. Rising VPOCs mean fair value itself is migrating up: the distribution of the participants' equilibrium is trending, which is exactly what a fast trade WITH the trend needs. Flat or overlapping VPOCs = balance = no trade. Drawn as a staircase over the session VPOCs.
④ PRIOR-DAY VALUE AREA BREAK — the previous session's value-area edge is transferred onto the execution timeframe as a thick green line. Price has to ACCELERATE through it, not drift.
⑤ SINGLE PRINTS — the indicator reads the running session's TPO grid and counts price rows that only ONE bar ever touched. Those rows are marked as a cyan SINGLE PRINT zone: the market moved so fast that no business was done there = aggressive buyers or sellers, not passive rotation.
⑥ P / b MICRO SHAPE — the micro profile of impulse + the small balance that forms on it is measured. POC in the upper part = P (aggressive buyers shifting equilibrium up) → long. POC in the lower part = b (sellers shifting it down) → short. A symmetric D is skipped. This is the P/b/D profile-shape logic used by two-time World Cup Championship of Futures Trading winner Patrick Nill.
⑦ TRIGGER — two variants, both switchable:
• BREAK-IN — price dips back into the P/b balance and is instantly bought / sold again (the aggressive, earlier entry, trend-continuing).
• BREAKOUT — a CLOSE beyond the balance edge with a higher (long) or lower (short) close. Never a wick.
═══════════════════════════════
RISK MODEL
═══════════════════════════════
Stop behind the structural invalidation (micro-balance edge, impulse origin or the reference level) plus an ATR buffer. TP1 in R multiples moves the stop to break-even, TP2 lets the runner work. And the rule that keeps this model alive: a TIME STOP. If the move does not run within N bars, get out — a failing breakout reverses just as fast as it was supposed to run. Risk and reward are drawn as blocks so the geometry is readable at a glance. One signal per session by default, because the model only exists about once a day.
═══════════════════════════════
WHAT IS ON THE CHART
═══════════════════════════════
• Session volume/TPO profiles with value area, VPOC and shape letter (P / b / D)
• Naked VPOC rays that keep running right as magnets
• Weekly profile + the prior-week balance zone projected into the current week
• The thick green transferred value-area edge with its own explanation
• Daily VPOC staircase and the imbalance gauge in the panel
• Single-print zones, micro-balance boxes with the big P / b letter
• BUY / SELL pills, the full numbered reason stack printed next to the signal, entry / SL / TP1 / TP2 rails, risk and reward blocks, TP / SL / BE / TIME exit tags
• A permanent BEGINNER CARD on the chart plus a HOW TO READ manual — every pill, zone, rail, letter and panel row also has its own hover explanation, so nothing on this chart is unexplained
• Two colour modes: Design (navy, mint / cyan / gold) or Original TPO (the classic grey market-profile look with red VPOC rays and a white profile curve)
═══════════════════════════════
AUTOMATION
═══════════════════════════════
Create ONE alert with the condition "Any alert() function call" and paste your webhook URL. Every BUY, SELL, TP1_HIT, TP2_HIT, SL_HIT, BE_EXIT, TIME_STOP and ARMED event posts ready-to-use JSON containing id, symbol, action, setup, shape, qty, price, entry, sl, tp1, tp2, pdvah, pdval, timeframe and time — connect it to any bridge or bot without touching the code. Separate alertconditions for BUY, SELL and "any signal" are also available.
═══════════════════════════════
HOW TO USE IT
═══════════════════════════════
Built for an intraday execution timeframe: 1m to 15m, exactly like the original workflow (locate on the weekly and daily profiles, execute on a 1-minute chart). Index futures and index CFDs are the natural home (NQ, ES, DAX, Nikkei), but the profile engine derives its bin size from the average daily range, so gold, FX and crypto work out of the box. For index futures switch on "cash session only" and set the exchange session so the overnight trade does not smear the profiles.
Every input is documented with a tooltip that explains what it does and why it exists. Start with the defaults, then loosen step 2 or step 3 if you want more signals — and be aware that every filter you switch off moves you back towards the 70 % phase where this trigger simply does not pay.
═══════════════════════════════
NOTES
═══════════════════════════════
The entry logic is mechanical and reproducible. Stop distances, targets and the time stop are parameters, not gospel: size them to the instrument you trade. Profiles are built from the bars of the chart you are on, so a finer timeframe gives a finer profile. Hit rates quoted in the educational material behind this model refer to the full workflow including discretionary session context — treat the signals as a structured, disciplined framework, not a guarantee, and always validate on your own data before risking capital.
Open source. Feedback and improvement ideas are welcome.
WHY THESE PARTS BELONG TOGETHER
The point of control and the breakout trigger are combined because a breakout setup does not fail
because the setup is bad, it fails because it was taken in the wrong market phase. The VPOC locates
that phase: a break away from a freshly built point of control is a different trade from a break
back into an old one. The imbalance measurement is the third piece - it tells you whether the move
away from the VPOC was one-sided enough to be worth following.
Indicator

Volume Profile P b D Shapes - Day PlaybookVOLUME PROFILE P b D SHAPES reads the market's body language: every trading day the volume profile prints a LETTER — P, b or D — and that letter tells you who is in control and exactly how to trade the next session. This indicator automates the complete PbD method: it builds every day's volume profile, classifies the shape, draws the levels, prints the playbook on your chart and fires webhook-ready JSON signals.
■ THE THREE LETTERS
P-SHAPE (bullish continuation) — fast impulse UP, then balance ON TOP. The thin tail below is single prints: nobody did business there. Buyers feel like winners, dips are for buying.
b-SHAPE (bearish continuation) — fast impulse DOWN, then balance AT THE BOTTOM. The thin tail above marks the drop. Sellers are in control, rallies are for selling.
D-SHAPE (balance day) — a symmetric bell curve with a fat POC in the middle. Buyers AND sellers are happy, fair price has been found. The next day usually stays range-bound: fade the edges.
■ THE AUTOMATED PLAYBOOK (7 SETUPS)
P behind you:
- PLAN A — CONTINUATION: price dips into yesterday's value area, the dip HOLDS (no low break), a reclaim candle closes back at/above the POC -> BUY. Targets: previous high, then a measured balance move.
- PLAN B — FAILURE = FULL TRAVERSE: 2+ candle CLOSES below the VAL (a wick is NOT enough) plus a volume spike = acceptance below balance. The shape has failed and price tends to walk the WHOLE way back to the impulse origin -> SELL.
b behind you: the exact mirror — sell failed rallies into value (Plan A), or buy the failure traverse when 2+ closes above VAH with volume appear (Plan B).
D behind you + today opens INSIDE the D:
- Range rules. Short the Value Area High rejection, long the Value Area Low rejection, target the POC first and the opposite edge second. The FIRST touch gives the best response — the fade counter limits how often each edge may be traded.
■ WHAT YOU SEE ON THE CHART
- A volume histogram for every completed day, colored by its letter (mint P / red b / gold D), POC row highlighted
- A big P / b / D letter above each day — hover it for the full lesson behind the shape
- Yesterday's VAH / VAL / POC projected into today as live rails with explanatory tooltips
- A bias note at every day open: which letter is behind you, where today opened, and both plans
- Two-line BUY/SELL pills that explain WHY the signal fired (hover for the complete reasoning + Entry/SL/TP1/TP2)
- Entry / SL / TP1 / TP2 lines, TP1 -> break-even management, TP2 runner
■ AUTOMATION / WEBHOOK
Create one alert with condition "Any alert() function call" and paste your webhook URL. Every BUY/SELL/TP1/TP2/SL/BE event sends ready-to-use JSON: id, symbol, action, setup, shape, entry, sl, tp1, tp2, timeframe, time. There is also an optional end-of-day SHAPE alert so your bot can pick tomorrow's playbook automatically.
■ HOW TO USE
1) Apply to an intraday chart (5m - 1h; crypto, indices, FX, stocks). 2) Let at least one full day close so the first letter prints. 3) Read the panel: previous-day letter -> today's bias -> checklist. 4) Take the pills or automate them via webhook. The first day on the chart only collects data — letters start from day two.
Educational note: shapes give a BIAS, not a guarantee — that is exactly why every setup ships with both Plan A and Plan B. Not financial advice.
WHY THESE PARTS BELONG TOGETHER
The volume profile and the shape classification are inseparable here. The profile alone tells you
where volume accumulated; the classification into P, b and D shapes is what turns that distribution
into a statement about who is trapped and where the day is likely to go. A P shape and a b shape can
contain identical volume and mean the opposite thing - which is only visible once the profile is
read as a letter rather than as a histogram.
Indicator

Impulse Box Breakout Engine - Origin Range Buy Sell SignalsIMPULSE BOX BREAKOUT ENGINE — a complete breakout trading system in one indicator: self-adjusting impulse boxes with entry arrow, stop, two fixed targets, a pink trailing-stop dot line and webhook automation. Rebuilt 1:1 from a professional German "Impulsbox" breakout engine (72-minute source webinar, analyzed frame by frame) and redesigned as a modern cockpit indicator.
█ WHAT IT DOES
The engine meters the market N bars back: the range the market traded in PLUS the length of every single bar inside it (compression check). When a STRONG impulse bar closes outside that range, the IMPULSE BOX appears over the consolidation:
• CYAN BOX = long breakout — big entry arrow inside the box
• GOLD BOX = short breakout — mirrored to the downside
• Initial stop = the far side of the box (bottom for longs, top for shorts)
• TARGET 1 + TARGET 2 (violet marks) are projected from the box height the moment the box appears — FIXED, never repainted, never moved afterwards
• PINK DOTS = the trailing stop. It starts at the box edge and follows price with ~30% of the move as breathing room. It only ratchets in your favor — never back
• At Target 1 the stop jumps to break-even or better. After Target 2 the system follows the source rule: "never leave the market voluntarily — let the stop take you out"
█ SELF-OPTIMIZING ENGINE
Markets are sideways ~80% of the time — rigid breakout parameters fail there. This engine adapts automatically:
• TREND regime (ADX based): short lookback, wider targets (+35% / +100% of box height)
• RANGE regime: longer lookback, stricter impulse filter, closer targets (+25% / +75%)
• AUTO-RECALIBRATION: after a false breakout the impulse threshold is raised temporarily — fewer but cleaner boxes. A winning box resets it
• The cockpit shows the current regime, calibration and effective parameters at all times
█ HONEST LIVE STATISTICS
The cockpit counts every box on your chart and shows the real Target-1 and Target-2 hit rates — no marketing numbers, live counted on your symbol and timeframe. On XAUUSD 15m the default engine printed 500+ boxes with a T1 hit rate above 90% at the time of publishing (past performance never guarantees future results).
█ DIRECTION BIAS FILTER
The #1 rule of the source system: trade boxes only in the direction of the higher-level move. The indicator automates this via EMA-200 + Supertrend bias. Choose: Off / Mark counter-bias boxes (dimmed + warning) / Filter them out completely. Supertrend companion arrows are included as extra confluence.
█ EVERY SIGNAL EXPLAINS ITSELF
Hover any BUY/SELL pill: how many bars of consolidation, how strong the impulse bar was (x average bar), which range edge broke, which regime the engine was in, whether the box agrees with the bias — plus entry, stop and both targets. No black box.
█ WEBHOOK AUTOMATION (BOTS / BRIDGES)
Create ONE alert with "Any alert() function call" and your webhook URL. The indicator fires ready-to-use JSON on BUY, SELL, T1_HIT, T2_HIT, TRAIL_EXIT and SL_HIT — including entry, stop, both targets, box levels, regime and live hit rates. Works with any webhook bridge, bot or auto-trader.
█ HOW TO USE
1) Add to chart — works on ALL symbols and ALL timeframes (crypto, gold, forex, indices, stocks)
2) Use standard candles or OHLC bars (Heikin-Ashi smoothing swallows breakouts — a key finding of the source webinar)
3) Wait for a box + arrow, entry at the breakout close, stop at the far box edge
4) Take partial profit at Target 1, let the rest run with the pink trailing dots
5) Automate via webhook JSON if you want
█ SETTINGS
Everything is configurable: manual mode with fixed lookback/impulse strength, target distances, trailing gap, exit-at-T2 mode, bias filter mode, Supertrend, chart theme, cockpit position and all alert toggles.
Educational tool only — not financial advice. Trading involves substantial risk. Always test on a demo account first and never risk money you cannot afford to lose.
WHY THESE PARTS BELONG TOGETHER
The impulse detection and the box are one mechanism, not two features. The impulse identifies the
candle sequence that moved the market; the box freezes the range that impulse came out of, because
that range is the level the market has to defend for the move to continue. Detecting impulses
without marking their origin gives you a signal with no invalidation, and drawing boxes without an
impulse gives you consolidation zones with no direction.
Indicator

MT5 Webhook Alert Template JSON alerts for any bridge A ready-to-use alert template that fires webhook-compatible JSON messages on
EMA-cross + RSI-filtered signals. Built to send PulseWire alerts straight to
MetaTrader 5 through any webhook bridge.
HOW TO USE (2 minutes):
1. Add the indicator to your chart.
2. Create an alert (Alt+A) on this indicator, condition "Any alert() function
call", and paste your bridge's webhook URL into the Webhook URL field.
3. Done — the alert message is already valid JSON, don't edit it.
MESSAGE FORMAT (works with most MT5 bridges):
{"action":"buy","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}
{"action":"sell","symbol":"EURUSD","lot":0.01,"sl":50,"tp":100}
- action: buy | sell | close | closeall
- sl / tp: distance in points (optional, set to 0 to omit)
- Symbol override input if your broker uses suffixes (e.g. EURUSD.pro)
Alerts evaluate on bar close (no intrabar repainting). The indicator is also
useful on its own as a visual signal — no bridge required.
DEFAULT SETTINGS WARNING:
The shipped defaults (Fast EMA 1 / Slow EMA 3 / RSI 2) are an intentionally
fast demo configuration so you can see signals right away. They will fire
VERY often, including many low-quality crosses. Signals only confirm on bar
close, so a cross can still appear and disappear intrabar before confirming.
Tune Fast/Slow EMA and RSI length to your own strategy and symbol before
using it live — treat the defaults as a starting point, not a ready system. Indicator

StocksDeveloperAlertsLibrary "StocksDeveloperAlerts"
AutoTrader Web alert builder by Stocks Developer — turn PulseWire alerts into real broker orders across many accounts and brokers. Ready-made functions for single orders, options the easy way, 8 option structures (straddle/strangle/spreads/iron condor/iron fly), custom multi-leg, account or group targeting, and your own risk limits. No alert-text typing. stocksdeveloper.in
order(symbol, exchange, producttype, tradetype, account, group, lots, quantity, ordertype, price, triggerprice, validity, amo, optiontype, strike, expiry, spothint, usespot, onslicefailure, risk, extra)
Build an alert message for a single order (stock, futures or one option leg). This is the full builder; equity() and option() are shorter wrappers over it. Set exactly one of account/group and exactly one of lots/quantity. Add optiontype to make it an option order.
Parameters:
symbol (string) : (series string) Broker-independent symbol, e.g. "NIFTY", "BANKNIFTY", "SBIN". For options, pass the underlier (e.g. "NIFTY"), not a full contract.
exchange (string) : (series string) Exchange code, e.g. "NSE"/"BSE" for stocks, "NFO" for options and futures.
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
tradetype (string) : (series string) BUY or SELL.
account (string) : (series string) Place in this single account. Set this OR group.
group (string) : (series string) Place in every live account in this group. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
ordertype (string) : (series string) MARKET (default), LIMIT, STOP_LOSS or SL_MARKET.
price (float) : (series float) Limit price (required for LIMIT).
triggerprice (float) : (series float) Trigger price (for stop-loss orders).
validity (string) : (series string) DAY (default) or IOC.
amo (bool) : (series bool) true for an after-market order.
optiontype (string) : (series string) CE for a call, PE for a put. Adding this makes it an option order.
strike (string) : (series string) ATM (default), ATM+1 / ATM-2, OTM / OTM2, ITM / ITM2, or an exact strike like "24500". Requires optiontype.
expiry (string) : (series string) weekly (default), next, monthly, or an exact date like "10-JUL-2026". Requires optiontype.
spothint (string) : (series string) Advanced: a spot price to help option-strike selection.
usespot (bool) : (series bool) Advanced: use the spot hint for strike selection.
onslicefailure (string) : (series string) Advanced: continue (default), alert or retry, if a large order that was auto-split has a slice fail.
risk (string) : (series string) A risk block from risk() — for example risk=atw.risk(maxloss=5000).
extra (string) : (series string) Advanced: any extra "key=value" lines to pass through unchanged (one per line).
Returns: (series string) The ready-to-send alert message.
equity(symbol, exchange, producttype, tradetype, account, group, lots, quantity, ordertype, price, triggerprice, validity, amo, risk, extra)
Build an alert for a single stock or futures order (no option fields). Set exactly one of account/group and exactly one of lots/quantity.
Parameters:
symbol (string) : (series string) Broker-independent symbol, e.g. "SBIN".
exchange (string) : (series string) Exchange code, e.g. "NSE" or "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
tradetype (string) : (series string) BUY or SELL.
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
ordertype (string) : (series string) MARKET (default), LIMIT, STOP_LOSS or SL_MARKET.
price (float) : (series float) Limit price (required for LIMIT).
triggerprice (float) : (series float) Trigger price (for stop-loss orders).
validity (string) : (series string) DAY (default) or IOC.
amo (bool) : (series bool) true for an after-market order.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
option(symbol, exchange, producttype, tradetype, optiontype, strike, expiry, account, group, lots, quantity, ordertype, price, triggerprice, validity, amo, spothint, usespot, risk, extra)
Build an option order the easy way — give the underlier and pick the strike + expiry; no need to type the full option symbol. Set exactly one of account/group and exactly one of lots/quantity.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY", "BANKNIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
tradetype (string) : (series string) BUY or SELL.
optiontype (string) : (series string) CE for a call, PE for a put.
strike (string) : (series string) ATM (default), ATM+1 / ATM-2, OTM / OTM2, ITM / ITM2, or an exact strike like "24500".
expiry (string) : (series string) weekly (default), next, monthly, or an exact date like "10-JUL-2026".
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
ordertype (string) : (series string) MARKET (default), LIMIT, STOP_LOSS or SL_MARKET.
price (float) : (series float) Limit price (required for LIMIT).
triggerprice (float) : (series float) Trigger price (for stop-loss orders).
validity (string) : (series string) DAY (default) or IOC.
amo (bool) : (series bool) true for an after-market order.
spothint (string) : (series string) Advanced: a spot price to help strike selection.
usespot (bool) : (series bool) Advanced: use the spot hint for strike selection.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
straddle(symbol, exchange, producttype, account, group, lots, quantity, expiry, direction, ordertype, price, onlegfailure, risk, extra)
Straddle — buy (or sell) a call and a put at the money. direction "BUY" = long straddle, "SELL" = short straddle.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
expiry (string) : (series string) weekly (default), next, monthly, or an exact date.
direction (string) : (series string) BUY (default) builds the structure as named; SELL flips every leg.
ordertype (string) : (series string) MARKET (default) or LIMIT.
price (float) : (series float) Limit price (required for LIMIT).
onlegfailure (string) : (series string) alert (default), cancel or continue, if one leg cannot be placed.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
strangle(symbol, exchange, producttype, account, group, lots, quantity, width, expiry, direction, ordertype, price, onlegfailure, risk, extra)
Strangle — buy (or sell) an out-of-the-money call and put, each 'width' strikes out. direction "BUY" = long strangle, "SELL" = short strangle.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
width (int) : (series int) How far out of the money the legs sit, in strike steps (default 2).
expiry (string) : (series string) weekly (default), next, monthly, or an exact date.
direction (string) : (series string) BUY (default) or SELL (flips every leg).
ordertype (string) : (series string) MARKET (default) or LIMIT.
price (float) : (series float) Limit price (required for LIMIT).
onlegfailure (string) : (series string) alert (default), cancel or continue.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
bullCall(symbol, exchange, producttype, account, group, lots, quantity, width, expiry, direction, ordertype, price, onlegfailure, risk, extra)
Bull call spread — buy a call at the money and sell a call 'width' strikes out. Use direction "SELL" to reverse.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
width (int) : (series int) Distance between the two strikes, in strike steps (default 2).
expiry (string) : (series string) weekly (default), next, monthly, or an exact date.
direction (string) : (series string) BUY (default) or SELL (flips every leg).
ordertype (string) : (series string) MARKET (default) or LIMIT.
price (float) : (series float) Limit price (required for LIMIT).
onlegfailure (string) : (series string) alert (default), cancel or continue.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
bearPut(symbol, exchange, producttype, account, group, lots, quantity, width, expiry, direction, ordertype, price, onlegfailure, risk, extra)
Bear put spread — buy a put at the money and sell a put 'width' strikes out. Use direction "SELL" to reverse.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
width (int) : (series int) Distance between the two strikes, in strike steps (default 2).
expiry (string) : (series string) weekly (default), next, monthly, or an exact date.
direction (string) : (series string) BUY (default) or SELL (flips every leg).
ordertype (string) : (series string) MARKET (default) or LIMIT.
price (float) : (series float) Limit price (required for LIMIT).
onlegfailure (string) : (series string) alert (default), cancel or continue.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
bullPut(symbol, exchange, producttype, account, group, lots, quantity, width, expiry, direction, ordertype, price, onlegfailure, risk, extra)
Bull put spread (credit) — sell a put at the money and buy a put 'width' strikes out. Use direction "SELL" to reverse.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
width (int) : (series int) Distance between the two strikes, in strike steps (default 2).
expiry (string) : (series string) weekly (default), next, monthly, or an exact date.
direction (string) : (series string) BUY (default) or SELL (flips every leg).
ordertype (string) : (series string) MARKET (default) or LIMIT.
price (float) : (series float) Limit price (required for LIMIT).
onlegfailure (string) : (series string) alert (default), cancel or continue.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
bearCall(symbol, exchange, producttype, account, group, lots, quantity, width, expiry, direction, ordertype, price, onlegfailure, risk, extra)
Bear call spread (credit) — sell a call at the money and buy a call 'width' strikes out. Use direction "SELL" to reverse.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
width (int) : (series int) Distance between the two strikes, in strike steps (default 2).
expiry (string) : (series string) weekly (default), next, monthly, or an exact date.
direction (string) : (series string) BUY (default) or SELL (flips every leg).
ordertype (string) : (series string) MARKET (default) or LIMIT.
price (float) : (series float) Limit price (required for LIMIT).
onlegfailure (string) : (series string) alert (default), cancel or continue.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
ironCondor(symbol, exchange, producttype, account, group, lots, quantity, width, wing, expiry, direction, ordertype, price, onlegfailure, risk, extra)
Iron condor — sell a call and a put 'width' strikes out, and buy a call and a put 'width'+'wing' strikes out as protection. direction "BUY" builds this credit condor; "SELL" reverses it.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
width (int) : (series int) How far out the sold legs sit, in strike steps (default 2).
wing (int) : (series int) Extra distance out to the protective legs, in strike steps (defaults to width).
expiry (string) : (series string) weekly (default), next, monthly, or an exact date.
direction (string) : (series string) BUY (default) or SELL (flips every leg).
ordertype (string) : (series string) MARKET (default) or LIMIT.
price (float) : (series float) Limit price (required for LIMIT).
onlegfailure (string) : (series string) alert (default), cancel or continue.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
ironFly(symbol, exchange, producttype, account, group, lots, quantity, wing, expiry, direction, ordertype, price, onlegfailure, risk, extra)
Iron fly — sell a call and a put at the money, and buy a call and a put 'wing' strikes out as protection. direction "BUY" builds this credit fly; "SELL" reverses it.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
wing (int) : (series int) How far out the protective legs sit, in strike steps (default 2).
expiry (string) : (series string) weekly (default), next, monthly, or an exact date.
direction (string) : (series string) BUY (default) or SELL (flips every leg).
ordertype (string) : (series string) MARKET (default) or LIMIT.
price (float) : (series float) Limit price (required for LIMIT).
onlegfailure (string) : (series string) alert (default), cancel or continue.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
leg(optiontype, strike, tradetype, multiplier)
Build one option leg string for use with multiLeg(), e.g. atw.leg("CE", "ATM+2", "SELL", 2) -> "CE ATM+2 SELL x2".
Parameters:
optiontype (string) : (series string) CE for a call, PE for a put.
strike (string) : (series string) ATM, ATM+2, OTM2, ITM1, or an exact strike like "24500".
tradetype (string) : (series string) BUY or SELL for this leg.
multiplier (int) : (series int) Size multiplier for this leg (default 1).
Returns: (series string) The leg descriptor.
multiLeg(symbol, exchange, producttype, legs, account, group, lots, quantity, expiry, ordertype, price, onlegfailure, risk, extra)
Build an alert for a fully custom multi-leg order from a list of legs (1 to 10) made with leg(). Set exactly one of account/group and exactly one of lots/quantity.
Parameters:
symbol (string) : (series string) The underlier, e.g. "NIFTY".
exchange (string) : (series string) Options exchange code, e.g. "NFO".
producttype (string) : (series string) INTRADAY, DELIVERY, NORMAL or MTF.
legs (array) : (array) The legs, e.g. array.from(atw.leg("PE","ATM-2","SELL"), atw.leg("PE","ATM-6","BUY")).
account (string) : (series string) Single account. Set this OR group.
group (string) : (series string) Group of accounts. Set this OR account.
lots (int) : (series int) Number of lots. Set this OR quantity.
quantity (int) : (series int) Exact quantity. Set this OR lots.
expiry (string) : (series string) weekly (default), next, monthly, or an exact date.
ordertype (string) : (series string) MARKET (default) or LIMIT.
price (float) : (series float) Limit price (required for LIMIT).
onlegfailure (string) : (series string) alert (default), cancel or continue.
risk (string) : (series string) A risk block from risk().
extra (string) : (series string) Extra "key=value" lines to pass through unchanged.
Returns: (series string) The ready-to-send alert message.
riskLimits(maxloss, forceexit, entrywindow, blockExpiry)
Build a risk-limits block to attach to any order via risk=. Example: risk=atw.riskLimits(maxloss=5000). These are your own limits; see the Alert Automation guide for exactly how each one behaves.
Parameters:
maxloss (float) : (series float) Maximum day loss for the account, in your account currency.
forceexit (string) : (series string) A square-off time as "HH:mm", e.g. "15:15".
entrywindow (string) : (series string) An allowed entry-time window "HH:mm-HH:mm", e.g. "09:30-14:30".
blockExpiry (bool) : (series bool) Block new entries on the instrument's expiry day.
Returns: (series string) The risk lines, ready to pass as risk=. Library

Fix Webhook Latency & DH-905 Errors (PineScript to Python BridgeIf you are routing PulseWire alerts directly to an Indian broker API (like Dhan or Zerodha) and experiencing execution delays or DH-905 lot size rejections, the flaw is in your routing architecture.
The Problem: Dynamic vs. Static Data
PineScript generates dynamic data. A moving average crossover fires a signal based on a dynamic {{close}} price. However, broker APIs require static Exchange Tokens and rigid SEM_LOT_SIZE multipliers (e.g., Nifty = 65).
If you try to pass quantity: 1 directly to the Dhan API, or if your hardcoded exchange token moves out of the ATM range overnight, the exchange rejects the payload. Furthermore, standard third-party webhook routing adds 1 to 2 seconds of latency, destroying your entry price on fast breakouts.
The Middleware Solution
The PineScript above is Step 1. It formats a clean JSON payload containing the dynamic variables.
Step 2 is interception. You must not send this JSON to the broker. You must send it to a localized Python Flask server hosted on a headless Ubuntu VPS.
On startup, your Python server downloads the NSE Scrip Master directly into a Pandas DataFrame stored in RAM. When this PineScript webhook hits your VPS, the Pandas logic instantly snaps the dynamic {{close}} price to the nearest ATM strike, extracts the exact static Exchange Token, and routes the order to the API.
By removing the third-party webhook bottleneck and relying on RAM-cached token lookups, execution time drops to sub-50ms.
The Open-Source Architecture
I engineered this complete routing logic to eliminate my own Nifty options slippage. I have open-sourced the underlying Python Flask and Pandas routing logic so you can build out the middleware yourself.
Check the GitHub repository for the full Python architecture: github.com Indicator

VoltRouter Webhook BuilderBuild PulseWire alert webhook payloads for VoltRouter — a signal routing service that executes your PulseWire strategy alerts directly at your broker. $0.07/signal, pay-as-you-go, no subscription required .
Supports: market, limit, stop, bracket (TP+SL), trailing stop, FLAT, and cancel-all.
How to use:
1. Sign up at voltrouter.com and connect your broker
2. Import this library in your strategy
3. Paste the output into a PulseWire alert → Webhook URL field
Setup: voltrouter.com
import VoltRouterWebhook as vr
// In your strategy alert message field:
vr.market("MNQM26", "buy", 1, "ibkr", "my_strategy")
vr.bracket("MNQM26", "sell", 1, close + 10, close - 5)
vr.flat("MNQM26") Library

AlphaX News Filter with Webhook AlertsAlphaX News Filter — Pre-Scheduled Economic Event Blocker with Webhook Alerts
Block trading during high-impact news events automatically. Get real-time alerts to any webhook, Telegram bot, or automation service the moment a news window opens or clears.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔍 What This Indicator Does
Pre-schedule up to 4 economic news events (NFP, CPI, FOMC, PCE or any custom label) directly on your chart. Around each event, a configurable block window fires structured JSON alerts and shades your chart red so you never accidentally enter a trade into a volatile news spike.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚡ Key Features
🗓️ Pre-Scheduled Events
Enter the exact date and time of any economic release. Each event has its own enable/disable toggle, custom label, and timestamp. Times display in your chart's local timezone with no UTC confusion.
⏱️ Configurable Block Window
Set a symmetric buffer (5–120 minutes, default 18 min) applied both before and after each event. Covers the pre-release positioning freeze and the post-release volatility tail in one setting.
🔔 Structured JSON Alerts — Webhook Ready
Two alert types fire automatically on state transitions:
Block entered: {"action":"NEWS_BLOCK","mins":18,"event":"NFP"}
Block cleared: {"action":"NEWS_CLEAR"}
These JSON payloads plug directly into 3Commas, Alertatron, WunderTrading, Telegram bots, n8n, Make, Zapier, or any custom webhook endpoint to pause and resume your bots automatically.
📊 Visual Chart Overlays
🔴 Red background shading covers the entire block window on the chart
📍 A dashed vertical line marks the exact moment of each scheduled event
🏷️ A label tag drops from the candle high so you spot events instantly on historical review
🖥️ Live Status Table — Dark Theme, Bottom Right
A persistent HUD shows all 4 events at a glance with label, date/time in chart timezone, and live status:
✅ CLEAR — no news window active
🔴 BLOCKED — inside a news block window
🟡 WAITING — event scheduled, not yet triggered
⚫ OFF — event disabled
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
👥 Who This Is For
🤖 Algo and bot traders — send NEWS_BLOCK to pause strategies, resume on NEWS_CLEAR
📈 Semi-manual traders — visual and alert reminder so you never trade blindly into NFP or CPI
📢 Telegram signal groups — auto-broadcast news warnings to your subscribers
🛡️ Risk managers — enforce a rule-based news blackout across a session
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 How to Use
Add the indicator to any chart and timeframe
Set your block window (minutes before and after each event)
Enter each upcoming news event's date, time, and label in the inputs
Enable or disable individual events with the toggle
Create a PulseWire alert on this indicator and set your webhook URL
The alert message is pre-filled as JSON — point it at your endpoint
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Notes
Supports up to 4 simultaneous events
Alert fires once per bar on state transition — no alert spam
All times render in chart timezone — no manual UTC conversion needed
Compatible with all asset classes: Forex, Futures, Crypto, Indices
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Built for traders who take news risk seriously. Indicator

Bot Webhook v8.4 [SOL]Bot Webhook v8.4 - Optimized Multi-Timeframe Signal Generator
========================================
ENGLISH
========================================
Data-driven signal generation for SOL/USD with timeframe-specific filters (30S-20m), Keltner Squeeze Detection and Volatility Regime Recognition. Optimized from 136 signals + 9406 1m candles.
OVERVIEW
This script is the SOL/USD-specific version of Bot Webhook v8.4. It generates Long and Short signals with a confidence score and sends them as JSON alerts to a webhook endpoint. The symbol "SOLUSD" is hardcoded in the alert - ideal for use with an automated trading bot.
Base: v7.3 TF-specific filters (proven) + v8.0 Keltner/Regime (Squeeze SHORT only)
SIGNAL LOGIC
LONG Signals (v7.3 Base):
- RSI < TF-specific threshold (Oversold)
- Stochastic K < TF-specific threshold
- RSI Slope > TF-specific threshold (Momentum reversal)
- ADX < TF-specific threshold (no excessive counter-trend)
- Proven performance: 68.2% $20-rate, R/R 1.48x
SHORT Signals (v7.3 Base + Keltner Squeeze):
- RSI > TF-specific threshold (Overbought)
- Stochastic K > TF-specific threshold
- RSI Slope < TF-specific threshold (Momentum reversal)
- Squeeze SHORT: Bollinger inside Keltner + bearish momentum
- Proven performance: 53.8% $20-rate, R/R 1.39x (Squeeze)
INDICATORS
- EMA 20/50/200 (Trend detection + filter)
- RSI 14 + RSI Slope (Momentum + direction change)
- Stochastic RSI (Overbought/Oversold conditions)
- MACD 12/26/9 (Momentum confirmation)
- Bollinger Bands 20/2.0 (Volatility + Squeeze Detection)
- Keltner Channel 20/1.5 (Squeeze Detection)
- ADX 14 (Trend strength)
- ATR 14 (Stop Loss / Take Profit calculation)
- Volume SMA 20 (Volume confirmation)
REGIME DETECTION
Trend Regime (EMA-based):
- STRONG_TREND_UP / STRONG_TREND_DOWN
- WEAK_TREND_UP (BLOCKED - 0% success rate!)
- WEAK_TREND_DOWN / NEUTRAL
Volatility Regime (ADX + ATR Percentile):
- TRENDING_HIGH_VOL / TRENDING_LOW_VOL
- SQUEEZE_BUILDING / BREAKOUT_IMMINENT
- RANGING_HIGH_VOL / RANGING_LOW_VOL
- TRANSITIONAL
CONFIDENCE CALCULATION
Base confidence from verified win rates per timeframe (0.72-0.92)
Modifiers:
+ Extreme RSI/StochK values (+0.03 to +0.05)
+ Trending High Vol Regime (+0.04)
- Ranging High Vol Regime (-0.08)
- Squeeze Building (-0.03)
- Counter-trend (-0.10)
- Low Volume (-0.05)
Min. confidence for alert: 70% (adjustable)
STOP LOSS / TAKE PROFIT
Base trades: ATR x 1.5 (SL) / ATR x 2.5 (TP) = R/R 1:1.67
Squeeze trades: ATR x 1.2 (SL) / ATR x 3.0 (TP) = R/R 1:2.5
TIMEFRAMES
Supported: 30S, 45S, 1m-20m (each with individually optimized thresholds)
Best TFs: 30S (47.1%), 45S (34.8%), 12m+ (33%+)
4m: LONG + SHORT disabled (no data)
WEBHOOK ALERT FORMAT (JSON)
{"signal":"long/short", "symbol":"SOLUSD", "timeframe":"...", "price":..., "source":"Bot_Webhook_v84", "confidence":..., "metadata":{"entry":..., "stop_loss":..., "take_profit":..., "atr":..., "adx":..., "rsi":..., "rsi_slope":..., "stoch_k":..., "signal_type":"...", "strategy":"...", "regime":"...", "vol_regime":"...", "expected_wr":"..."}}
SETUP
1. Apply script to SOLUSDT/SOLUSD chart
2. Select desired timeframe (30S-20m)
3. Create alert and enter webhook URL
4. Create a separate alert for each timeframe
Other versions available: ETH, BTC
AUTOMATED TRADING BOT
Want to automate these signals? A fully automated trading bot is available that processes the webhook alerts from this script and executes trades automatically - including risk management, position sizing, regime filtering and smart signal validation.
- Full bot with live trading or paper trading mode
- Processes all signals from this indicator automatically
- Built-in risk management with ATR-based SL/TP
- Multi-timeframe support (30S-20m)
More info: futuresbot.de
Or send me a direct message here on PulseWire!
DISCLAIMER: This strategy is for educational purposes only. Past performance does not guarantee future results. Always use proper risk management.
========================================
DEUTSCH
========================================
Datengetriebene Signalgenerierung fuer SOL/USD mit TF-spezifischen Filtern (30S-20m), Keltner-Squeeze-Detection und Volatility-Regime-Erkennung. Optimiert aus 136 Signalen + 9406 1m-Candles.
UEBERBLICK
Dieses Script ist die SOL/USD-spezifische Version des Bot Webhook v8.4. Es generiert Long- und Short-Signale mit Confidence-Score und sendet diese als JSON-Alert an einen Webhook-Endpunkt. Das Symbol "SOLUSD" ist fest im Alert eingebettet - ideal fuer den Einsatz mit einem automatisierten Trading-Bot.
Basis: v7.3 TF-spezifische Filter (bewaehrt) + v8.0 Keltner/Regime (nur Squeeze SHORT)
TIMEFRAMES
Unterstuetzt: 30S, 45S, 1m-20m (alle mit eigenen optimierten Schwellenwerten)
Beste TFs: 30S (47.1%), 45S (34.8%), 12m+ (33%+)
4m: LONG + SHORT deaktiviert (keine Daten)
SETUP
1. Script auf SOLUSDT/SOLUSD Chart anwenden
2. Gewuenschten Timeframe waehlen (30S-20m)
3. Alert erstellen und Webhook-URL eintragen
4. Fuer jeden Timeframe einen separaten Alert erstellen
Weitere Versionen verfuegbar: ETH, BTC
AUTOMATISIERTER TRADING-BOT
Du moechtest diese Signale automatisieren? Es gibt einen vollautomatischen Trading-Bot, der die Webhook-Alerts dieses Scripts verarbeitet und Trades automatisch ausfuehrt - inklusive Risikomanagement, Positionsgroesse, Regime-Filterung und smarter Signal-Validierung.
- Kompletter Bot mit Live-Trading oder Paper-Trading-Modus
- Verarbeitet alle Signale dieses Indikators automatisch
- Integriertes Risikomanagement mit ATR-basiertem SL/TP
- Multi-Timeframe-Unterstuetzung (30S-20m)
Mehr Infos: futuresbot.de
Oder schreib mir eine persoenliche Nachricht hier auf PulseWire!
HAFTUNGSAUSSCHLUSS: Diese Strategie dient zu Bildungszwecken. Vergangene Performance garantiert keine zukuenftigen Ergebnisse. Nutze stets ein angemessenes Risikomanagement. Indicator

Bot Webhook v8.4 [BTC]Bot Webhook v8.4 - Optimized Multi-Timeframe Signal Generator
========================================
ENGLISH (EN)
========================================
Data-driven signal generation for BTC/USD with timeframe-specific filters (30S-20m), Keltner Squeeze Detection and Volatility Regime Recognition. Optimized from 136 signals + 9406 1m candles.
OVERVIEW
This script is the BTC/USD-specific version of Bot Webhook v8.4. It generates Long and Short signals with a confidence score and sends them as JSON alerts to a webhook endpoint. The symbol "BTCUSD" is hardcoded in the alert - ideal for use with an automated trading bot.
Base: v7.3 TF-specific filters (proven) + v8.0 Keltner/Regime (Squeeze SHORT only)
SIGNAL LOGIC
LONG Signals (v7.3 Base):
- RSI < TF-specific threshold (Oversold)
- Stochastic K < TF-specific threshold
- RSI Slope > TF-specific threshold (Momentum reversal)
- ADX < TF-specific threshold (no excessive counter-trend)
- Proven performance: 68.2% $20-rate, R/R 1.48x
SHORT Signals (v7.3 Base + Keltner Squeeze):
- RSI > TF-specific threshold (Overbought)
- Stochastic K > TF-specific threshold
- RSI Slope < TF-specific threshold (Momentum reversal)
- Squeeze SHORT: Bollinger inside Keltner + bearish momentum
- Proven performance: 53.8% $20-rate, R/R 1.39x (Squeeze)
INDICATORS
- EMA 20/50/200 (Trend detection + filter)
- RSI 14 + RSI Slope (Momentum + direction change)
- Stochastic RSI (Overbought/Oversold conditions)
- MACD 12/26/9 (Momentum confirmation)
- Bollinger Bands 20/2.0 (Volatility + Squeeze Detection)
- Keltner Channel 20/1.5 (Squeeze Detection)
- ADX 14 (Trend strength)
- ATR 14 (Stop Loss / Take Profit calculation)
- Volume SMA 20 (Volume confirmation)
REGIME DETECTION
Trend Regime (EMA-based):
- STRONG_TREND_UP / STRONG_TREND_DOWN
- WEAK_TREND_UP (BLOCKED - 0% success rate!)
- WEAK_TREND_DOWN / NEUTRAL
Volatility Regime (ADX + ATR Percentile):
- TRENDING_HIGH_VOL / TRENDING_LOW_VOL
- SQUEEZE_BUILDING / BREAKOUT_IMMINENT
- RANGING_HIGH_VOL / RANGING_LOW_VOL
- TRANSITIONAL
CONFIDENCE CALCULATION
Base confidence from verified win rates per timeframe (0.72-0.92)
Modifiers:
+ Extreme RSI/StochK values (+0.03 to +0.05)
+ Trending High Vol Regime (+0.04)
- Ranging High Vol Regime (-0.08)
- Squeeze Building (-0.03)
- Counter-trend (-0.10)
- Low Volume (-0.05)
Min. confidence for alert: 70% (adjustable)
STOP LOSS / TAKE PROFIT
Base trades: ATR x 1.5 (SL) / ATR x 2.5 (TP) = R/R 1:1.67
Squeeze trades: ATR x 1.2 (SL) / ATR x 3.0 (TP) = R/R 1:2.5
TIMEFRAMES
Supported: 30S, 45S, 1m-20m (each with individually optimized thresholds)
Best TFs: 30S (47.1%), 45S (34.8%), 12m+ (33%+)
4m: LONG + SHORT disabled (no data)
WEBHOOK ALERT FORMAT (JSON)
{"signal":"long/short", "symbol":"BTCUSD", "timeframe":"...", "price":..., "source":"Bot_Webhook_v84", "confidence":..., "metadata":{"entry":..., "stop_loss":..., "take_profit":..., "atr":..., "adx":..., "rsi":..., "rsi_slope":..., "stoch_k":..., "signal_type":"...", "strategy":"...", "regime":"...", "vol_regime":"...", "expected_wr":"..."}}
SETUP
1. Apply script to BTCUSDT/BTCUSD chart
2. Select desired timeframe (30S-20m)
3. Create alert and enter webhook URL
4. Create a separate alert for each timeframe
Other versions available: ETH, SOL
AUTOMATED TRADING BOT
Want to automate these signals? A fully automated trading bot is available that processes the webhook alerts from this script and executes trades automatically - including risk management, position sizing, regime filtering and smart signal validation.
- Full bot with live trading or paper trading mode
- Processes all signals from this indicator automatically
- Built-in risk management with ATR-based SL/TP
- Multi-timeframe support (30S-20m)
More info: futuresbot.de
Or send me a direct message here on PulseWire!
DISCLAIMER: This strategy is for educational purposes only. Past performance does not guarantee future results. Always use proper risk management.
========================================
DEUTSCH (DE)
========================================
Datengetriebene Signalgenerierung fuer BTC/USD mit TF-spezifischen Filtern (30S-20m), Keltner-Squeeze-Detection und Volatility-Regime-Erkennung. Optimiert aus 136 Signalen + 9406 1m-Candles.
UEBERBLICK
Dieses Script ist die BTC/USD-spezifische Version des Bot Webhook v8.4. Es generiert Long- und Short-Signale mit Confidence-Score und sendet diese als JSON-Alert an einen Webhook-Endpunkt. Das Symbol "BTCUSD" ist fest im Alert eingebettet - ideal fuer den Einsatz mit einem automatisierten Trading-Bot.
Basis: v7.3 TF-spezifische Filter (bewaehrt) + v8.0 Keltner/Regime (nur Squeeze SHORT)
SETUP
1. Script auf BTCUSDT/BTCUSD Chart anwenden
2. Gewuenschten Timeframe waehlen (30S-20m)
3. Alert erstellen und Webhook-URL eintragen
4. Fuer jeden Timeframe einen separaten Alert erstellen
Weitere Versionen verfuegbar: ETH, SOL
AUTOMATISIERTER TRADING-BOT
Du moechtest diese Signale automatisieren? Es gibt einen vollautomatischen Trading-Bot, der die Webhook-Alerts dieses Scripts verarbeitet und Trades automatisch ausfuehrt - inklusive Risikomanagement, Positionsgroesse, Regime-Filterung und smarter Signal-Validierung.
- Kompletter Bot mit Live-Trading oder Paper-Trading-Modus
- Verarbeitet alle Signale dieses Indikators automatisch
- Integriertes Risikomanagement mit ATR-basiertem SL/TP
- Multi-Timeframe-Unterstuetzung (30S-20m)
Mehr Infos: futuresbot.de
Oder schreib mir eine persoenliche Nachricht hier auf PulseWire!
HAFTUNGSAUSSCHLUSS: Diese Strategie dient zu Bildungszwecken. Vergangene Performance garantiert keine zukuenftigen Ergebnisse. Nutze stets ein angemessenes Risikomanagement.
Indicator

Bot Webhook v8.4 [ETH]Bot Webhook v8.4 - Optimized Multi-Timeframe Signal Generator
Data-driven signal generation for ETH/USD with timeframe-specific filters (30S-20m), Keltner Squeeze Detection and Volatility Regime Recognition. Optimized from 136 signals + 9406 1m candles.
Datengetriebene Signalgenerierung fuer ETH/USD mit TF-spezifischen Filtern (30S-20m), Keltner-Squeeze-Detection und Volatility-Regime-Erkennung. Optimiert aus 136 Signalen + 9406 1m-Candles.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OVERVIEW / UEBERBLICK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This script is the ETH/USD-specific version of Bot Webhook v8.4. It generates Long and Short signals with a confidence score and sends them as JSON alerts to a webhook endpoint. The symbol "ETHUSD" is hardcoded in the alert - ideal for use with an automated trading bot.
Dieses Script ist die ETH/USD-spezifische Version des Bot Webhook v8.4. Es generiert Long- und Short-Signale mit Confidence-Score und sendet diese als JSON-Alert an einen Webhook-Endpunkt. Das Symbol "ETHUSD" ist fest im Alert eingebettet - ideal fuer den Einsatz mit einem automatisierten Trading-Bot.
Base: v7.3 TF-specific filters (proven) + v8.0 Keltner/Regime (Squeeze SHORT only)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SIGNAL LOGIC / SIGNAL-LOGIK
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LONG Signals (v7.3 Base):
- RSI < TF-specific threshold (Oversold)
- Stochastic K < TF-specific threshold
- RSI Slope > TF-specific threshold (Momentum reversal / Momentum-Wende)
- ADX < TF-specific threshold (no excessive counter-trend / kein ueberstarker Gegentrend)
- Proven performance: 68.2% $20-rate, R/R 1.48x
SHORT Signals (v7.3 Base + Keltner Squeeze):
- RSI > TF-specific threshold (Overbought)
- Stochastic K > TF-specific threshold
- RSI Slope < TF-specific threshold (Momentum reversal / Momentum-Wende)
- Squeeze SHORT: Bollinger inside Keltner + bearish momentum
- Proven performance: 53.8% $20-rate, R/R 1.39x (Squeeze)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
INDICATORS / INDIKATOREN
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- EMA 20/50/200 (Trend detection + filter / Trend-Erkennung + Filter)
- RSI 14 + RSI Slope (Momentum + direction change / Richtungswechsel)
- Stochastic RSI (Overbought/Oversold conditions)
- MACD 12/26/9 (Momentum confirmation / Momentum-Bestaetigung)
- Bollinger Bands 20/2.0 (Volatility + Squeeze Detection)
- Keltner Channel 20/1.5 (Squeeze Detection)
- ADX 14 (Trend strength / Trendstaerke)
- ATR 14 (Stop Loss / Take Profit calculation)
- Volume SMA 20 (Volume confirmation / Volumen-Bestaetigung)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
REGIME DETECTION / REGIME-ERKENNUNG
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Trend Regime (EMA-based):
- STRONG_TREND_UP / STRONG_TREND_DOWN
- WEAK_TREND_UP (BLOCKED - 0% success rate! / BLOCKIERT - 0% Erfolgsrate!)
- WEAK_TREND_DOWN / NEUTRAL
Volatility Regime (ADX + ATR Percentile):
- TRENDING_HIGH_VOL / TRENDING_LOW_VOL
- SQUEEZE_BUILDING / BREAKOUT_IMMINENT
- RANGING_HIGH_VOL / RANGING_LOW_VOL
- TRANSITIONAL
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONFIDENCE CALCULATION / CONFIDENCE-BERECHNUNG
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Base confidence from verified win rates per timeframe (0.72-0.92)
Modifiers / Modifikatoren:
+ Extreme RSI/StochK values (+0.03 to +0.05)
+ Trending High Vol Regime (+0.04)
- Ranging High Vol Regime (-0.08)
- Squeeze Building (-0.03)
- Counter-trend / Gegentrend (-0.10)
- Low Volume (-0.05)
Min. confidence for alert: 70% (adjustable / einstellbar)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
STOP LOSS / TAKE PROFIT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Base trades: ATR x 1.5 (SL) / ATR x 2.5 (TP) = R/R 1:1.67
Squeeze trades: ATR x 1.2 (SL) / ATR x 3.0 (TP) = R/R 1:2.5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TIMEFRAMES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Supported / Unterstuetzt: 30S, 45S, 1m-20m (each with individually optimized thresholds / alle mit eigenen optimierten Schwellenwerten)
Best TFs / Beste TFs: 30S (47.1%), 45S (34.8%), 12m+ (33%+)
4m: LONG + SHORT disabled (no data / deaktiviert, keine Daten)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WEBHOOK ALERT FORMAT (JSON)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
{"signal":"long/short", "symbol":"ETHUSD", "timeframe":"...", "price":..., "source":"Bot_Webhook_v84", "confidence":..., "metadata":{"entry":..., "stop_loss":..., "take_profit":..., "atr":..., "adx":..., "rsi":..., "rsi_slope":..., "stoch_k":..., "signal_type":"...", "strategy":"...", "regime":"...", "vol_regime":"...", "expected_wr":"..."}}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETUP
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Apply script to ETHUSDT/ETHUSD chart / Script auf ETHUSDT/ETHUSD Chart anwenden
2. Select desired timeframe (30S-20m) / Gewuenschten Timeframe waehlen
3. Create alert and enter webhook URL / Alert erstellen und Webhook-URL eintragen
4. Create a separate alert for each timeframe / Fuer jeden Timeframe einen separaten Alert erstellen
Other versions available / Weitere Versionen verfuegbar: BTC, SOL
DISCLAIMER: This strategy is for educational purposes only. Past performance does not guarantee future results. Always use proper risk management. / Diese Strategie dient zu Bildungszwecken. Vergangene Performance garantiert keine zukuenftigen Ergebnisse. Nutze stets ein angemessenes Risikomanagement.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AUTOMATED TRADING BOT / AUTOMATISIERTER TRADING-BOT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Want to automate these signals? A fully automated trading bot is available that processes the webhook alerts from this script and executes trades on Kraken Futures - including risk management, position sizing, regime filtering and smart signal validation.
- Full bot with live trading or paper trading mode
- Processes all signals from this indicator automatically
- Built-in risk management with ATR-based SL/TP
- Multi-timeframe support (30S-20m)
More info: futuresbot.de
Or send me a direct message here on PulseWire!
Du moechtest diese Signale automatisieren? Es gibt einen vollautomatischen Trading-Bot, der die Webhook-Alerts dieses Scripts verarbeitet und Trades auf Kraken Futures ausfuehrt - inklusive Risikomanagement, Positionsgroesse, Regime-Filterung und smarter Signal-Validierung.
- Kompletter Bot mit Live-Trading oder Paper-Trading-Modus
- Verarbeitet alle Signale dieses Indikators automatisch
- Integriertes Risikomanagement mit ATR-basiertem SL/TP
- Multi-Timeframe-Unterstuetzung (30S-20m)
Mehr Infos: futuresbot.de
Oder schreib mir eine persoenliche Nachricht hier auf PulseWire!
Indicator

Indicator

EMA Cross + RSI + ADX - Autotrade Strategy V2Overview
A versatile trend-following strategy combining EMA 9/21 crossovers with RSI momentum filtering and optional ADX trend strength confirmation. Designed for both cryptocurrency and traditional futures/options markets with built-in stop loss management and automated position reversals.
Key Features
Multi-Market Compatibility: Works on both crypto futures (Bitcoin, Ethereum) and traditional markets (NIFTY, Bank NIFTY, S&P 500 futures, equity options)
Triple Confirmation System: EMA crossover + RSI filter + ADX strength (optional)
Automated Risk Management: 2% stop loss with wick-touch detection
Position Auto-Reversal: Opposite signals automatically close and reverse positions
Webhook Ready: Six distinct alert messages for automation (Entry Buy/Sell, Close Long/Short, SL Hit Long/Short)
Performance Metrics
NIFTY Futures (15min): 50%+ win rate with ADX filter OFF
Crypto Markets: Requires extensive backtesting before live deployment
Optimal Timeframes: 15-minute to 1-hour charts (patience required for higher timeframes)
Strategy Logic
Entry Signals:
LONG: EMA 9 crosses above EMA 21 + RSI > 55 + ADX > 20 (if enabled)
SHORT: EMA 9 crosses below EMA 21 + RSI < 45 + ADX > 20 (if enabled)
Exit Signals:
Opposite EMA crossover (auto-closes current position)
Stop loss hit at 2% from entry price (tracks candle wicks)
Technical Indicators:
Fast EMA: 9-period (short-term trend)
Slow EMA: 21-period (primary trend)
RSI: 14-period with 55/45 thresholds (momentum confirmation)
ADX: 14-period with 20 threshold (trend strength filter - optional)
Market-Specific Settings
Traditional Markets (NIFTY, Bank NIFTY, S&P Futures, Options)
Recommended Settings:
ADX Filter: Turn OFF (less choppy, cleaner trends)
Timeframe: 15-minute chart
Win Rate: 50%+ on NIFTY Futures
Why No ADX: Traditional markets have more institutional participation and smoother price action, making ADX unnecessary
Cryptocurrency Markets (BTC, ETH, Altcoins)
Recommended Settings:
ADX Filter: Turn ON (ADX > 20)
Timeframe: 15-minute to 1-hour
Extensive backtesting required before live trading
Why ADX: Crypto markets are highly volatile and prone to false breakouts; ADX filters low-quality chop
Best Practices
✅ Backtest thoroughly on your specific instrument and timeframe
✅ Use larger timeframes (1H, 4H) for higher quality signals and better risk/reward
✅ Adjust RSI thresholds based on market volatility (try 52/48 for more signals, 60/40 for fewer but stronger)
✅ Monitor ADX effectiveness - disable for traditional markets, enable for crypto
✅ Proper position sizing - adjust default_qty_value based on your capital and instrument price
✅ Paper trade first - test for 2-4 weeks before risking real capital
Risk Management
Fixed 2% stop loss per trade (adjustable)
Stop loss tracks candle wicks for accurate execution
Positions auto-reverse on opposite signals (no manual intervention needed)
0.075% commission built into backtest (adjust for your broker)
Customization Options
All parameters are adjustable via inputs:
EMA periods (default: 9/21)
RSI length and thresholds (default: 14-period, 55/45 levels)
ADX length and threshold (default: 14-period, 20 threshold)
Stop loss percentage (default: 2%)
Webhook Automation
This strategy includes six distinct alert messages for automated trading:
"Entry Buy" - Long position opened
"Entry Sell" - Short position opened
"Close Long" - Long position closed on opposite crossover
"Close Short" - Short position closed on opposite crossover
"SL Hit Long" - Long stop loss triggered
"SL Hit Short" - Short stop loss triggered
Compatible with Delta Exchange, Binance Futures, 3Commas, Alertatron, and other webhook platforms.
Important Notes
⚠️ Crypto markets require extensive backtesting - volatility patterns differ significantly from traditional markets
⚠️ Higher timeframes = better results - 15min works but 1H/4H provide cleaner signals
⚠️ ADX toggle is critical - OFF for traditional markets, ON for crypto
⚠️ Not financial advice - always conduct your own research and use proper risk management
⚠️ Past performance ≠ future results - backtest results may not reflect live trading conditions
Disclaimer
This strategy is for educational and informational purposes only. Trading futures and options involves substantial risk of loss. Always backtest thoroughly, start with paper trading, and never risk more than you can afford to lose. The author assumes no responsibility for any trading losses incurred using this strategy. Strategy

EMA + RSI Autotrade Webhook - VarunOverview
The EMA + RSI Autotrade Webhook is a powerful trend-following indicator designed for automated crypto futures trading. This indicator combines the reliability of Exponential Moving Average (EMA) crossovers with RSI momentum filtering to generate high-probability buy and sell signals optimized for webhook integration with crypto exchanges like Delta Exchange, Binance Futures, and Bybit.Key Features
Simple & Effective: Uses proven EMA 9/21 crossover strategy
RSI Momentum Filter: Eliminates low-probability trades in ranging markets
Webhook Ready: Two clean alerts (LONG Entry, SHORT Entry) for seamless automation
Exchange Compatible: Works with Delta Exchange, 3Commas, Alertatron, and other webhook platforms
Zero Lag Signals: Real-time alerts on crossover confirmation
Visual Clarity: Clean chart markers for easy signal identification
How It Works
Entry Signals:
LONG Entry: Triggers when EMA 9 crosses above EMA 21 AND RSI is above 52 (bullish momentum confirmed)
SHORT Entry: Triggers when EMA 9 crosses under EMA 21 AND RSI is below 48 (bearish momentum confirmed)
Technical Components:
Fast EMA: 9-period (tracks short-term price action)
Slow EMA: 21-period (identifies primary trend)
RSI: 14-period (confirms momentum strength)
RSI Long Threshold: 52 (filters weak bullish signals)
RSI Short Threshold: 48 (filters weak bearish signals)
Best Use Cases
Crypto Futures Trading: Bitcoin, Ethereum, Altcoin perpetual contracts
Automated Trading Bots: Integration with Delta Exchange webhooks, PulseWire alerts
Timeframes: Optimized for 15-minute charts (works on 5min-1H)
Markets: Trending crypto markets with clear directional moves
Risk Management: Best used with 1-2% stop loss per trade (managed externally)
Webhook Automation Setup
Add indicator to your PulseWire chart
Create alerts for "LONG Entry" and "SHORT Entry"
Configure webhook URL from your exchange (Delta Exchange, Binance, etc.)
Use alert message: Entry LONG {{ticker}} @ {{close}} or Entry SHORT {{ticker}} @ {{close}}
Exchange automatically reverses positions on opposite signals
Advantages
✅ No manual trading required - fully automated
✅ Eliminates emotional trading decisions
✅ Catches trending moves early with EMA crossovers
✅ RSI filter reduces whipsaws in choppy markets
✅ Works 24/7 without monitoring
✅ Simple two-alert system (easy to manage)
✅ Compatible with multiple exchanges via webhooksStrategy Philosophy
This indicator follows a trend-following with momentum confirmation approach. By waiting for both EMA crossover AND RSI confirmation, it ensures you're entering trades with genuine momentum behind them, not just random price noise. The tight RSI thresholds (52/48) keep you aligned with the prevailing trend.Recommended Settings
Timeframe: 15-minute (primary), 5-minute (scalping), 1-hour (swing)
Markets: BTC/USDT, ETH/USDT, high-liquidity altcoin perpetuals
Position Sizing: 100% capital per signal (exchange manages reversals)
Stop Loss: 2% (managed via exchange or external bot)
Leverage: 1-2x for conservative approach, up to 5x for aggressive
Important Notes
⚠️ This indicator generates entry signals only - position reversals are handled automatically by your exchange
⚠️ Always backtest on historical data before live trading
⚠️ Use proper risk management and position sizing
⚠️ Best performance in trending markets; may generate false signals in tight ranges
⚠️ Requires PulseWire Premium or higher for webhook functionalityTags
cryptocurrency futures automated-trading ema-crossover rsi webhook delta-exchange pulsewire-alerts trend-following momentum bitcoin ethereum crypto-bot algo-trading 15-minute-strategy Indicator

Indicator

Outside the Bollinger Bands Alerting Indicator Overview
The Outside the Bollinger Bands Alerting Indicator is a comprehensive technical analysis tool that combines multiple proven
indicators into a single, powerful system designed to identify high-probability reversal patterns at Bollinger Band extremes. This
indicator goes beyond simple band touches to detect sophisticated pattern formations that often signal strong directional moves.
Key Features & Capabilities
🎯 Advanced Pattern Recognition
Bollinger Band Breakout Patterns
- Detects "pierce-and-reject" formations where price breaks through a Bollinger Band but immediately reverses back inside
- Identifies failed breakouts that often lead to strong moves in the opposite direction
- Combines multiple confirmation signals: engulfing candle patterns, MACD momentum, and ATR volatility filters
- Visual alerts with symbols positioned below (bullish) or above (bearish) candles
Tweezer Top & Bottom Patterns
- Identifies consecutive candles with nearly identical highs (tweezer tops) or lows (tweezer bottoms)
- Requires at least one candle to breach the respective Bollinger Band
- Confirms reversal with directional close requirements
- Customizable tolerance settings for pattern sensitivity
- Visual alerts with ❙❙ symbols for easy identification
📊 Multi-Indicator Integration
Bollinger Bands Indicator
- Dual-band configuration with outer (2.0 std dev) and inner (1.5 std dev) bands that can be adjusted to suit your own parameters
- Configurable MA types: SMA, EMA, SMMA (RMA), WMA, VWMA
- Customizable length, source, and offset parameters
- Color-coded band fills for visual clarity
Moving Average Suite
- EMA 9, 21, 50, and 200 (individually toggleable)
- Special "SMA 3 High" for help visualizing and detecting Bollinger Band break-outs
- Dynamic color coding based on price relationship
Optional Ichimoku Cloud overlay
- Complete Ichimoku implementation with customizable periods
- Dynamic cloud coloring based on trend direction
- Toggleable overlay that doesn't interfere with other indicators
🚨 Comprehensive Alert System
Real-Time JSON Alerts
- Sends structured data on every confirmed bar close
- Includes all indicator values: BB levels, EMAs, MACD, RSI
- Contains signal states and crossover conditions
- Perfect for automated trading systems and webhooks
{"timestamp":1753118700000,"symbol":"ETHUSD","timeframe":"5","price":3773.3,"bollinger_bands":{"upper":3826.95,"basis":3788.32,"lower":3749.68},"emas":{"ema_9":3780.45,"ema_21":3788.92,"ema_50":3800.79,"ema_200":3787.74,"sma_3_high":3789.45},"macd":{"macd":-10.1932,"signal":-11.3266,"histogram":1.1334},"rsi":{"rsi":40.5,"rsi_ma":39.32,"level":"neutral"}}
Specific Alert Conditions
- MACD histogram state changes (rising to falling, falling to rising)
- RSI overbought/oversold crossovers
- All pattern detections (BB Bounce, Tweezer patterns)
- Bollinger Band breakout alerts
🎨 Visual Elements
Pattern Identification
- ♻ symbols for Bollinger Band breakout patterns (green for bullish, red for bearish)
- ❙❙ symbols for tweezer patterns (green below for bottoms, red above for tops)
- Color-coded band fills for trend visualization
Chart Overlay Options
- All moving averages with distinct colors
- Bollinger Bands with inner and outer boundaries
- Optional Ichimoku cloud with trend-based coloring
Trading Applications
Reversal Trading
- Identify high-probability reversal points at extreme price levels
- Use failed breakout patterns for entry signals
- Combine multiple timeframes for enhanced accuracy
Trend Analysis
- Monitor moving average relationships for trend direction
- Use Ichimoku cloud for trend strength assessment
- Track momentum with MACD and RSI integration
Risk Management
- ATR-based volatility filtering reduces false signals
- Multiple confirmation requirements improve signal quality
- Real-time alerts enable prompt decision making
Suggested Use
- Use on multiple timeframes for confluence
- Combine with support/resistance levels for enhanced accuracy
- Set up alerts for hands-free monitoring
- Customize settings based on market volatility and trading style
- Consider volume confirmation for stronger signals
Indicator

Indicator

WebhookGeneratorLibrary "WebhookGenerator"
Generates Json objects for webhook messages.
GenerateOT(license_id, symbol, action, order_type, trade_type, size, price, tp, sl, risk, trailPrice, trailOffset)
CreateOrderTicket: Establishes a order ticket.
Parameters:
license_id (string) : Provide your license index
symbol (string) : Symbol on which to execute the trade
action (string) : Execution method of the trade : "MRKT" or "PENDING"
order_type (string) : Direction type of the order: "BUY" or "SELL"
trade_type (string) : Is it a "SPREAD" trade or a "SINGLE" symbol execution?
size (float) : Size of the trade, in units
price (float) : If the order is pending you must specify the execution price
tp (float) : (Optional) Take profit of the order
sl (float) : (Optional) Stop loss of the order
risk (float) : Percent to risk for the trade, if size not specified
trailPrice (float) : (Optional) Price at which trailing stop is starting
trailOffset (float) : (Optional) Amount to trail by
Returns: Return Order string Library

whookLibrary "whook"
This library provides functions for generating trading alerts for `whook`
check this -> github.com
Currently supported exchanges:
Kucoin futures
Bitget futures
Coinex futures
Bingx
OKX futures ( also its demo mode )
Bybit futures ( also Bybit testnet )
Binance futures ( also Binance futures testnet )
Phemex futures ( also Phemex testnet )
Kraken futures ( also Kraken futures testnet )
# --- Test Cases ---
Note: These test cases are for demonstration purposes only and may not cover all scenarios.
// buy(string account, float amount, string unit = "units", float leverage = 1)
buy("MyAccount", 100, "units", 1)
buy("MyAccount", 1000, "USDT", 5)
buy("MyAccount", 50, "percent", 2)
// sell(string account, float amount, string unit = "units", float leverage = 1)
sell("MyAccount", 50, "units", 1)
sell("MyAccount", 500, "USDT", 3)
sell("MyAccount", 25, "percent", 2)
// set_position(string account, float amount, string unit = "units", float leverage = 1)
set_position("MyAccount", 100, "units", 1)
set_position("MyAccount", 1000, "USDT", 5)
set_position("MyAccount", 50, "percent", 2)
// limit_buy(string account, float amount, float price, string unit = "units", float leverage = 1, string id = "")
limit_buy("MyAccount", 100, 10000, "units", 1, "MyBuyOrder")
limit_buy("MyAccount", 1000, 10500, "USDT", 5)
limit_buy("MyAccount", 50, 11000, "percent", 2)
// limit_sell(string account, float amount, float price, string unit = "units", float leverage = 1, string id = "")
limit_sell("MyAccount", 50, 10000, "units", 1, "MySellOrder")
limit_sell("MyAccount", 500, 9500, "USDT", 3)
limit_sell("MyAccount", 25, 9000, "percent", 2)
// close_percent(string account, float pct = 100)
close_percent("MyAccount", 100)
close_percent("MyAccount", 50)
buy(account, amount, unit, leverage)
Sends a trading alert to execute a market buy order.
Parameters:
account (string) : The account ID.
amount (float) : The amount to buy (can be in USD, units, or percentage).
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
sell(account, amount, unit, leverage)
Sends a trading alert to execute a market sell order.
Parameters:
account (string) : The account ID.
amount (float) : The amount to sell (can be in USD, units, or percentage).
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
set_position(account, amount, unit, leverage)
Sends a trading alert to set a position.
Parameters:
account (string) : The account ID.
amount (float) : The amount to set the position to (can be in USD, units, or percentage).
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
limit_buy(account, amount, price, unit, leverage, id)
Sends a trading alert to place a limit buy order.
Parameters:
account (string) : The account ID.
amount (float) : The amount to buy (can be in USD, units, or percentage).
price (float) : The limit price.
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
id (string) : An optional custom ID for the limit order.
limit_sell(account, amount, price, unit, leverage, id)
Sends a trading alert to place a limit sell order.
Parameters:
account (string) : The account ID.
amount (float) : The amount to sell (can be in USD, units, or percentage).
price (float) : The limit price.
unit (string) : The unit of the amount (optional, defaults to "units").
leverage (float) : The leverage to use (optional, defaults to 1x).
id (string) : An optional custom ID for the limit order.
close_percent(account, pct)
Sends an alert to close a position on Phemex.
Parameters:
account (string) : The account ID.
pct (float) : The percentage of the position to close (optional, defaults to 100%). Library

Indicator

Indicator
