BTC DCA Strategy [3Commas & QuantPilot]BTC Smart DCA Strategy
🔷 What it does:
This is a long-only DCA (Dollar-Cost Averaging) strategy for BTC / USDT that opens a position only in oversold conditions and then averages down on a fixed safety-order ladder. A base order fires when 4h RSI(14) drops below the entry threshold; if price keeps falling, five averaging orders add to the position at fixed deviations from the base entry, each larger than the last. The full position is closed at a fixed take-profit above the blended average entry. There is no trailing exit and no stop loss — the position is structurally bounded by the five-order ladder.
- Single entry filter: 4h RSI(14) below 38 (oversold).
- Five averaging orders at fixed deviations (−2%, −5%, −9.5%, −16%, −25%) with 1.8× size scaling per rung.
- Fixed take-profit (5.5%) on the blended average entry; no trailing, no stop loss.
- Every fill and close emits a webhook-ready JSON alert payload for a DCA Bot.
🔷 What changed — two parameters, tuned with QuantPilot:
This strategy started from a baseline configuration (RSI entry below 28, 3% take-profit). Running the same script, on the same market, over the same period through the QuantPilot Pine Script optimizer, two parameters were swept and re-selected: the RSI entry threshold moved from 28 to 38, and the take-profit moved from 3% to 5.5%. Everything else was left untouched — same five-order ladder, same deviations, same 1.8× sizing, same fees.
- Baseline (RSI < 28, TP 3%): Net +3,078.29 USDT (+3.08%), Max Drawdown 3.79%, 62 closed trades, 70.97% profitable, Profit Factor 4.028.
- Optimized (RSI < 38, TP 5.5%): Net +9,250.25 USDT (+9.25%), Max Drawdown 3.67%, 93 closed trades, 76.34% profitable, Profit Factor 10.454.
The result: net profit roughly 3× higher (+3.08% → +9.25%), profit factor up from 4.0 to 10.5, win rate up from 71% to 76% — all while maximum drawdown stayed essentially flat (3.79% → 3.67%). The looser RSI entry (38) lets the strategy engage the dip earlier and more often, while the wider 5.5% target lets each recovery run further before the position is banked. The published defaults use the optimized values; the baseline metrics are shown here purely so the effect of the two parameter changes is transparent.
🔷 Who is it for:
- Swing traders accumulating BTC on RSI pullbacks rather than chasing momentum.
- Bot operators who want a chart-driven signal source with base / safety-order / close webhook JSON ready to drive a DCA Bot.
- Traders comfortable with martingale-style averaging who size their capital to the worst-case ladder fill.
- Range / mean-reversion traders who prefer mechanical oversold entries over discretionary timing.
🔷 How does it work:
Entry (Base Order): On each closed 4h bar the strategy reads RSI(14). When RSI falls below 38 and there is no open position, it opens the base order at market (or limit, optionally) and dispatches the entry webhook.
Averaging Orders: Once in a position, the strategy watches price relative to the original base entry. The five safety orders are armed at fixed deviations from that base entry — not cumulatively — at −2%, −5%, −9.5%, −16%, and −25%. As each threshold is crossed on bar close, the corresponding averaging order fires. Order sizes scale 1.8× per rung ($900 → $1,620 → $2,916 → $5,249 → $9,448 from a $500 base), pulling the blended average entry down toward the latest fill.
Exit (Take Profit): While in a position, the strategy computes a take-profit price 5.5% above the current average entry. When price closes at or above that level, the entire position is closed at market and the close webhook fires. There is no trailing and no stop loss.
Capital Bounds: Total deployed capital cannot exceed the base order plus the five safety orders. Once all five averaging orders are filled, no further adds occur — the position simply waits for the take-profit. This ladder cap is the strategy's primary risk control.
🔷 Why it's unique:
- Optimizer-Tuned Parameters: The RSI threshold (38) and take-profit (5.5%) are not arbitrary — they are the values the QuantPilot Pine Script optimizer selected as best-performing on the historical sample, with every other parameter held constant.
- Fixed-Deviation Martingale Ladder: Safety orders are placed at fixed percentages from the base entry with deliberate 1.8× size scaling, so each rung has progressively more influence on the average — a transparent, fully-specified averaging schedule rather than an opaque adaptive grid.
- Full Webhook Chain: Base order, each safety order, and the close all emit dedicated JSON payloads, driving a DCA Bot end-to-end with no glue layer.
- On-Chart Transparency: The AO ladder, average entry, and take-profit target are plotted live, and the status table reports RSI, AOs filled, base/average entry, TP target, and max deployable capital.
🔷 Considerations Before Using the Strategy:
Optimization / Overfitting Risk: The RSI threshold and take-profit were selected by sweeping those parameters over the same historical window shown in the results. Values that were best in-sample are not guaranteed to be best out-of-sample — this is the standard caveat for any optimized parameter. Treat the optimized metrics as the ceiling of what this configuration achieved historically, not as a forward expectation, and re-validate on fresh data before committing capital.
Trade Volume — Near the Statistical Floor: The optimized configuration produced 93 closed trades over ~30 months (62 on the baseline). This is approaching but still below the ~100-trade threshold often used as a floor for statistical relevance, so treat the win rate and the high profit factor as indicative rather than conclusive.
Martingale Tail Risk: Order sizes scale 1.8× per rung, so the deepest fills are by far the largest. If BTC trends hard below the −25% AO5 level without recovering to take-profit, the position sits fully loaded with no further adds and no stop — unrealized loss can grow until price reverts.
No Stop Loss Justification: There is no exit on adverse moves. Per-order risk is bounded by the fixed ladder allocation; aggregate exposure is capped at base + five AOs (≈ $20,633 on the default $100k account, ~20.6% of equity). Size the base/AO inputs down to match the worst-case exposure you are willing to hold.
Fees: The default commission (0.06% per trade) should be matched to your exchange's actual taker fees.
Demo Testing: Always demo-test before going live. Past results do not guarantee future performance, particularly for martingale-style averaging strategies whose risk profile is dominated by rare deep drawdowns.
🔷 STRATEGY PROPERTIES
Symbol: BYBIT:BTCUSDT.P (Perpetual) — strategy is portable to any BTC / USDT pair.
Timeframe: 4H (RSI sampled on 4h).
Test Period: January 1, 2024 — July 17, 2026 (~30 months).
Initial Capital: 100,000 USDT.
Base Order Size: 500 USDT.
Averaging Orders: 5, at −2% / −5% / −9.5% / −16% / −25% from base entry.
AO Sizing: 1.8× per rung — 900 / 1,620 / 2,916 / 5,249 / 9,448 USDT.
Max Deployed Capital: ≈ 20,633 USDT (~20.6% of equity, all AOs filled).
Commission: 0.06% per trade.
Slippage: 3 ticks.
Entry Filter: 4h RSI(14) below 38 (optimizer-tuned from 28).
Take Profit: 5.5% above average entry (optimizer-tuned from 3%).
Stop Loss: None — ladder allocation is the structural risk cap.
Trailing: None.
Strategy: Long Only.
🔷 STRATEGY RESULTS (Optimized — RSI < 38, TP 5.5%)
⚠️ Remember, past results do not guarantee future performance.
Net Profit: +9,250.25 USDT (+9.25%)
Max Equity Drawdown: 3,980.36 USDT (3.67%)
Total Closed Trades: 93
Percent Profitable: 76.34% (71 / 93)
Profit Factor: 10.454
🔷 STRATEGY RESULTS (Baseline — RSI < 28, TP 3%, for comparison)
Net Profit: +3,078.29 USDT (+3.08%)
Max Equity Drawdown: 3,852.12 USDT (3.79%)
Total Closed Trades: 62
Percent Profitable: 70.97% (44 / 62)
Profit Factor: 4.028
🔷 How to Use It:
🔸 Adjust Settings: Open the strategy inputs and confirm the RSI level (default 38), the five AO deviations and sizes, and the Take Profit (default 6%) match your risk profile. Scale the base/AO sizes down for lower exposure.
🔸 Results Review: Run a full-period backtest and confirm Max Drawdown stays within your personal risk band — note the optimized configuration reached 3.67%. Keep in mind the 93-trade sample is just below the ~100-trade floor for statistical confidence, and the high profit factor reflects that small, optimized sample.
🔸 Create alerts to trigger the DCA Bot: Add one alert on the strategy using "Any alert() function call". Paste your DCA Bot's webhook URL into the alert's Webhook field, and fill the Bot ID, Email Token, and Pair inputs on the script. The base order, each safety order, and the close will each emit a dedicated JSON payload.
🔷 INDICATOR SETTINGS
Base Order Size: Capital committed on the first (base) entry.
AO Deviations: Fixed percentage distances from the base entry where each safety order fires.
AO Sizes: Capital per safety order (1.8× scaling by default).
RSI Timeframe / Length / Level: Oversold filter for the base entry (default 4h, 14, below 38 — optimizer-tuned).
Take Profit (%): Distance above average entry where the full position closes (default 5.5%, optimizer-tuned).
Bot ID / Email Token / Pair: Webhook fields injected into every alert payload.
Visualization: Toggle the AO ladder, fill labels, avg/TP lines, and status table.
Brand Watermark: Configurable text, position, size, and transparency.
👨🏻💻💭 We hope this tool helps enhance your trading. Your feedback is invaluable, so feel free to share any suggestions for improvements or new features you'd like to see implemented.
__
The information and publications within the 3Commas PulseWire account are not meant to be and do not constitute financial, investment, trading, or other types of advice or recommendations supplied or endorsed by 3Commas and any of the parties acting on behalf of 3Commas, including its employees, contractors, ambassadors, etc. Strategy

Overnight Range & Sessions - Multi-IndexDraws the overnight range (ONR) of the instrument's own overnight session —
not a generic fixed window — plus EU/US/Asia session boxes and the previous
day's cash close as a gap reference.
What makes it original: generic session tools apply one fixed overnight
window to everything. This one carries per-instrument overnight definitions
(indices, metals, oil, forex), supports fragmented quiet-phase sessions for
24h markets, detects US/EU DST shifts automatically from the Berlin-New York
time difference, and captures the cash close timeframe-independently so the
gap reference works on any chart resolution.
How it works:
- The overnight window is auto-selected per instrument (DAX, FTSE, US indices,
Russell, gold, silver, copper, oil, Nikkei, HK, forex) with a manual
override and a custom session input.
- Commodities/forex can use fragmented sessions: several small quiet-phase
boxes instead of one large overnight range.
- US/EU daylight-saving shifts are detected automatically from the
Berlin-New York time difference (manual override available).
- An info table shows the detected index, session window and mode; the
previous day cash close is drawn as a line for gap-up/gap-down context.
How to use it: before the cash open, read the overnight high/low as the first
breakout frame of the day — a cash-session break out of the ONR sets the
directional tone, while repeated rejections at the ONR edges frame fade
setups back into the range. Combine with the previous cash close line for gap
context (open above both ONR high and prior close is a very different day
than an open inside the range), and use the session boxes to see which region
built the current move.
Indicator

Major Historical S&R ZonesMajor Historical Support & Resistance Zones
Major Historical Support & Resistance Zones is designed to objectively identify and rank the most significant historical support and resistance areas on any market or timeframe. Rather than relying on manually drawn horizontal lines, the indicator automatically analyses historical price action, groups significant reactions into zones, and scores each zone based on its historical importance.
The indicator looks for meaningful pivot highs and lows, measures the strength of the subsequent price reaction using ATR (Average True Range), evaluates rejection quality through wick analysis, and clusters nearby reactions into a single support or resistance zone. When multiple significant reactions occur around the same price level, the zone becomes stronger and receives a higher score.
Unlike traditional support and resistance indicators that simply draw every swing high and low, this indicator attempts to filter out market noise and highlight only the price areas that have repeatedly influenced market direction.
Features
* Automatically detects major historical support and resistance zones.
* Clusters multiple historical reactions into a single zone.
* Scores each zone based on reaction quality and historical significance.
* Counts the number of independent reactions ("Hits") at each level.
* Identifies Support/Resistance Flip zones where price has historically acted as both support and resistance.
* Adjustable ATR sensitivity and clustering distance.
* Built-in colour and scoring guide that can be enabled or disabled from the settings.
Colour Guide
🟩 Green Zone
* Price is currently above the zone.
* The zone is acting as historical support.
🟥 Red Zone
* Price is currently below the zone.
* The zone is acting as historical resistance.
🟨 Orange Zone
* Price is currently trading inside the historical zone.
* This represents a decision area where the market is testing historical support or resistance.
Understanding the Score
Each zone receives a strength score based on:
* Size of the historical reaction.
* Quality of price rejection (wick analysis).
* Number of independent reactions.
* Support/Resistance Flip bonus.
General interpretation:
* 0–3 = Weak
* 3–5 = Minor
* 5–7 = Good
* 7–10 = Strong
* 10–15 = Very Strong
* 15+ = Exceptional
Higher scores indicate areas where price has historically shown stronger reactions.
Understanding Hits
Hits represent the number of separate significant reactions that occurred within the zone.
General guide:
* 1 = Single historical reaction
* 2 = Confirmed level
* 3 = Strong level
* 4–5 = Very strong level
* 6+ = Major historical level
More hits generally indicate greater historical recognition of that price area.
S/R Flip
When a zone displays S/R Flip, it means that the same price area has historically acted as both:
* Support
* Resistance
These zones often represent some of the strongest historical price levels because market participants have repeatedly recognised them from both directions.
Suggested Workflow
For the best results:
1. Open the Weekly chart to identify the strongest long-term support and resistance zones.
2. Switch to the Daily chart to refine those major levels.
3. Use the 4H, 8H, or 12H chart for additional precision.
4. Execute trades using your preferred lower timeframe confirmation.
This top-down approach helps maintain focus on the most significant historical levels before refining entries.
Inputs
The indicator provides several adjustable settings:
* Pivot Strength – Controls how significant a swing must be before it is considered.
* ATR Length – Used to normalise reaction size across different markets.
* Minimum Reaction ATR – Filters out weak reactions.
* Cluster Distance ATR – Controls how close reactions must be before they are grouped together.
* Zone Width ATR – Determines the thickness of each support/resistance zone.
* Minimum Hits – Minimum number of reactions required before displaying a zone.
* Minimum Score – Minimum strength score required before displaying a zone.
* Display Options – Toggle labels and the built-in legend on or off.
Best Practices
This indicator is designed to identify historically important price zones, not generate buy or sell signals.
The strongest trading opportunities often occur when:
* High-scoring zones align with your own market structure analysis.
* Higher timeframe zones overlap with lower timeframe confirmations.
* Price shows clear rejection or acceptance at the identified historical levels.
As with all technical analysis tools, this indicator should be used alongside sound risk management and your broader trading methodology rather than in isolation.
Indicator

Liquidity Sweep + FVG [Leon/RussellTech] v2Liquidity Sweep + FVG Indicator
A multi-confluence day-trading indicator that identifies institutional stop-hunts (liquidity sweeps) followed by displacement Fair Value Gaps, then plans precise entries with automatic stop-loss and take-profit placement.
How It Works
The indicator uses a state machine that progresses through a strict sequence. Every signal must pass through all 7 confluence layers — if any single layer fails, no signal fires. This is what prevents false signals and maintains quality.
State Machine Lifecycle
Idle — The indicator monitors swing pivot highs and lows using the configured lookback period. Up to 4 recent levels are tracked.
Sweep Detected — Price wicks beyond a tracked swing level and (if required) closes back inside. A sweep marker (▲ or ▼) appears on the chart.
Armed — Within the Sweep→FVG Window (10 bars), a valid FVG forms in the sweep direction. The status panel shows "armed (long)" or "armed (short)".
Entry — Within the FVG→Entry Window (24 bars), price retraces into the FVG zone, the entry candle shows momentum, and all filters pass. Signal fires with Entry, SL, and TP drawn.
Tracking — The indicator tracks whether price hits the TP, SL, or times out, then returns to Idle.
The 7 Confluence Layers
Every signal must pass through all seven layers. This multi-confluence approach is what separates this indicator from simple FVG detectors or sweep scanners. Indicator

INJ DCA Long Strategy [3Commas & QuantPilot]INJ DCA Long Strategy
🔷 What it does:
This is a long-only DCA (Dollar-Cost Averaging) strategy for INJ / USDT that opens a position only in deep-oversold conditions and then averages down on a fixed safety-order ladder. A base order fires when 4h RSI(14) drops below 28; if price keeps falling, five averaging orders add to the position at fixed deviations from the base entry, each larger than the last. The full position is closed at a fixed take-profit above the blended average entry. There is no trailing exit and no stop loss — the position is structurally bounded by the five-order ladder.
- Single entry filter: 4h RSI(14) below 28 (deep oversold).
- Five averaging orders at fixed deviations (−2%, −5%, −9.5%, −16%, −25%) with 1.8× size scaling per rung.
- Fixed take-profit (9%) on the blended average entry; no trailing, no stop loss.
- Every fill and close emits a webhook-ready JSON alert payload for a DCA Bot.
🔷 The one change that mattered — Take Profit tuning:
This strategy started from a baseline configuration with a 3% fixed take-profit. Running the same script, on the same market, over the same period through the QuantPilot Pine Script optimizer, the take-profit parameter was swept and the best-performing value landed at 9%. Nothing else was touched — same RSI entry, same five-order ladder, same deviations, same 1.8× sizing, same fees. Only the Take Profit input changed from 3% to 9%.
- Baseline (Take Profit 3%): Net +6,888.76 USDT (+6.89%), Max Drawdown 4.39%, 84 closed trades, 71.43% profitable, Profit Factor 4.925.
- Optimized (Take Profit 9%): Net +15,830.72 USDT (+15.83%), Max Drawdown 5.65%, 90 closed trades, 82.22% profitable, Profit Factor 17.886.
Widening the target lets each recovery run further before the position is banked, capturing the fuller mean-reversion bounce instead of exiting on the first small pop. The trade-off is a modestly higher drawdown (4.39% → 5.65%) and longer average hold time. The published defaults use the optimized 9% value; the baseline metrics are shown here purely so the effect of the single parameter change is transparent.
🔷 Who is it for:
- Swing traders accumulating INJ on deep RSI flushes rather than chasing momentum.
- Bot operators who want a chart-driven signal source with base / safety-order / close webhook JSON ready to drive a DCA Bot.
- Traders comfortable with martingale-style averaging who size their capital to the worst-case ladder fill.
- Range / mean-reversion traders who prefer mechanical oversold entries over discretionary timing.
🔷 How does it work:
Entry (Base Order): On each closed 4h bar the strategy reads RSI(14). When RSI falls below 28 and there is no open position, it opens the base order at market (or limit, optionally) and dispatches the entry webhook.
Averaging Orders: Once in a position, the strategy watches price relative to the original base entry. The five safety orders are armed at fixed deviations from that base entry — not cumulatively — at −2%, −5%, −9.5%, −16%, and −25%. As each threshold is crossed on bar close, the corresponding averaging order fires. Order sizes scale 1.8× per rung ($900 → $1,620 → $2,916 → $5,249 → $9,448 from a $500 base), pulling the blended average entry down toward the latest fill.
Exit (Take Profit): While in a position, the strategy computes a take-profit price 9% above the current average entry. When price closes at or above that level, the entire position is closed at market and the close webhook fires. There is no trailing and no stop loss.
Capital Bounds: Total deployed capital cannot exceed the base order plus the five safety orders. Once all five averaging orders are filled, no further adds occur — the position simply waits for the take-profit. This ladder cap is the strategy's primary risk control.
🔷 Why it's unique:
- Optimizer-Tuned Exit: The 9% take-profit is not an arbitrary round number — it is the value the QuantPilot Pine Script optimizer selected as best-performing on the historical sample, with every other parameter held constant.
- Deep-Oversold-Only Entries: A single, strict RSI(14) < 28 filter on 4h keeps the strategy out of the market in normal conditions and only commits capital after a meaningful flush.
- Fixed-Deviation Martingale Ladder: Safety orders are placed at fixed percentages from the base entry with deliberate 1.8× size scaling, so each rung has progressively more influence on the average — a transparent, fully-specified averaging schedule rather than an opaque adaptive grid.
- Full Webhook Chain: Base order, each safety order, and the close all emit dedicated JSON payloads, driving a DCA Bot end-to-end with no glue layer.
🔷 Considerations Before Using the Strategy:
Optimization / Overfitting Risk: The 9% take-profit was selected by sweeping the parameter over the same historical window shown in the results. A value that was best in-sample is not guaranteed to be best out-of-sample — this is the standard caveat for any optimized parameter. Treat the optimized metrics as the ceiling of what this configuration achieved historically, not as a forward expectation, and re-validate on fresh data before committing capital.
Trade Volume — Below the Statistical Floor: The optimized configuration produced 90 closed trades over ~30 months (84 on the baseline). Both are below the ~100-trade threshold often used as a floor for statistical relevance, so treat the win rate and the high profit factor as indicative rather than conclusive. The strict RSI < 28 filter is what keeps the trade count low.
Martingale Tail Risk: Order sizes scale 1.8× per rung, so the deepest fills are by far the largest. If INJ trends hard below the −25% AO5 level without recovering to take-profit, the position sits fully loaded with no further adds and no stop — unrealized loss can grow until price reverts. A wider 9% target also means positions are held longer, so the grid can sit loaded through deeper dips before the exit is reached.
No Stop Loss Justification: There is no exit on adverse moves. Per-order risk is bounded by the fixed ladder allocation; aggregate exposure is capped at base + five AOs (≈ $20,633 on the default $100k account, ~20.6% of equity). Size the base/AO inputs down to match the worst-case exposure you are willing to hold.
Fees: The default commission (0.06% per trade) should be matched to your exchange's actual taker fees.
Demo Testing: Always demo-test before going live. Past results do not guarantee future performance, particularly for martingale-style averaging strategies whose risk profile is dominated by rare deep drawdowns.
🔷 STRATEGY PROPERTIES
Symbol: BYBIT:INJUSDT.P (Perpetual) — strategy is portable to any INJ / USDT pair.
Timeframe: 4H (RSI sampled on 4h).
Test Period: January 1, 2024 — July 16, 2026 (~30 months).
Initial Capital: 100,000 USDT.
Base Order Size: 500 USDT.
Averaging Orders: 5, at −2% / −5% / −9.5% / −16% / −25% from base entry.
AO Sizing: 1.8× per rung — 900 / 1,620 / 2,916 / 5,249 / 9,448 USDT.
Max Deployed Capital: ≈ 20,633 USDT (~20.6% of equity, all AOs filled).
Commission: 0.06% per trade.
Slippage: 3 ticks.
Entry Filter: 4h RSI(14) below 28.
Take Profit: 9% above average entry (optimizer-tuned from a 3% baseline).
Stop Loss: None — ladder allocation is the structural risk cap.
Trailing: None.
Strategy: Long Only.
🔷 STRATEGY RESULTS (Optimized — Take Profit 9%)
⚠️ Remember, past results do not guarantee future performance.
Net Profit: +15,830.72 USDT (+15.83%)
Max Equity Drawdown: 6,426.47 USDT (5.65%)
Total Closed Trades: 90
Percent Profitable: 82.22% (74 / 90)
Profit Factor: 17.886
🔷 STRATEGY RESULTS (Baseline — Take Profit 3%, for comparison)
Net Profit: +6,888.76 USDT (+6.89%)
Max Equity Drawdown: 4,429.13 USDT (4.39%)
Total Closed Trades: 84
Percent Profitable: 71.43% (60 / 84)
Profit Factor: 4.925
🔷 How to Use It:
🔸 Adjust Settings: Open the strategy inputs and confirm the RSI level (28), the five AO deviations and sizes, and the Take Profit (default 9%) match your risk profile. Scale the base/AO sizes down for lower exposure.
🔸 Results Review: Run a full-period backtest and confirm Max Drawdown stays within your personal risk band — note the optimized configuration reached 5.65%. Keep in mind the 90-trade sample is below the ~100-trade floor for statistical confidence, and the high profit factor reflects that small, optimized sample.
🔸 Create alerts to trigger the DCA Bot: Add one alert on the strategy using "Any alert() function call". Paste your DCA Bot's webhook URL into the alert's Webhook field, and fill the Bot ID, Email Token, and Pair inputs on the script. The base order, each safety order, and the close will each emit a dedicated JSON payload.
🔷 INDICATOR SETTINGS
Base Order Size: Capital committed on the first (base) entry.
AO Deviations: Fixed percentage distances from the base entry where each safety order fires.
AO Sizes: Capital per safety order (1.8× scaling by default).
RSI Timeframe / Length / Level: Oversold filter for the base entry (default 4h, 14, below 28).
Take Profit (%): Distance above average entry where the full position closes (default 9%, optimizer-tuned).
Bot ID / Email Token / Pair: Webhook fields injected into every alert payload.
Visualization: Toggle the AO ladder, fill labels, avg/TP lines, and status table.
Brand Watermark: Configurable text, position, size, and transparency.
👨🏻💻💭 We hope this tool helps enhance your trading. Your feedback is invaluable, so feel free to share any suggestions for improvements or new features you'd like to see implemented.
__
The information and publications within the 3Commas PulseWire account are not meant to be and do not constitute financial, investment, trading, or other types of advice or recommendations supplied or endorsed by 3Commas and any of the parties acting on behalf of 3Commas, including its employees, contractors, ambassadors, etc. Strategy

Indicator

ZIZO BTC Power LawZIZO BTC Power Law — Streamlined Edition
A fixed power law channel for Bitcoin. No refitting. No drift. No statistical bands. Every line on the chart is a number you can check for yourself.
The model
Bitcoin's long-run price has tracked a power law of time since the Genesis Block. This script draws that law and nothing else:
Price = A × (days since Genesis)^n
A = 3.21 × 10⁻¹⁷
n = 5.688
Genesis = 3 January 2009
These coefficients are fixed. They do not recalibrate as new candles print. That is deliberate. A model that constantly refits itself can never be wrong, and so can never be verified. This one holds still, which means you can test it against price and judge it honestly.
The bands
The centre line is fair value — the raw model output (1.000×). Every other band is a chosen multiple of fair value, not a standard deviation or a curve fit:
Cycle Top — 2.627× fair value
Fair Value 2 — 1.747×
PL Median (fair value) — 1.000×
Fair Value 1 — 0.667×
Floor — 0.420×
Zones between the bands are shaded low-to-high so the chart reads at a glance.
Also on the chart
200-day SMA, coloured green above / red below, as a tactical trend layer over the macro model.
Halving markers. H1–H4 are the four confirmed halvings, verified against their calendar dates. H5+ is projected from the last confirmed halving plus a configurable interval (default 1,461 days). No cycle dates are hardcoded beyond the four that have actually happened.
Forward projection lines at 1, 2, 3 and 5 years, with fair-value and cycle-top price labels. This is model extrapolation, not a forecast.
Info table — every band price, live deviation from fair value and from the 200 SMA, log-space channel position (0 = floor, 1 = top), day-count streaks above/below each key line, and forward targets.
How to read it
Channel position is the quick summary. Near 1.0, price sits at the historical top of the band and risk is high. Near 0.0, price sits at the floor and value is high. The 200 SMA tells you the current trend; the power law tells you where that trend sits inside the long cycle.
Alerts
Crossings of the Cycle Top, Floor, PL Median, Fair Value 1/2, and the 200 SMA — up and down.
Design principles
Fixed anchors over dynamic models. Chosen multipliers over fitted sigma bands. Self-extending halvings over hardcoded dates. Every number on screen is a deliberate value you can audit.
Notes
This is a research and analysis tool, not financial advice. Power law fair value is a long-horizon reference, not a price prediction. Past cycle structure does not guarantee future structure. Verify everything before you act on it.
License: MPL 2.0. Built by PseudoNakamoto21.
Hard money. Don't trust. Verify.
Indicator

Risk MetricZIZO Risk Metric
Hard money. Don't trust. Verify.
OVERVIEW
ZIZO Risk Metric scores Bitcoin on a 0–100 scale. 0 means maximum opportunity (deep value). 100 means maximum risk (stretched). It answers one question: how expensive is price right now relative to its own long-term trend?
Every anchor in this script is fixed and chosen on purpose. Nothing refits itself to recent price. That is the point — the metric is a verification tool, not a curve that chases the market.
THE IDEA
Price rarely sits at a fair value. It swings between two log-scaled boundaries around a 200-period moving average. This script measures where price sits between those two boundaries, on a log scale, and turns that position into a single number.
Low readings cluster near cycle bottoms. High readings cluster near cycle tops. The scale compresses over time to reflect diminishing returns as the asset matures.
HOW IT WORKS
Two bounds are built from the SMA:
Upper bound = 3.0 × SMA × scale
Lower bound = 0.35 × SMA (static by default)
The scale factor gently contracts the upper bound over time:
scale = e^(decay × (bar_index − offset) × sensitivity) + baseline
Risk is the log-distance of price between the two bounds:
Risk = (ln price − ln lower) / (ln upper − ln lower), clamped to 0–1, shown ×100.
The smoothed line applies the same transform to the SMA instead of raw price. It strips out daily noise and shows the underlying cycle position.
HOW TO READ IT
Colour map runs cool (low risk) to hot (high risk).
Green zone = accumulation. Red zone = distribution.
Exit threshold default: 89.43. Entry threshold default: 32.79.
The weighted Entry/Exit plot suggests a DCA weight that scales up as risk moves deeper into a zone. It only fires inside the entry or exit band, and it caps at the cutoff (default 9%).
SETTINGS
Risk Metric — SMA length, time offset, decay, sensitivity, baseline, and the two bounds. These define the model. Once calibrated, leave them fixed.
Colorway — heat-map colouring and the legend table.
Weighted Entry/Exit — base, exponent, cutoff, and the two thresholds that define the accumulation and distribution zones.
Model X Overlays — threshold lines, shaded zone fills, and an optional 50 midline.
Timeframe — evaluate the metric on Daily, Weekly, Monthly, or the chart's own resolution.
WHAT THIS VERSION ADDS
Rebuilt on foosmoo's Risk Metric core. Additions over the original:
Full colour-map redesign on a clean 0–100 display scale
Smoothed risk line derived from the SMA
Weighted, zone-aware entry/exit DCA percentages
Threshold lines, zone fills, and midline overlays
Time-offset marker and colour-map legend table
Entry-zone and exit-zone alert conditions
CREDITS & LICENSE
Based on foosmoo's Risk Metric (v2.2), used under the Mozilla Public License 2.0. This script keeps that licence. Full text: mozilla.org
DISCLAIMER
This is an educational and research tool, not financial advice. Risk metrics describe the past and present. They do not predict the future. Verify every number yourself before acting on it.
Hard money. Don't trust. Verify.
Indicator

The OracleTHE ORACLE — ZIZO Dev% + Risk
Hard money. Don't trust. Verify.
WHAT IT IS
The Oracle is a single-pane cycle instrument for Bitcoin and other majors. It fuses
two ideas that traders normally run separately: how far price has stretched from its
mean (Dev%), and where that stretch sits on a bounded 0–100 risk scale. It then labels
every major turning point with the full readout, so past cycles become a verifiable
record rather than a memory.
THE ONE THING TO UNDERSTAND
Column HEIGHT = deviation. Column COLOUR = risk.
Each bar's height shows how far price sits above or below its moving average, as a
percentage. Each bar's colour comes from the ZIZO risk model — a dark-blue-to-red
heatmap running low risk to high risk. So you see "how stretched" and "how dangerous"
in one glance. A tall green column and a tall red column mean very different things.
WHAT PROBLEM IT SOLVES
Deviation oscillators tell you price is extended but not whether that matters this
cycle. Risk models tell you the danger level but hide the raw stretch. The Oracle shows
both at once, and pins the numbers to the actual pivots so you can check the model
against history instead of trusting it.
HOW THE MATH WORKS
Dev%: the percentage distance of close from a chosen moving average.
Dev% = 100 × (close − MA) / MA
You choose the MA type (SMA, EMA, WMA, VWMA, HMA) and length. Default is a 200 SMA.
A "Spread" mode is also available if you prefer raw price distance over percentage.
Risk: a logarithmic position between a smoothed lower and upper band.
Risk = (log price − log lower) / (log upper − log lower)
The bands are anchored to the asset's own long moving average and scaled by a slow
decay term, so the model ages with the market rather than refitting to it. Once the
coefficients are set, they stay fixed. That is the point — a fixed anchor is what makes
the reading verifiable.
The pane also prints Risk and Smoothed Risk (0–100) to the Data Window on every bar.
PIVOT LABELS (THE CYCLE LOG)
The Oracle finds major highs and lows in the deviation series and labels each one.
With "Enrich pivot labels" on, every label carries four lines:
Date
Dev%
Risk (0–100)
Smoothed Risk (0–100)
This turns the chart into a running log of cycle tops and bottoms with their exact
conditions attached. Read left to right and you can see whether each cycle peaked at a
similar risk level, or whether the character is shifting.
MEDIAN ENGINE
Two optional medians summarise the history:
Peak medians — the typical magnitude of major pivot highs and lows.
All-bar medians — the central tendency of every positive and negative deviation.
Use the peak medians as rough "this is where cycles usually turn" reference lines. A
minimum-magnitude filter keeps small noise pivots out of the peak calculation.
READABILITY
Auto-contrast picks black or white label text automatically from each background's
brightness, so labels stay legible across the full
Indicator

Simple Moving Average X RiskZIZO ⬡ Risk SMA
The 200-day SMA, painted with the ZIZO risk engine. Trend and valuation in a single line — no second pane required.
Hard money. Don't trust. Verify.
──────────────────────────────
WHAT IT DOES
A moving average tells you where the trend is. It says nothing about whether that trend is cheap or expensive. This overlay adds the missing half.
It plots a standard SMA (200 by default) directly on your price chart, then colours that line by the same risk model that drives the ZIZO Risk pane. Cold blue means low risk — the baseline is sitting deep in the value band. Hot red means high risk — it's stretched toward the top. You read the trend and its risk in one glance, without opening a separate oscillator.
The colour engine is the ZIZO Risk v3.9 engine, verbatim. Same bounds, same colormap, same numbers. If the risk pane says 42, this line paints the 0.4 band. Parity is the whole point — verify it side by side.
──────────────────────────────
HOW THE RISK IS MEASURED
Risk here is a position, not a probability. It answers one question: where does the price sit between a lower bound and an upper bound, measured in log space?
• 0 means price is resting on the lower bound.
• 100 means price is pressed against the upper bound.
• 50 means it's halfway between, on a log scale.
The bounds are built from the SMA baseline and a time-scaling factor. The factor lets the bands drift as the series ages — a deliberate model assumption that fair-value ranges compress over a long history rather than staying fixed forever. You control that drift with the Decay and Sensitivity inputs. If you reject the assumption, flatten them.
Because the metric lives in log space, it behaves the way a log price chart does. That is intentional and consistent across the whole ZIZO suite.
──────────────────────────────
TWO COLOUR SOURCES
The line drawn is always the SMA. What you colour it by is your choice:
• Smoothed Risk (default) — the risk of the SMA itself. Calmer. This is the line that matches the smoothed track in the risk pane.
• Relative Risk — the risk of spot price. Jumpier, more reactive. Use it when you want the SMA to carry the live temperature of price rather than its own.
The info table shows both readings at once, each on its own colour swatch, so you never have to guess which is which. Table text auto-contrasts — black on bright swatches, white on dark — so it stays legible in every band.
──────────────────────────────
MULTI-TIMEFRAME
Set the risk timeframe to Daily, Weekly, Monthly, or follow the chart. The SMA and its risk are computed on that timeframe and pulled onto your chart, so you can run a true daily-risk SMA while viewing any resolution.
──────────────────────────────
ALERT
One alert: band change. It fires when the coloured line crosses from one risk band into the next — a regime shift of one decile. Quiet when nothing has changed, loud when the temperature moves.
──────────────────────────────
INPUTS WORTH KNOWING
• SMA length and line width.
• Colour source — Smoothed or Relative.
• Risk engine controls — Time offset, Decay, Sensitivity, Baseline control, Upper/Lower bound.
• Lowerbound is dynamic — leave this off (recommended). The lower bound holds steadier that way.
• Timeframe, info table position and size.
──────────────────────────────
HONEST NOTES
This is not a new model. It is the ZIZO Risk engine wearing a different coat. Every value it prints should match the risk pane to the decimal — if it ever doesn't, trust neither until you find out why.
The bounds ship calibrated for BTC. Point it at another asset and the numbers become meaningless until you recalibrate. Do the work, or don't trust the colour.
Risk is a position between two bounds, not a forecast. A reading of 80 does not mean an 80% chance of anything. It means the baseline is high in its band — nothing more, nothing less.
Nothing here is financial advice. It is a lens, not a signal.
Hard money. Don't trust. Verify.
— PseudoNakamoto21
Indicator

Zone in, Zone out (MTF Auto-Anchored)ZIZO · BTC Zone Projector (MTF, Auto-Anchored)
Auto-anchored cycle zones off the 200-day SMA. No manual anchoring. No hardcoded dates. Every number on screen is a chosen value, not a fitted one.
Hard money. Don't trust. Verify.
──────────────────────────────
WHAT IT DOES
Most zone tools make you drag an anchor to a top or bottom by hand. This one places the anchor for you.
When price makes a confirmed 200-SMA cross, the script drops an anchor at that cross and fans out a set of percentage-offset zones — five to the upside, five to the downside. Each set stays pinned to its own cross. When a new regime confirms, a fresh set spawns and the old one closes off.
The upside ladder walks the emotional cycle of a bull:
Optimism → Belief → Thrill → Euphoria → Maximum Risk
The downside ladder walks the bear:
Anxiety → Denial → Panic → Capitulation → Maximum Opportunity
──────────────────────────────
HOW THE ANCHORING WORKS
Three ideas do the heavy lifting.
1. The SMA runs on a timeframe you choose, not your chart timeframe.
Set the source to Daily (default) and you get a true 200-day SMA even while you view a Weekly chart. The cross logic is computed on that source timeframe and pulled in with lookahead off, so confirmed anchors do not repaint.
2. A new anchor locks only after conviction, not on the first touch.
Price has to hold on one side of the SMA for N consecutive source-timeframe closes (default 20) before a new anchor prints. That filters the chop around the line. The trade-off is honest and by design: the anchor appears a little after the cross itself.
3. A set ends fast, but starts slow.
A cycle is marked complete on the first single-bar confirmed close on the opposite side of the SMA. Slow to commit to a new regime, quick to admit the last one is over. The asymmetry is deliberate.
The live set — the one you're in right now — projects forward to a fixed expiry date you set. Completed sets simply terminate at the close that ended them. That keeps old geometry from cluttering the projection.
──────────────────────────────
WHAT YOU SEE
• Anchor line at 0% (the cross price) with a bull/bear tag.
• Ten zone lines with price and percentage labels.
• Heat-gradient fills between zones (green→blue below, yellow→red above).
• A cross signal label at each confirmed anchor.
• A cycle-duration label — elapsed days while a set is live, realised days once it completes. Days are counted on the calendar, not by bar, so data gaps and mixed timeframes don't distort the count.
• An optional Cycle Map table: current anchor, price now, deviation from anchor, and the stage you're standing in.
You can show the current set only, the last bull plus last bear, or every confirmed anchor in history.
──────────────────────────────
INPUTS WORTH KNOWING
• Confirm bars — how many consecutive closes lock a new anchor. Higher = fewer, cleaner anchors. Lower = earlier, noisier ones.
• Source timeframe — where the SMA and cross confirmation live. Keep it at or below your chart timeframe.
• Zone expiry date — how far the live set projects.
• Upside / Downside offsets — the percentage ladder. This is your calibration. Own it.
• Per-zone visibility, colours, line style, fills, table position.
──────────────────────────────
HONEST NOTES
This is a framing tool, not a crystal ball. The zones are geometry measured off an anchor. They mark where the emotional stages of past cycles have tended to sit relative to the 200-SMA cross — they are not forecasts, and the market is under no obligation to respect them.
The offsets ship calibrated for BTC. Change the asset and the numbers should change with it. Verify them against your own history before you trust a single line.
The confirmation filter means the anchor prints after the cross, on purpose. If you want an earlier anchor, lower the confirm-bars count and accept more noise. There is no free lunch here — only a dial you control.
Nothing here is financial advice. It is a lens for thinking, not a signal to act.
Hard money. Don't trust. Verify.
— PseudoNakamoto21
Indicator

Session Profitability Visualizer
What it shows
Session Profitability Visualizer breaks the trading day into its 24 hours and shows, for each hour, how price has historically behaved on your chart. It answers a simple statistical question: "When this market trades at 09:00 vs. 14:00 vs. 20:00, how have bars in that hour tended to move?"
For every hour with enough data it displays a table with:
- Hour — the hour-of-day bucket (00:00–23:00) in the symbol's exchange timezone
- Cum move — the cumulative close-minus-open of all completed bars in that hour (in points, or in % if you select the percent metric)
- Bars — how many completed bars contributed to that bucket (the sample size)
- % Pos — the share of those bars that closed above their open
Rows are tinted green or red by the sign of the cumulative move, with color intensity scaled by magnitude relative to the strongest hour, so the "heavier" hours stand out at a glance. An optional (off by default) background shading tints the chart by the historical statistics of the hour the current bar belongs to.
How it works
On every completed intraday bar inside the lookback window, the script:
1. Determines the bar's hour of day using the symbol's exchange timezone (syminfo.timezone).
2. Computes the bar's move — either close − open in points, or (close − open) / open × 100 in percent, depending on the Metric input.
3. Adds that move to the hour's running sum, increments the hour's bar count, and increments a positive-bar counter when the move is positive.
The per-hour sums, counts, and positive counts are held in three 24-element arrays. The table is rendered once on the last bar from those arrays. There is no request.security() call, no reference to future data, and only confirmed bars are counted — the statistics do not repaint on historical data (the live, still-forming bar is excluded until it closes).
Inputs
- Lookback (bars) — how many recent bars feed the statistics (default 5000). Larger windows are more stable; smaller windows react faster to regime changes.
- Metric — Points (close − open) or Percent (bar return %). Percent is more comparable across price levels and long histories.
- Min samples per hour — hours with fewer completed bars than this are hidden (default 30), so thin buckets don't masquerade as meaningful.
- Table position — where the table sits on the chart.
- Shade background — optional tint of the current bar's hour by its historical stats (off by default).
How to use it
Apply it to any intraday chart (15m or 1h are good starting points — on a 15m chart each hour bucket gets four bars per session). Look for hours where the cumulative move and the % positive rate agree and the sample count is healthy; those are the hours where the market has shown a persistent directional lean on your symbol. Compare the same symbol on different lookbacks to see whether the pattern is stable or an artifact of one period.
Limitations — please read
- Hour buckets use the symbol's exchange timezone, not your chart's display timezone. A "09:00" row on NASDAQ symbols means 09:00 America/New_York regardless of your local clock.
- Bar close-minus-open is a directional proxy, not trade P&L. It ignores spreads, slippage, position sizing, and intrabar path.
- The statistics are a historical observation, not a prediction. An hour that has drifted up for 5000 bars can stop doing so at any time; sample sizes shrink quickly on higher intraday timeframes.
- The script is intraday-only by design; on daily and above it shows an explanatory message instead of statistics.
This is a statistical visualization tool. It does not generate signals or recommendations of any kind.
Indicator

MFx Structural Terrain Engine V1Description
Mfx Structural Terrain Engine is a market structure indicator designed to place price into a long-term structural context rather than relying on traditional overbought/oversold oscillators.
Instead of asking: "Is price high or low?"
the engine asks: "Where is price relative to its long-term structural growth path?"
The indicator combines:
Structural Power Law modeling
Long-term moving average context
Adaptive terrain zones
Multi-timeframe structural analysis to classify where price currently resides within the broader market cycle.
The engine is designed to work across multiple asset classes including cryptocurrencies, equities, ETFs, indices, commodities, and forex using asset-specific structural profiles and automatic higher-timeframe routing.
Rather than producing buy or sell signals, it provides a structural framework for evaluating opportunity, fair value, accumulation, and potential exhaustion.
Features
Multi-asset structural profiles
Automatic higher-timeframe routing (TradFi & Crypto)
Structural Power Law spine
Long-term structural moving average
Adaptive terrain bands
Market cycle positioning
Structural zone classification
Structural confidence scoring
Clean structural dashboard
Supported Markets
The Structural Terrain Engine is designed to analyze a wide range of markets, including:
Bitcoin
Cryptocurrencies
Stocks
ETFs
Market Indices
Commodities
Forex
Each asset class can use its own structural profile while the indicator automatically adapts its higher-timeframe context for continuous (crypto) and session-based (traditional) markets.
Terrain Zones...The terrain is divided into six structural regions.
Generational Opportunity...Historically represents periods of extreme structural undervaluation.
Deep Opportunity...Price remains significantly below structural value while long-term risk has historically been reduced.
Accumulation...Price begins transitioning back toward structural equilibrium.
Fair Value...Price is trading near its expected long-term structural path.
Extended...Price is becoming increasingly stretched above structural value.
Campaign Exhaustion...Historically associated with elevated structural risk and mature market cycles.
Dashboard Metrics
Market State...Summarizes the current structural zone together with the model's confidence.
Example: Deep Opportunity - Moderate Confidence
Price vs Spine: Shows where price is relative to the selected structural spine.
1.00× = Price is exactly on the structural model.
Above 1.00× = Price is trading above structure.
Below 1.00× = Price is trading below structure.
Distance to Spine: Displays the absolute price difference between the current market price and the structural spine.
Cycle Position: Normalizes price into a 0–100 structural cycle score.
Lower values generally represent deeper structural opportunity.
Higher values indicate progressively later-cycle conditions.
Current Zone: Displays the terrain region price currently occupies.
Model Alignment: Measures how closely the structural models agree with one another.
Higher values indicate stronger agreement between the independent structural models.
Signal Confidence: Represents the overall confidence of the structural assessment.
Higher confidence suggests stronger structural evidence supporting the current terrain classification.
Structural Growth: Shows how quickly the structural spine is advancing over time.
Positive values indicate structural expansion.
Timeframe Routing: The indicator automatically selects a higher-timeframe context based on the current chart.
Chart Context
15m 1H
30m 2H
1H 4H
3H 6H
6H 1D (TradFi) / 12H (Crypto)
12H 2D
1D 3D
3D 1W
1W 2W
2W 1M
Manual timeframe selection is also available.
Inputs
Structural Model
Asset Profile
Select the structural profile best suited for the instrument.
Examples include:
Bitcoin
Crypto
Equities
Commodities
Custom
Structural Spine
Choose which structural model is used as the primary reference.
Available options include:
Structural
Power Law
Context
Timeframe Routing
Choose how the higher-timeframe context is selected.
Options: Profile Default, Auto TradFi, Auto Crypto, Manual, Manual Higher Timeframe...Overrides automatic timeframe routing.
Terrain: Show Terrain Bands...Displays the structural valuation bands.
Show Structural Moving Average: Displays the higher-timeframe structural moving average.
Show Power Law: Displays the structural Power Law spine.
Show Zone Labels: Displays terrain zone labels beside the chart.
Zone Label Offset: Moves zone labels closer to or farther from price.
Zone Label Size: Adjusts the size of terrain labels.
Blending: Adjust how different structural models contribute to the final structural spine.
A reserved external-model weighting is included for future integration of additional verified structural models.
Who Is This For?
The Structural Terrain Engine is intended for investors and traders who want to understand where price sits within a larger structural cycle, rather than relying solely on short-term indicators. It can be used as a standalone market framework or alongside existing technical analysis for timing, confirmation, and risk management.
How to Use: The indicator is designed for structural analysis—not short-term trading signals.
Many traders use it to:
Identify long-term accumulation areas.
Gauge whether price is historically extended.
Monitor structural trend health.
Add higher-timeframe context to lower-timeframe decisions.
Evaluate market cycle progression.
Compare multiple asset classes using a consistent structural framework.
The terrain should be interpreted as a probabilistic framework rather than a prediction engine.
Notes
Confirmed higher-timeframe calculations do not repaint.
Structural models are intended for long-term market analysis.
Automatic timeframe routing adapts differently for traditional markets and 24/7 crypto markets.
The indicator is designed to provide structural context and should be used alongside sound risk management and additional market analysis. Indicator

ARBF Strategy v1.8ARBF Strategy v1.8 — Asia Range Breakout Framework
ARBF Strategy is a structured Asia Range breakout strategy built for Gold, BTC/Crypto, and other high-liquidity markets.
The core idea is simple:
The strategy defines the Asia range, waits for a confirmed breakout after the range is complete, then manages the trade with a risk-based exit engine.
It is designed to test whether price expansion after the Asia session creates a tradable edge.
Core logic
The strategy uses:
Asia Range high / low detection
Breakout bias after Asia session
Optional London Opening Range confirmation
Optional 4H / 1D EMA20 HTF alignment
Risk-based position sizing
Partial take-profit engine
Break-even and lock-profit stop options
Optional trailing runner
Weekday filter
Entry time filter
Gold and BTC/Crypto market profiles
Backtest start/end date controls
Trade modes
A: Break
Raw Asia range breakout.
A trade is triggered when price closes above or below the completed Asia range during the allowed signal window.
B: ABLC
Asia Bias London Continuation.
This requires:
Asia breakout bias
London Opening Range completed
Break of London OR in the bias direction
Optional 4H / 1D EMA20 alignment
Exit engine
The script includes two exit modes:
Single TP
Classic fixed R:R take profit with optional break-even at +1R.
Scaled TP
Default structure:
TP1 at 1R
TP2 at 1.5R
TP3 at 2R
Optional runner with trailing stop
Optional SL behavior after TP1 and TP2
Stop options include:
Keep initial SL
Move to break-even
Lock TP1
Lock TP2
This allows testing whether partial profits and runners improve long-term expectancy.
Market profiles
The strategy includes automatic market profile handling:
Gold
Uses dollar-based Asia range filters.
BTC / Crypto
Uses percentage-based Asia range filters.
This prevents the common problem where Gold settings block all BTC trades because the BTC Asia range is naturally much larger.
Filters
The strategy includes optional filters for:
Weekday selection
Entry time window
Start and end backtest dates
Asia range size gate
HTF trend alignment
One trade per day
These filters are included to help isolate bad market conditions and avoid overtrading.
Recommended chart settings
For best testing:
Timeframe: 5-minute chart
Gold feed: OANDA XAUUSD
Crypto: major liquid perpetual/spot feeds
Execution: On bar close
Commission and slippage enabled
Use realistic capital and leverage assumptions
Important notes
This is a strategy backtest tool, not a signal service.
Backtest results depend heavily on:
Symbol
Feed
Timeframe
Spread
Slippage
Commission
Broker execution
Bar magnifier settings
Selected date range
Market regime
Past performance does not guarantee future results.
Always forward-test before using any strategy live.
Disclaimer
This script is for educational and research purposes only.
It is not financial advice.
Trading involves risk, and users are responsible for their own decisions, risk management, and execution.
Release notes v1.8
Added improved scaled TP engine
Added SL behavior after TP1 and TP2
Added optional TP3 trailing runner
Added fixed weekday filter logic using selectable timezone
Added entry time filter
Added automatic Gold / BTC-Crypto market profile handling
Added backtest window controls
Added dashboard status for filters, gate, TP structure, and trailing state
Improved risk-based position sizing
Improved Asia session handling for Bangkok time
Added support for cleaner strategy testing across Gold and Crypto markets Strategy

KNN Adaptive Cycles█ OVERVIEW
An adaptive Stochastic RSI whose lookback lengths are driven by the market's measured dominant cycle period, further refined in real time by a K-Nearest Neighbors machine learning layer. Rather than accepting a fixed RSI or Stochastic length, the indicator continuously measures the dominant cycle in price using two independent spectral methods, then uses KNN to anticipate where the cycle is heading and to condition the oscillator output against historical outcomes — so the indicator adapts to what the market is actually doing, not what a static setting assumes it should be.
█ CYCLE DETECTION
The indicator measures the dominant cycle period using two independent methods from the digital signal processing work of John Ehlers, who treated price as a waveform and applied engineering filters to extract its underlying structure.
Autocorrelation Periodogram
Computes Pearson correlation across lags from the minimum to maximum period range, identifying the lag at which price most strongly repeats. Returns a correlation coefficient used directly as a confidence score.
Goertzel / DFT Power Spectrum
A frequency-domain scan that computes spectral power at each candidate period and selects the one carrying the most energy. Independent of the autocorrelation method, giving two mathematically distinct perspectives on the same cycle.
Before measurement, price is conditioned with Ehlers' filter set: a Highpass filter to remove the trend component, a Super Smoother for anti-aliasing, and an optional Bandpass pre-filter to isolate the cycle band. In AC + DFT (Confirmed) mode the two estimates are cross-checked, with each method weighted by its agreement strength and the AC correlation coefficient before blending into a single confirmed period. Single-method modes run the selected method at full per-bar resolution.
█ KNN MACHINE LEARNING
Two independent KNN nearest-neighbor routines operate on top of the cycle and signal layers. Both use weighted Euclidean distance across feature vectors, a 1/distance-weighted outcome average across K neighbors, and ALMA smoothing on the output bias.
Period KNN
Searches history for bars whose cycle state most closely resembles the current bar — matching on current period, rate of change, stability streak, confidence score, and volatility regime. Observes what the period actually became Forward Bars later at each neighbor, then blends that prediction into the current period estimate before final smoothing. Helps the indicator anticipate cycle transitions rather than just react to them.
Signal KNN
Searches history for bars whose StochRSI context most closely resembles now — matching on K level, K−D histogram, K slope, volatility regime, OB/OS proximity, and D line. Observes the forward price outcome at each neighbor and blends the resulting bias into the K line before D smoothing, so D inherits the correction naturally.
█ FEATURES
Cycle detection
• Dual spectral cycle detection — AC and DFT run in parallel with a 0–100% confidence score reflecting method agreement
• Confidence-weighted period blending — each method weighted by agreement and correlation strength, smoothed into one adaptive period
• Single-method modes — Optional select Autocorrelation Only or DFT Only run for faster loading
• Optional Performance Throttle — cadence-limited spectral scans for the AC + DFT mode
KNN layer
• Period KNN — anticipates cycle transitions by learning from historical cycle states and their forward outcomes
• Signal KNN — conditions the K line against historically similar StochRSI contexts and their forward price outcomes
• Per-feature importance weights for both KNN routines — tunable to emphasize what matters most on a given instrument
• ALMA-smoothed bias output — configurable length, offset, and sigma Indicator

The Z impact Market Sessions (Auto GMT)The Z Impact Market Sessions (Auto GMT)
OVERVIEW
This indicator highlights the four major Forex trading sessions —
London, New York, Tokyo and Sydney — directly on the chart as colored
boxes. Each box tracks the high and low reached during that session, so
you can see each session's range as it forms and where price sits
relative to it.
WHAT MAKES IT PRACTICAL
The main focus is a single GMT offset input. Instead of editing four
separate session time ranges by hand every time your broker's server
time or daylight saving changes, you adjust one value and all four
sessions shift together. Session times are defined internally on a fixed
base and recalculated from that one offset, including correct handling of
sessions that cross midnight (such as Tokyo and Sydney).
HOW IT WORKS
- Each session has a fixed base open/close time. A single offset input
shifts all of them, with hours wrapping correctly across the 0-24
boundary.
- A box is opened when a session starts and is extended bar by bar until
the session ends, continuously updating its high and low.
- A label marks each session by name, centered over its box.
- Sessions that span midnight are detected with an OR-based time check so
the box stays continuous.
INPUTS
- GMT offset: one value to align all sessions to your chart/broker time.
- Show toggles for London, New York, Tokyo and Sydney.
- A color per session and a background transparency control.
HOW TO USE
- If the sessions do not line up with your chart, adjust the GMT offset
until London (or any session you can verify) sits where you expect.
- Use the session boxes to see range highs and lows, session overlaps,
and where the current price is within the active session.
- Sydney is off by default; enable it if you trade that session.
NOTES
- Times are based on standard session hours; during daylight saving
transitions you may need to adjust the offset by half or one hour.
- This is a visual session tool. It does not generate buy or sell
signals. Indicator

SOL RSI Strategy [3Commas]SOL RSI Long Strategy
🔷 What it does:
This is a long-only DCA (Dollar-Cost Averaging) strategy for SOL / USDT that opens a position only in deep-oversold conditions and then averages down on a fixed safety-order ladder. A base order fires when 4h RSI(14) drops below 28; if price keeps falling, five averaging orders add to the position at fixed deviations from the base entry, each larger than the last. The full position is closed at a fixed take-profit above the blended average entry. There is no trailing exit and no stop loss — the position is structurally bounded by the five-order ladder.
- Single entry filter: 4h RSI(14) below 28 (deep oversold).
- Five averaging orders at fixed deviations (−2%, −5%, −9.5%, −16%, −25%) with 1.8× size scaling per rung.
- Fixed take-profit on the blended average entry; no trailing, no stop loss.
- Every fill and close emits a webhook-ready JSON alert payload for a DCA Bot.
🔷 Who is it for:
- Swing traders accumulating SOL on deep RSI flushes rather than chasing momentum.
- Bot operators who want a chart-driven signal source with base / safety-order / close webhook JSON ready to drive a DCA Bot.
- Traders comfortable with martingale-style averaging who size their capital to the worst-case ladder fill.
- Range / mean-reversion traders who prefer mechanical oversold entries over discretionary timing.
🔷 How does it work:
Entry (Base Order): On each closed 4h bar the strategy reads RSI(14). When RSI falls below 28 and there is no open position, it opens the base order at market (or limit, optionally) and dispatches the entry webhook.
Averaging Orders: Once in a position, the strategy watches price relative to the original base entry. The five safety orders are armed at fixed deviations from that base entry — not cumulatively — at −2%, −5%, −9.5%, −16%, and −25%. As each threshold is crossed on bar close, the corresponding averaging order fires. Order sizes scale 1.8× per rung ($900 → $1,620 → $2,916 → $5,249 → $9,448 from a $500 base), pulling the blended average entry down toward the latest fill.
Exit (Take Profit): While in a position, the strategy computes a take-profit price a fixed percentage above the current average entry. When price closes at or above that level, the entire position is closed at market and the close webhook fires. There is no trailing and no stop loss.
Capital Bounds: Total deployed capital cannot exceed the base order plus the five safety orders. Once all five averaging orders are filled, no further adds occur — the position simply waits for the take-profit. This ladder cap is the strategy's primary risk control.
🔷 Why it's unique:
- Deep-Oversold-Only Entries: A single, strict RSI(14) < 28 filter on 4h keeps the strategy out of the market in normal conditions and only commits capital after a meaningful flush.
- Fixed-Deviation Martingale Ladder: Safety orders are placed at fixed percentages from the base entry with deliberate 1.8× size scaling, so each rung has progressively more influence on the average — a transparent, fully-specified averaging schedule rather than an opaque adaptive grid.
- Full Webhook Chain: Base order, each safety order, and the close all emit dedicated JSON payloads. The strategy can drive a 3Commas DCA Bot end-to-end with no glue layer.
- On-Chart Transparency: The AO ladder, average entry, and take-profit target are plotted live, and the status table reports RSI, AOs filled, base/average entry, TP target, and max deployable capital — so the position state is always visible.
🔷 Considerations Before Using the Strategy:
Trade Volume — Below the Statistical Floor: The reference backtest produced 77 closed trades over ~30 months. This is below the ~100-trade threshold often used as a floor for statistical relevance, so treat the win rate and the profit factor as indicative rather than conclusive. The strict RSI < 28 filter is what keeps the trade count low.
Martingale Tail Risk: Order sizes scale 1.8× per rung, so the deepest fills are by far the largest. If SOL trends hard below the −25% AO5 level without recovering to take-profit, the position sits fully loaded with no further adds and no stop — unrealized loss can grow until price reverts. The 1.8× scaling amplifies both the recovery speed and the downside.
No Stop Loss Justification: There is no exit on adverse moves. Per-order risk is bounded by the fixed ladder allocation; aggregate exposure is capped at base + five AOs (≈ $20,633 on the default $100k account, ~20.6% of equity). Size the base/AO inputs down to match the worst-case exposure you are willing to hold.
Capital Deployment & Drawdown: The reference backtest reached a 5.53% maximum equity drawdown at default sizing — but that depends on the configured ladder fitting within SOL's observed swings. A deeper or more prolonged decline than the test sample would produce a larger drawdown.
Fees: The default commission (0.06% per trade) should be matched to your exchange's actual taker fees. With a fixed 3% take-profit the per-trade edge is modest, so a fee mismatch matters.
Demo Testing: Always demo-test before going live. Past results do not guarantee future performance, particularly for martingale-style averaging strategies whose risk profile is dominated by rare deep drawdowns.
🔷 STRATEGY PROPERTIES
Symbol: BYBIT:SOLUSDT.P (Perpetual) — strategy is portable to any SOL / USDT pair.
Timeframe: 4H (RSI sampled on 4h).
Test Period: January 1, 2024 — July 13, 2026 (~30 months).
Initial Capital: 100,000 USDT.
Base Order Size: 500 USDT.
Averaging Orders: 5, at −2% / −5% / −9.5% / −16% / −25% from base entry.
AO Sizing: 1.8× per rung — 900 / 1,620 / 2,916 / 5,249 / 9,448 USDT.
Max Deployed Capital: ≈ 20,633 USDT (~20.6% of equity, all AOs filled).
Commission: 0.06% per trade.
Slippage: 3 ticks.
Entry Filter: 4h RSI(14) below 28.
Take Profit: 3% above average entry.
Stop Loss: None — ladder allocation is the structural risk cap.
Trailing: None.
Strategy: Long Only.
🔷 STRATEGY RESULTS
⚠️ Remember, past results do not guarantee future performance.
Net Profit: +5,178.77 USDT (+5.18%)
Max Equity Drawdown: 5,748.16 USDT (5.53%)
Total Closed Trades: 77
Percent Profitable: 67.53% (52 / 77)
Profit Factor: 4.582
🔷 How to Use It:
🔸 Adjust Settings: Open the strategy inputs and confirm the RSI level (28), the five AO deviations and sizes, and the take-profit percentage match your risk profile. Scale the base/AO sizes down for lower exposure.
🔸 Results Review: Run a full-period backtest and confirm Max Drawdown stays within your personal risk band — note this configuration reached 5.53%. Keep in mind the 77-trade sample is below the ~100-trade floor for statistical confidence.
🔸 Create alerts to trigger the DCA Bot: Add one alert on the strategy using "Any alert() function call". Paste your DCA Bot's webhook URL into the alert's Webhook field, and fill the Bot ID, Email Token, and Pair inputs on the script. The base order, each safety order, and the close will each emit a dedicated JSON payload.
🔷 INDICATOR SETTINGS
Base Order Size: Capital committed on the first (base) entry.
AO Deviations: Fixed percentage distances from the base entry where each safety order fires.
AO Sizes: Capital per safety order (1.8× scaling by default).
RSI Timeframe / Length / Level: Oversold filter for the base entry (default 4h, 14, below 28).
Take Profit (%): Distance above average entry where the full position closes.
Bot ID / Email Token / Pair: Webhook fields injected into every alert payload.
Visualization: Toggle the AO ladder, fill labels, avg/TP lines, and status table.
Brand Watermark: Configurable text, position, size, and transparency.
👨🏻💻💭 We hope this tool helps enhance your trading. Your feedback is invaluable, so feel free to share any suggestions for improvements or new features you'd like to see implemented.
__
The information and publications within the 3Commas PulseWire account are not meant to be and do not constitute financial, investment, trading, or other types of advice or recommendations supplied or endorsed by 3Commas and any of the parties acting on behalf of 3Commas, including its employees, contractors, ambassadors, etc. Strategy

Calendar Performance DashboardCalendar Performance Dashboard
Overview
Calendar Performance Dashboard is a professional performance analysis tool that measures an asset's price performance across the current calendar year using meaningful time periods instead of arbitrary lookback windows.
Rather than showing only today's price change or the last 24 hours, this indicator helps investors understand how an asset has performed during the current trading day, week, month, year, and each individual calendar quarter.
It is designed for investors, swing traders, portfolio managers, and anyone who wants a quick overview of an asset's performance without changing chart timeframes.
Features
📅 Today Performance
Measures the percentage change from today's opening price to the current price.
Formula
Current Price vs Today's Open
📅 Week Performance
Measures performance from the opening of the current trading week.
📅 Month Performance
Measures performance from the first trading day of the current month.
📈 Year To Date (YTD)
Shows the total return since the first trading day of the current calendar year.
This allows you to quickly determine whether an asset is outperforming or underperforming during the year.
📊 Calendar Quarter Performance
The indicator automatically divides the current year into four calendar quarters.
Q1
January 1 → March 31
Q2
April 1 → June 30
Q3
July 1 → September 30
Q4
October 1 → December 31
Completed quarters display their final performance, while the current quarter updates in real time.
Future quarters are marked as Not Started.
Status System
Each period has its own status.
🟢 Completed
The period has finished and its performance is fixed.
🟡 Current
The period is still active and updates every bar.
⚪ Not Started
The period has not begun yet.
Dashboard Information
The dashboard displays:
Period
Start Price
End Price / Current Price
Percentage Change
Status
All information is updated automatically without changing chart timeframes.
Why use Calendar Performance instead of Rolling Performance?
Most indicators use rolling periods such as:
Last 30 Days
Last 90 Days
Last 365 Days
While useful, these periods make it difficult to compare true calendar performance.
This indicator instead uses calendar periods, making it ideal for:
Annual performance analysis
Quarterly performance comparison
Portfolio reviews
Institutional-style reporting
Long-term investment monitoring
Suitable Markets
Cryptocurrency
Stocks
ETFs
Forex
Commodities
Indices
Ideal For
Long-term Investors
Swing Traders
Portfolio Managers
Market Analysts
Financial Reporting
Performance Comparison
Notes
Performance calculations are based on calendar periods rather than rolling lookback windows.
Completed quarters remain fixed after they end.
The current quarter updates continuously until the quarter closes.
YTD always measures performance from the first trading day of the current year.
Calendar Performance Dashboard provides a clean, intuitive way to understand an asset's performance across the most meaningful calendar periods—all in a single dashboard. Indicator

Seasonality [theUltimator5]Seasonality is a unique multi-timeframe price-pattern indicator that projects the typical historical path of an asset through the current year, month, week, or trading day.
Rather than averaging raw prices, this indicator normalizes each historical period to its opening value. This allows periods with very different price levels to be compared on an equal basis. The normalized historical paths are then combined using either the median or arithmetic mean to create a 'seasonal' curve. The term 'seasonal' is used loosely since that generally applies to the yearly trends, but this indicator can break down the chart into shorter timeframes to show periodic trends rather than just yearly ones.
The current-period curve is projected forward across the chart, providing a visual estimate of where price has historically tended to strengthen, weaken, consolidate, or reverse during comparable portions of previous periods.
The indicator supports four profiling modes:
1) Yearly : Uses daily bars to compare the current year with previous years.
2) Monthly : Uses hourly bars to compare the current month with previous months.
3) Weekly : Uses 30-minute bars to compare the current week with previous weeks.
4) Daily : Uses 5-minute bars to compare the current trading day with previous trading days.
Each mode should be used on a chart timeframe at or below its native calculation timeframe:
Yearly: 4-hour through daily charts
Monthly: 15-minute through hourly charts
Weekly: 5-minute through 30-minute charts
Daily: 1-minute through 5-minute charts
A warning is displayed when the selected chart timeframe is outside the recommended range.
The seasonal pattern is calculated from a rolling historical window.
For example, a lookback of 20 in Yearly mode uses up to the previous 20 years. A lookback of 20 in Daily mode uses the previous 20 observed trading days.
The calculation only includes periods that actually traded during each seasonal slot. Holidays, missing sessions, shortened sessions, and unavailable bars are excluded rather than treated as zero values.
Two averaging methods are available:
1) Median is the default method. The median reduces the influence of unusually strong or weak historical periods and often produces a more representative seasonal path.
2) Mean calculates the standard arithmetic average of all available historical observations. This method is more responsive to extreme historical moves and is not recommended on symbols that have experienced volatility on a lookback time period orders of magnitude higher than the other periods. It will completely blow out the chart and skew it towards that single outlier period.
The indicator includes three methods for positioning the normalized seasonal curve on the current price chart.
1) Scale Only (Default)
The seasonal curve is vertically rescaled so its projected high-to-low range matches the actual high-to-low range of either the current or previous period.
The curve remains anchored to the current period’s first close.
This retains the historical seasonal shape while adapting its magnitude to the asset’s recent volatility.
2) Chained — No Fit
The original normalized seasonal path is anchored to the first close of the current period.
Historical curves are chained together so the end of one period connects continuously with the beginning of the next. No additional adjustment is made to match the asset’s current trading range.
3) Rotate & Scale
This mode applies the same range adjustment as Scale Only, then gradually rotates the current-period curve so it passes through the live price at the current bar.
The adjustment begins at zero near the start of the period and increases progressively toward the current bar. This allows the future seasonal path to remain connected to current price without abruptly shifting the entire curve.
Because this mode incorporates the live price, the projected curve can change as the current period develops.
When using Scale Only or Rotate & Scale, the user can choose which actual price range controls the vertical scaling.
1) Current Period uses the developing high and low of the current year, month, week, or day.
The curve may rescale as new highs or lows occur.
2) Previous Period uses the completed high and low of the prior period.
This creates a more stable projection that does not continually rescale during the current period.
The Draw Curve Back setting controls how many completed periods are displayed behind the current seasonal projection.
Historical seasonal curves are shown in gray and are chained together into a continuous path. The current period is displayed separately using the selected seasonality color.
Displaying previous curves can help identify how the rolling seasonal model evolved over time and whether the current projection is consistent with earlier versions of the model.
Higher draw-back settings may require more processing, particularly on intraday charts.
Smoothing
A trailing simple moving average can be applied along the seasonal curve.
A smoothing value of 1 disables smoothing. Higher values reduce short-term noise but may also soften or delay smaller seasonal turning points.
Min/Max Envelope
The minimum and maximum lines show the strongest and weakest normalized historical paths observed at each seasonal point within the selected lookback.
These lines use the same normalization, chaining, smoothing, scaling, and rotation calculations as the primary seasonal curve.
Because different slots may contain different sample sizes, the minimum and maximum lines should be interpreted as a historical range rather than a guaranteed boundary.
Current-Period Projection
For completed portions of the current period, the curve is aligned with actual timestamps.
For seasonal slots that have not yet occurred, the indicator projects timestamps forward so the curve extends into the future.
Seasonality describes recurring historical tendencies. It does not predict that price must follow the displayed curve.
Indicator

1 HR Fair Value GapIt draws 1-hour fair value gaps on your chart, no matter what timeframe you're looking at.
A fair value gap is a 3-candle imbalance: price moves so fast that the first and third candles don't overlap, leaving a gap. The code checks confirmed 1-hour candles and finds two kinds — bullish (gap up, `h3 < l1`) and bearish (gap down, `l3 > h1`).
When it finds one, it does two things: draws a colored box marking the gap, and draws a line at the 50% midpoint of that gap extended 24 hours to the right. The midline is the part you actually trade off of — where price is likely to return and react.
The `bars24h` piece just makes "24 hours" translate correctly to any chart, since 24 hours is 288 bars on a 5-minute chart but only 24 bars on a 1-hour chart. And the age-out at the bottom stops tracking each midline once it's 24 hours old, so old levels drop off.
That's the whole thing — pure levels, no signals, no bias, no alerts. Indicator

Mohit Strength Box - Full Confirmation Table# Mohit Strength Box - Full Confirmation Table
## Overview
This indicator consolidates six core technical dimensions — trend, momentum, volume, volatility, and relative performance — into a single on-chart status box. Instead of switching between separate RSI, MACD, Supertrend, and ADX panels, this tool reads all of them at a glance and gives an aggregated "Overall Score" so you can quickly judge whether a stock has genuine multi-factor confirmation before entering a trade, or whether signals are conflicting.
It is built for swing and positional traders working on Indian equities (NSE/BSE) but works on any symbol, any timeframe, and any asset class supported by PulseWire.
---
## What the Box Shows
**1. Relative Strength (RS) vs Benchmark**
Calculated using a Mansfield-style formula: the ratio of the stock's price to a benchmark's price (default NSE:NIFTY), smoothed and expressed as a percentage deviation from its own moving average. When this value is above zero, the stock is outperforming the benchmark; below zero, it is underperforming. This is the same concept institutional analysts use to separate market leaders from laggards, independent of whether the broader index itself is up or down.
**2. RVOL (Relative Volume / Volume Expansion)**
Current volume divided by its rolling average (default 20 periods). A reading above the configurable threshold (default 1.5x) flags genuine volume expansion — useful for spotting institutional accumulation, breakout confirmation, or unusual activity before a move.
**3. ATR Expansion**
Compares the current Average True Range to the ATR from a set number of bars back (default 5). Expanding ATR signals rising volatility and often precedes larger directional moves; this row shows both the direction (expanding/contracting) and the percentage change.
**4. VCP (Volatility Contraction Pattern)**
Flags when both ATR and Bollinger Band Width are contracting relative to their own moving averages simultaneously. This mirrors the "tightening" phase traders look for ahead of a breakout — the market coiling before a directional expansion. This is a simplified proxy for the VCP concept and does not replace manual pivot/structure analysis.
**5. Supertrend**
Standard Supertrend calculation (default factor 3, ATR length 10). Bullish when price is trading above the trailing stop line, bearish when below. The line itself is also plotted on the chart for visual trailing-stop reference.
**6. MACD**
Standard MACD (12/26/9 default). Bullish when the MACD line is above its signal line, bearish when below.
**7. RSI (50 Midline)**
Rather than using the traditional 30/70 overbought/oversold levels, this indicator treats the 50 line as the trend filter: RSI above 50 is read as bullish momentum, below 50 as bearish momentum — a common institutional approach for trend-following systems.
**8. EMA Trend Alignment**
Checks whether price is above both a fast EMA (default 20) and a slow EMA (default 50), and that the fast EMA is above the slow EMA. This requires full alignment rather than a simple single-EMA crossover, reducing false signals from choppy price action.
**9. ADX / DI Direction**
Uses +DI vs -DI to determine directional bias, and ADX value vs a threshold (default 20) to flag whether the current trend has strength or is weak/range-bound.
**10. Overall Confirmation Score**
Aggregates six directional signals — RS, Supertrend, MACD, RSI, EMA Trend, and DI direction — into a single count (e.g., "5/6 Bullish"). This gives an at-a-glance confluence read: the more signals aligned, the stronger the technical case in that direction. This score deliberately excludes RVOL and VCP, since those measure volume/volatility conditions rather than directional bias.
---
## How to Use It
- **Trend confirmation before entry**: Look for a high bullish score (5/6 or 6/6) alongside RVOL expansion and/or an active VCP flag — this combination suggests a stock with strong underlying trend and a volume/volatility setup for continuation or breakout.
- **Avoiding weak setups**: A mixed score (e.g., 3/6) suggests conflicting signals across timeframes/indicators — often better to wait for clearer alignment.
- **Relative strength as a filter**: Use RS to separate genuine leaders from stocks simply moving with the index. A stock with RS below zero is underperforming the benchmark even if its own price is rising.
- **VCP + confluence combo**: The built-in alert for "VCP + Majority Bullish Confluence" is designed to flag exactly this — a stock coiling in volatility while the majority of trend/momentum indicators are already aligned bullish.
---
## Alerts Included
- RS positive + RVOL expansion
- VCP detected
- VCP + RVOL expansion + RS positive (breakout setup)
- Supertrend + MACD + RSI all bullish (trend trio)
- VCP + majority bullish confluence
- All 6 signals bullish (unanimous)
- All 6 signals bearish (unanimous)
---
## Customizable Inputs
Every component is independently configurable: benchmark symbol, RS smoothing length, RVOL average length and threshold, ATR length and lookback, VCP contraction ratio and Bollinger settings, Supertrend factor/ATR length, MACD lengths, RSI length, EMA fast/slow lengths, ADX/DI length and strength threshold, plus table position and text size.
---
## Important Notes
- This indicator is a **decision-support tool**, not a standalone trading system. It does not predict future price movement and should be combined with price action, risk management, and your own market structure analysis.
- The VCP row is a simplified volatility-based proxy, not a full pivot/structure-based VCP detector (which typically requires identifying successive higher lows/contracting swing ranges manually).
- Relative Strength, EMA alignment, and DI direction are lagging by nature (as with any moving-average or trend-based calculation) — they confirm trend, they do not predict reversals.
- Past performance of any signal combination shown here does not guarantee future results. Always backtest on your specific universe of stocks and timeframe before relying on this for live decisions. Indicator

Market Cycle# Market Cycle (SMA200 Slope / ATR)
**A regime classifier for long-term investors.** It labels the market as **UPTREND**, **DOWNTREND**, or **SIDEWAYS** by reading the *slope* of the Daily 200-period SMA, normalized by ATR so the reading is comparable across any symbol regardless of price or volatility. A hysteresis band and directional memory keep the state stable — it commits to a regime and holds it until the trend genuinely turns, instead of flipping on every wiggle.
## How it works
1. **ATR-normalized slope.** The per-bar change of the Daily SMA200 over a lookback window is divided by ATR (and ×100 for readability). This expresses the trend's strength in "ATRs per bar," a volatility-neutral unit that behaves the same on a $5 stock and a $5,000 index.
2. **Hysteresis state machine.** Entering a trend requires the slope to cross an **enter threshold**; leaving it only happens once the slope falls back through a lower **exit threshold**. The gap between the two creates a sticky band that filters noise and prevents whipsaw.
3. **Directional memory (continuation discount).** After a pause, re-entering the *same* direction the market just came from is treated as continuation and needs a smaller threshold, while a full reversal still requires the complete enter threshold. This makes the indicator resume established trends quickly but stay skeptical of reversals.
4. **Daily-locked & multi-timeframe consistent.** The signal and the entire state machine run inside the Daily context. The committed regime on a closed Daily bar is therefore **identical whether you view the Daily, Weekly, or Monthly chart** — no timeframe disagreement.
## Features
- **Regime coloring** — green (uptrend), red (downtrend), gray (sideways) applied to the SMA200 line and an optional background tint.
- **Sideways memory color** — optionally keep the prior trend's color during a pause, so you can see which trend the sideways phase came out of.
- **Trend age counter** — Daily bars since the last reversal (shown in the status line), continues counting through sideways pauses and only resets on a genuine trend flip.
- **Status line readout** — normalized slope value and trend age, without cluttering the price scale.
- **No repaint on history** — history is leak-free (`lookahead_off`); the current forming Daily bar updates in real time and locks at the Daily close.
## Inputs
- **SMA length / Slope lookback / ATR length** — the core signal parameters.
- **Enter & Exit thresholds** — width of the hysteresis band (in ATR/bar ×100).
- **Re-entry factor** — how much cheaper continuation is versus a fresh entry (0–1).
- **Visualization toggles** — SMA200 line, background tint, and sideways-color behavior.
## How to use
Use it as a **top-down regime filter**: take long-side setups only while the state is UPTREND, stand aside or reduce risk in SIDEWAYS, and treat DOWNTREND as a defensive/cash regime. Because the state is Daily-locked, it pairs well with a Weekly or Monthly chart for position-level context while you execute on lower timeframes.
*This indicator is a market-condition tool, not a buy/sell signal. It does not account for fundamentals, news, or risk management. Past regime behavior does not guarantee future results — always do your own research.*
Indicator

Indicator
