u/vitaliy3commas

RSI DCA Strategy — selective deep-oversold long entry, scaling safety orders (ATOM 4h)

RSI DCA Strategy — selective deep-oversold long entry, scaling safety orders (ATOM 4h)

Same RSI DCA logic I've posted across assets (POL, JUP, ETH), this time on ATOM. A long-only DCA with a selective deep-oversold 4h RSI entry and a scaling safety-order ladder. ATOM is a useful one to show it on because it flushes hard but has historically mean-reverted, and that deep-but-recoverable dip is exactly what this setup is built for. Backtest is verifiable in TradingView's Strategy Report on the script page.

Entry, deep-oversold gate (no repaint): A 4-hour RSI(14), sampled with lookahead disabled, gates the base entry — a long opens only when RSI prints below 28 at host-bar close. Shallow dips are filtered out, so capital is committed only at genuinely stretched conditions. It sits out the calm and only commits after a real flush.

Ladder, 5 safety orders on a non-uniform fixed-deviation ladder: Each safety order has its own fixed deviation from base entry — not a cumulative step×multiplier ladder. AO1 at −2%, AO2 at −5%, AO3 at −9.5%, AO4 at −16%, AO5 at −25%. Sizes scale 1.8× from a 900 USDT first AO: 900 / 1,620 / 2,916 / 5,249 / 9,448, on a 500 USDT base. Deeper rungs trigger only on serious adverse moves; the lowest sits a full 25% below base. The 1.8× progression is softer than a 2× doubling martingale.

Exit, fixed 3% TP: A fixed 3% Take Profit above the running average entry. Because the scaling ladder weights the average toward the lowest fills, after several rungs fill the average sits well below base — so a modest 3% bounce off the lows closes the whole deal in profit. No trailing.

Risk, bounded ladder in place of a stop: There is no stop loss. Per-trade risk is structurally capped by the bounded 5-AO ladder — base + 5 AOs = ~20,633 USDT max deployed, ~20.6% of the default 100k equity, above the conventional 5–10% per-trade band; scale the base/AO inputs down to dial exposure lower.

DCA Bot integration: Every event (base, AO 1–5, exit) emits a webhook-ready JSON payload. One alert with "Any alert() function call" drives a DCA Bot end-to-end, no glue layer.

Backtest (BYBIT:ATOMUSDT.P 4h, Jan 1 2024 – Jun 24 2026, ~30 months; 100,000 USDT initial capital, 500 USDT base + 900/1,620/2,916/5,249/9,448 AOs, 0.06% commission, 3-tick slippage): 84 closed trades, 59 profitable (70.24% WR), profit factor 3.417, net profit +4,739.50 USDT (+4.74%), max equity drawdown 4,608.66 USDT (4.57%).

Methodology notes:
The key word in all of this is recoverable. This setup turns deep dips into profit when the asset bounces back — it is the right tool for volatile coins whose flushes historically mean-revert, and the wrong tool for one in genuine terminal decline. On a coin that actually keeps going toward zero, the ladder loads its biggest orders near the bottom and then holds an unhedged position with no stop, so the honest framing is: deep dips can be turned into profit when they recover, not when they don't. Choose the asset and regime accordingly.

On sample size — 84 closed trades is below the ~100-trade floor for statistical confidence. That's the trade-off of a selective trigger: fewer signals, so the 70.24% win rate and PF 3.417 are indicative of how the ladder behaves, not a deterministic edge. Part of that PF is the averaging mechanic itself — deals close on a 3% bounce off an averaged-down entry — not a directional edge. Extend the window or test across assets before sizing up.

This is a scaling martingale, and that's the dominant risk. The ladder bottoms out at −25% from base with no stop loss. A sustained ATOM decline below −25% without recovery leaves the full position open with no further averaging available — the single largest risk in any martingale DCA. The 4.57% max drawdown is closed-trade equity drawdown over a window where dips recovered; a deeper or more prolonged decline than the test sample would produce a larger one.

The defaults (RSI<28, 4h, the −2/−5/−9.5/−16/−25 ladder, 1.8× sizing) are calibrated for ATOM's volatility. The mechanic is asset-agnostic and can be pointed at other liquid perps, but each symbol needs the RSI level and ladder recalibrated, and results do not transfer without that tuning. With a fixed 3% take-profit the per-trade edge is modest, so match the 0.06% commission to your venue's actual taker fee before reading anything into the numbers.

Strategy is open-source on TradingView: https://www.tradingview.com/script/lnBGmMLT-ATOM-RSI-Strategy-3Commas/

u/vitaliy3commas — 13 hours ago

Bitcoin trading strategy - DCA and grid bot setups for BTC, settings + backtest (4h)

I wanted to share a practical look at two automated BTC setups on the 4-hour chart, and more importantly, when each one actually fits the market.

The honest bit up front: a grid's result depends almost entirely on the market phase and where you place the bounds, so I'm not going to throw a return figure at you for the grid. I'll show the DCA backtest, since that one's a fixed mechanic you can verify yourself, and for the grid I'll walk through how it works and how I place the range, because that's the part that actually decides the outcome.

Why BTC specifically: it's the benchmark coin, and it moves with lower relative volatility than the alts. It's driven more by macro, ETF flows and the halving cycle than by the reflexive local swings you get on smaller caps. That lower volatility suits wide DCA ladders and conservative grids, and it also means deep oversold flushes are rare, which you'll see in the low trade count on the DCA side.

Setup 1: RSI oversold DCA bot

Parameter Default
Entry 4h RSI(14) below 28
Base order 500 USDT
Safety orders 5 at −2 / −5 / −9.5 / −16 / −25% from base
AO sizing 1.8× per rung (900, 1,620, 2,916, 5,249, 9,448)
Take profit 3% above blended average
Stop loss None (the bounded ladder is the risk cap)
Max deployed ~20,633 USDT (~20.6% of 100k equity)

Backtest (BYBIT:BTCUSDT.P 4h, Jan 1 2024 to Jun 29 2026, ~30 months; 100k initial, 0.06% commission, 3-tick slippage): 62 closed trades, 44 profitable (70.97% WR), profit factor 4.028, net profit +3,078.29 USDT (+3.08%), max equity drawdown 3,852.12 USDT (3.79%).

I'd read that as a low-return, low-drawdown profile. The point is risk control, not the size of the return. Worth being straight about it: 62 trades is below the ~100 I'd want for real statistical confidence (BTC's low volatility means few RSI<28 flushes), so I treat the win rate and PF as indicative rather than proven. Part of that profit factor is the averaging mechanic itself too, not a directional edge. And with no stop loss, a sustained drop below the −25% bottom rung leaves the position fully loaded, which is the risk you're carrying.

Setup 2: grid bot, and why the phase is everything

A long-only geometric grid: 50 levels between a High and Low bound, buy a step down, sell a step up, repeat. The mechanic is almost trivial. Where the whole result actually lives is in where you put the bounds and whether the market stays in a range. Get the zone right and it harvests the chop; get it wrong and the same code just sits with loaded slots waiting for a reversal.

That's why I won't post a grid "return." It isn't really a property of the strategy, it's a property of your bounds against the regime. Two concrete BTC examples of the zone shifting as the phase changed:

May 2022 to Oct 2023: the working range was roughly 17,800 to 30,600. BTC spent that stretch grinding sideways in that band, which is exactly what a grid wants.

2026 now: that band is long gone. The range I'm running sits around 51,630 to 83,690, 50 levels, about 0.99% per step.

Same bot, completely different bounds, because the phase moved. So a grid isn't set-and-forget. You re-place the High/Low whenever the regime changes, and you size total investment for a possible range-break, because there's no stop and slots keep loading if price leaves the bottom of the range. Grids suit range-bound, mean-reverting phases. A strong trend out of the band is the failure mode.

How to run either: both emit webhook-ready JSON on every fill and close. One TradingView alert set to "Any alert() function call" pointed at a DCA Bot's webhook drives it end to end, no glue layer.

Both are open-source on TradingView:
Grid (2026 setup): https://www.tradingview.com/script/g21PPncR-3Commas-BTC-Grid-Long-Indicator/ DCA setup: https://www.tradingview.com/script/eZsaqsZY-BTC-RSI-Strategy-3Commas/

Happy to answer technical questions in the thread.

u/vitaliy3commas — 4 days ago

RSI Oversold DCA Strategy — fixed 3% TP vs trailing exit, tested on XRP (4h)

Follow-up to the earlier RSI DCA posts (same logic I ran on POL, JUP, ETH). Last time I said I'd test whether a trailing exit could pull more out of this than the fixed 3% take-profit. I ran both on XRP — here's what came back.

Same long-only DCA: a selective deep-oversold 4h RSI entry and a scaling safety-order ladder, closed at a fixed take-profit above the blended average. Backtest is verifiable in TradingView's Strategy Report on the script page.

Fixed 3% TP vs trailing — the result: On this XRP window, at matched risk (~1.00% max drawdown either way), the fixed 3% TP came out clearly ahead: +3.45% net vs +1.85% net for the trailing variant. My read is that in the current chop-and-grind regime, deals close cleanly on the bounce and a trail mostly gives edge back to noise — the fixed target banks the snap-back before price wobbles. In a strong bull leg I'd expect the opposite: rebounds run further, and a fixed 3% leaves money on the table, so the trailing variant is worth testing there. Defaults ship with the fixed TP; the trailing inputs are exposed if you want to run the bull-market variant yourself.

Entry, deep-oversold gate (no repaint): A 4-hour RSI(14), sampled with lookahead disabled, gates the base entry — a long opens only when RSI prints below 28 at host-bar close. Shallow dips are filtered out.

Ladder, 5 safety orders on a non-uniform fixed-deviation ladder: Each safety order has its own fixed deviation from base entry. AO1 at −2%, AO2 at −5%, AO3 at −9.5%, AO4 at −16%, AO5 at −25%. Sizes scale 1.8× from a 900 USDT first AO: 900 / 1,620 / 2,916 / 5,249 / 9,448, on a 500 USDT base. The 1.8× progression is softer than a 2× doubling martingale — concentrates size in the deeper rungs but caps deployment lower.

Exit, fixed 3% TP: A fixed 3% Take Profit above the running average entry. Because the scaling ladder weights the average toward the lowest fills, after several rungs fill the average sits well below base — so a modest 3% bounce off the lows closes the whole deal in profit.

Risk, bounded ladder in place of a stop: No stop loss. Per-trade risk is structurally capped by the bounded 5-AO ladder — base + 5 AOs = ~20,633 USDT max deployed, ~20.6% of the default 100k equity, above the conventional 5–10% band; scale the inputs down to dial exposure lower.

DCA Bot integration: Every event (base, AO 1–5, exit) emits a webhook-ready JSON payload. One alert with "Any alert() function call" drives a DCA Bot end-to-end.

Backtest, fixed-TP version (BYBIT:XRPUSDT.P 4h, Jan 1 2024 – Jun 29 2026, ~30 months; 100,000 USDT initial capital, 500 USDT base + 900/1,620/2,916/5,249/9,448 AOs, 0.06% commission, 3-tick slippage): 75 closed trades, 57 profitable (76.00% WR), profit factor 13.058, net profit +3,450.27 USDT (+3.45%), max equity drawdown 1,010.83 USDT (1.00%). The trailing variant on the same window returned +1.85% net at the same ~1.00% max drawdown.

Methodology notes:
Read the numbers for what they are — a low-return, low-drawdown profile. +3.45% over ~30 months with 1.00% max drawdown is a risk-control profile, not a growth engine.

On sample size — 75 closed trades is below the ~100-trade floor for statistical confidence, the trade-off of a selective trigger. The 76.00% win rate and PF 13.058 are indicative of how the ladder behaves on this window, not a forward edge. And the very high PF is partly the averaging mechanic itself — deals close on a 3% bounce off an averaged-down entry — not a directional edge. The A/B above is a single-window comparison too, so treat "fixed beats trailing here" as a finding on this regime, not a universal rule.

This is a scaling martingale, and that's the dominant risk. The ladder bottoms at −25% with no stop loss — a sustained XRP decline below −25% without recovery leaves the full position open with no further averaging. The 1.00% max drawdown is closed-trade equity drawdown over a window where dips recovered; a deeper decline than the test sample would produce a larger one.

Defaults (RSI<28, 4h, the ladder, 1.8× sizing) are calibrated for XRP. With a fixed 3% TP the per-trade edge is modest, so match the 0.06% commission to your venue before reading into the numbers.

Strategy is open-source on TradingView: https://www.tradingview.com/script/dLdjnPLD-XRP-RSI-Strategy-3Commas/

u/vitaliy3commas — 7 days ago

ETH RSI Strategy

Same strategy I posted for POL and JUP — identical logic, this time on ETH, since it's the one most people actually want to run this kind of thing on. A long-only DCA with a selective deep-oversold 4h RSI entry and a scaling safety-order ladder. Steady, low-drawdown profile rather than a high-return one: positive expectancy with tight risk control, not a big number. Backtest is verifiable in TradingView's Strategy Report on the script page.

Entry, deep-oversold gate (no repaint): A 4-hour RSI(14), sampled with lookahead disabled, gates the base entry — a long opens only when RSI prints below 28 at host-bar close. Shallow dips are filtered out, so capital is committed only at genuinely stretched conditions.

Ladder, 5 safety orders on a non-uniform fixed-deviation ladder: Each safety order has its own fixed deviation from base entry — not a cumulative step×multiplier ladder. AO1 at −2%, AO2 at −5%, AO3 at −9.5%, AO4 at −16%, AO5 at −25%. Sizes scale 1.8× from a 900 USDT first AO: 900 / 1,620 / 2,916 / 5,249 / 9,448, on a 500 USDT base. Deeper rungs trigger only on serious adverse moves; the lowest sits a full 25% below base. The 1.8× progression is softer than a 2× doubling martingale — it still concentrates size in the deeper rungs but caps maximum deployment lower.

Exit, fixed 3% TP: A fixed 3% Take Profit above the running average entry. Because the scaling ladder weights the average toward the lowest fills, after several rungs fill the average sits well below base — so a modest 3% bounce off the lows closes the whole deal in profit. No trailing.

Risk, bounded ladder in place of a stop: There is no stop loss. Per-trade risk is structurally capped by the bounded 5-AO ladder — base + 5 AOs = ~20,633 USDT max deployed, no adds beyond AO5. Note that is ~20.6% of the default 100k equity, above the conventional 5–10% per-trade band; scale the base/AO inputs down to dial exposure lower.

DCA Bot integration: Every event (base, AO 1–5, exit) emits a webhook-ready JSON payload. One alert with "Any alert() function call" drives a DCA Bot end-to-end, no glue layer.

Backtest (BYBIT:ETHUSDT.P 4h, Jan 1 2024 – Jun 28 2026, ~30 months; 100,000 USDT initial capital, 500 USDT base + 900/1,620/2,916/5,249/9,448 AOs, 0.06% commission, 3-tick slippage): 93 closed trades, 64 profitable (68.82% WR), profit factor 5.019, net profit +5,790.33 USDT (+5.79%), max equity drawdown 3,976.44 USDT (3.83%).

Methodology notes:
Read the numbers for what they are. +5.79% over ~30 months is a low-return, low-drawdown profile — the headline is the risk control (3.83% max drawdown), not the profit. Positive expectancy with tight risk, not a growth engine, and that's by design with an entry that only fires on deep oversold prints.

On sample size — 93 closed trades is just below the ~100-trade floor for statistical confidence. That's the trade-off of a selective trigger: fewer signals, so the 68.82% win rate and PF 5.019 are indicative of how the ladder behaves, not a deterministic edge. Worth noting the high PF is partly the averaging mechanic itself — deals close on a 3% bounce off an averaged-down entry — not a directional edge. Extend the window or test across assets before sizing up.

This is a scaling martingale, and that's the dominant risk. The ladder bottoms out at −25% from base with no stop loss. A sustained ETH decline below −25% without recovery leaves the full position open with no further averaging available — the single largest risk in any martingale DCA. The 3.83% max drawdown is closed-trade equity drawdown over a window where dips recovered; a deeper or more prolonged decline than the test sample would produce a larger one.

The defaults (RSI<28, 4h, the −2/−5/−9.5/−16/−25 ladder, 1.8× sizing) are calibrated for ETH's volatility. The mechanic is asset-agnostic and can be pointed at other liquid perps, but each symbol needs the RSI level and ladder recalibrated, and results do not transfer without that tuning. With a fixed 3% take-profit the per-trade edge is modest, so match the 0.06% commission to your venue's actual taker fee before reading anything into the numbers.

Strategy is open-source on TradingView: https://www.tradingview.com/script/i90KnZdf-ETH-RSI-Strategy-3Commas/

u/vitaliy3commas — 9 days ago

RSI Oversold DCA Strategy — selective deep-oversold long entry, scaling safety orders (JUP 4h)

Same strategy I posted for POL a while back — identical logic, this time calibrated on JUP. A long-only DCA with a selective deep-oversold 4h RSI entry and a scaling safety-order ladder. It's a steady, low-drawdown profile rather than a high-return one: positive expectancy with tight risk control, not a big number. You can run it with leverage, but on a stopless martingale ladder that mainly multiplies tail risk, so that's very much an at-your-own-risk choice. Backtest is verifiable in TradingView's Strategy Report on the script page.

Entry, deep-oversold gate (no repaint): A 4-hour RSI(14), sampled with lookahead disabled, gates the base entry — a long opens only when RSI prints below 28 at host-bar close. Shallow dips are filtered out, so capital is committed only at genuinely stretched conditions.

Ladder, 5 safety orders on a non-uniform fixed-deviation ladder: Each safety order has its own fixed deviation from base entry — not a cumulative step×multiplier ladder. AO1 at −2%, AO2 at −5%, AO3 at −9.5%, AO4 at −16%, AO5 at −25%. Sizes scale 1.8× from a 900 USDT first AO: 900 / 1,620 / 2,916 / 5,249 / 9,448, on a 500 USDT base. Deeper rungs trigger only on serious adverse moves; the lowest sits a full 25% below base. The 1.8× progression is softer than a 2× doubling martingale — it still concentrates size in the deeper rungs but caps maximum deployment lower.

Exit, fixed 3% TP: A fixed 3% Take Profit above the running average entry. Because the scaling ladder weights the average toward the lowest fills, after several rungs fill the average sits well below base — so a modest 3% bounce off the lows closes the whole deal in profit. No trailing.

Risk, bounded ladder in place of a stop: There is no stop loss. Per-trade risk is structurally capped by the bounded 5-AO ladder — base + 5 AOs = ~20,633 USDT max deployed, no adds beyond AO5. Note that is ~20.6% of the default 100k equity, above the conventional 5–10% per-trade band; scale the base/AO inputs down to dial exposure lower.

DCA Bot integration: Every event (base, AO 1–5, exit) emits a webhook-ready JSON payload. One alert with "Any alert() function call" drives a DCA Bot end-to-end, no glue layer.

Backtest (BYBIT:JUPUSDT.P 4h, Jan 31 2024 – Jun 25 2026, ~29 months; 100,000 USDT initial capital, 500 USDT base + 900/1,620/2,916/5,249/9,448 AOs, 0.06% commission, 3-tick slippage): 83 closed trades, 58 profitable (69.88% WR), profit factor 5.655, net profit +3,990.21 USDT (+3.99%), max equity drawdown 1,573.79 USDT (1.55%).

Methodology notes:
Read the numbers for what they are. +3.99% over ~29 months is a low-return, low-drawdown profile — the headline here is the 1.55% max drawdown, not the profit. It's positive expectancy with tight risk, not a growth engine, and that's by design with a selective entry that only fires on deep oversold prints.

On sample size — 83 closed trades is below the ~100-trade floor for statistical confidence. That's the trade-off of a selective trigger: fewer signals, so the 69.88% win rate and PF 5.655 reflect favorable conditions over this window plus the averaging mechanic, not a deterministic edge. Extend the window or test across assets before sizing up.

This is a scaling martingale, and that's the dominant risk. The ladder bottoms out at −25% from base with no stop loss. JUP is a high-volatility asset — a sustained collapse below −25% leaves the full position open with no further averaging available, the single largest risk in any martingale DCA. The 1.55% max drawdown is closed-trade equity drawdown over a window where dips recovered; it is not a measure of a range-break below the bottom rung. And this is exactly where leverage gets dangerous — it scales that unhedged tail, not the modest base return.

The defaults (RSI<28, 4h, the −2/−5/−9.5/−16/−25 ladder, 1.8× sizing) are calibrated for JUP's volatility. The mechanic is asset-agnostic and can be pointed at other liquid perps, but each symbol needs the RSI level and ladder recalibrated, and it's only been tested on JUP — backtest results do not transfer without that tuning. Commission was 0.06% (Bybit taker) — match it to your venue.

Strategy is open-source on TradingView: https://www.tradingview.com/script/0wggzSk5-JUP-RSI-Long-Strategy-3Commas/

u/vitaliy3commas — 11 days ago

RSI Oversold DCA Strategy — rare but selective long entries (POLUSDT.P 4h)

A long-only DCA strategy for POL on the 4h chart, built around a selective deep-oversold entry — a setup for traders who'd rather wait for a stretched condition than trade every dip. One base order, a scaling safety-order ladder that only deepens on serious adverse moves, and a tight recovery target. Backtest is verifiable in TradingView's Strategy Report on the script page.

Entry, deep-oversold gate (no repaint): A 4-hour RSI(14), sampled with lookahead disabled, gates the base entry — a long opens only when RSI prints below 28 at host-bar close. Shallow dips are filtered out, so capital is committed only at genuinely stretched conditions. Ladder, 5 safety orders on a non-uniform fixed-deviation ladder: Each safety order has its own fixed deviation from base entry — not a cumulative step×multiplier ladder. AO1 at −2%, AO2 at −5%, AO3 at −9.5%, AO4 at −16%, AO5 at −25%. Sizes scale 1.8× from a 900 USDT first AO: 900 / 1,620 / 2,916 / 5,249 / 9,448, on a 500 USDT base.

Deeper rungs trigger only on serious adverse moves; the lowest sits a full 25% below base. The 1.8× progression is softer than a 2× doubling martingale — it still concentrates size in the deeper rungs but caps maximum deployment lower.

Exit, fixed 3% TP: A fixed 3% Take Profit above the running average entry. Because the scaling ladder weights the average toward the lowest fills, after several rungs fill the average sits well below base — so a modest 3% bounce off the lows closes the whole deal in profit. No trailing.

Risk, bounded ladder in place of a stop: There is no stop loss. Per-trade risk is structurally capped by the bounded 5-AO ladder — base + 5 AOs = ~20,633 USDT max deployed, no adds beyond AO5. Note that is ~20.6% of the default 100k equity, above the conventional 5–10% per-trade band; scale the base/AO inputs down to dial exposure lower. DCA Bot integration: Every event (base, AO 1–5, exit) emits a webhook-ready JSON payload. One alert with "Any alert() function call" drives a DCA Bot end-to-end, no glue layer. Backtest (BYBIT:POLUSDT.P 4h, Sep 13 2024 – Jun 24 2026, ~21 months; 100,000 USDT initial capital, 500 USDT base + 900/1,620/2,916/5,249/9,448 AOs, 0.06% commission, 3-tick slippage): 72 closed trades, 52 profitable (72.22% WR), profit factor 7.9, net profit +3,583.76 USDT (+3.58%), max equity drawdown 944.08 USDT (0.94%).

Methodology notes:

On sample size — 72 closed trades over ~21 months is below the ~100-trade floor for statistical confidence. That's the trade-off of a selective "rarely but cleanly" entry: fewer signals, so the 72.22% win rate and PF 7.9 reflect favorable conditions over this window plus the averaging mechanic, not a deterministic edge. Treat them as indicative of how the ladder behaves; extend the window or test across assets to build a larger sample before sizing up. This is a scaling martingale, and that's the dominant risk. The ladder bottoms out at −25% from base with no stop loss. POL is a high-volatility asset — a sustained collapse below −25% leaves the full position open with no further averaging available, which is the single largest risk in any martingale DCA. The 0.94% max drawdown is closed-trade equity drawdown over a window where dips recovered; it is not a measure of a range-break below the bottom rung. The setup is built for deep-but-recoverable mean-reverting moves — choose regimes accordingly.

The defaults (RSI<28, 4h, the −2/−5/−9.5/−16/−25 ladder, 1.8× sizing) are calibrated for POL's volatility. The mechanic is asset-agnostic and can be pointed at other liquid perps, but each symbol needs the RSI level and ladder recalibrated, and it's only been tested on POL — backtest results do not transfer without that tuning. Commission was 0.06% (Bybit taker) — match it to your venue.

Strategy is open-source on TradingView: https://www.tradingview.com/script/YBB12317-POL-RSI-Long-Strategy-3Commas/

u/vitaliy3commas — 13 days ago

ARB RSI Short — short-only DCA strategy, selective 4h RSI rollover entry (ARBUSDT.P 4h)

A short-only, momentum-fade DCA strategy for Arbitrum on the 4h chart. The whole design is built around a deliberately selective entry — a higher-timeframe overbought rollover. Posting this one as much for the entry discipline as anything; the backtest sample is small by design, and I'll be upfront about that below. Backtest is verifiable in TradingView's Strategy Report on the script page.

Entry, higher-timeframe RSI rollover (no repaint): A 4-hour RSI(14), sampled with lookahead disabled, gates the base short. It opens only when RSI was ≥ 74 on the prior 4h close and drops below 74 on the current close — an overbought-to-neutral rollover. On a 4h timeframe that's a selective event, so capital is committed only at stretched conditions, not on every intraday spike.

Ladder, 2 averaging orders above entry: Two safety orders sit at fixed +5% and +10% above the base short, sized 1.7× per rung (base 500 → AO1 850 → AO2 1,445). If price keeps climbing the averaging raises the short's average entry, shrinking the move-down needed to hit target.

Exit, fixed 6% TP: A fixed 6% Take Profit below the running average entry. When close reaches it, the position closes at market. No trailing.

Risk, bounded ladder in place of a stop: There is no stop loss. Per-trade risk is structurally capped by the bounded 2-AO ladder — base + 2 AOs = ~2,795 USDT max deployed, no adds beyond AO2. Note that is ~27.95% of the default 10k equity, above the conventional 5–10% per-trade band; scale the base/AO inputs down to dial exposure lower.

DCA Bot integration: Every event (base, each AO, exit) emits a webhook-ready JSON payload. One alert with "Any alert() function call" drives a DCA Bot end-to-end, no glue layer.

Backtest (BYBIT:ARBUSDT.P 4h, Aug 2025 – Jun 21 2026, ~10.5 months; 10,000 USDT initial capital, 500 USDT base + 850/1,445 AOs, 0.06% commission, 3-tick slippage): 10 closed trades, 8 profitable (80.00% WR), profit factor 16.189, net profit +530.08 USDT (+5.30%), max equity drawdown 448.19 USDT (4.48%).

Methodology notes — read this before the numbers:
Over ~10.5 months the strategy produced only 10 closed trades — far below the ~100-trade floor for statistical relevance. The 80% win rate and PF 16.189 are a direct consequence of that small, selective sample and should not be read as a forward edge. Treat them as a demonstration of the entry's discipline, not a performance claim: this entry fires roughly once a month and was clean on the handful of times it fired over this window — nothing more. Validate across more assets before committing capital.

The bigger structural risk is the absence of a stop combined with the fade direction. With no stop, a sustained rally above the +10% top rung leaves the full position open and unhedged until price reverts to the 6% target — the single largest risk here. The bounded ladder caps how much is deployed (~28% of equity), not how far price can run against the unhedged remainder. Fading strength suits ranges; a relentless uptrend is the failure mode.
The mechanic (HTF RSI rollover + bounded averaging ladder) is asset-agnostic and can be pointed at other liquid altcoin perps, but defaults are calibrated for ARB and need recalibration per asset — and it's only been tested on ARB, so portability of the logic isn't evidence of portability of the results.

Strategy is open-source on TradingView: https://www.tradingview.com/script/ZiHWqvCl-ARB-RSI-Short-Strategy-3Commas/

u/vitaliy3commas — 15 days ago

BCH Overbought RSI Fade — short-only momentum-fade DCA strategy, RSI rollover entry, hard 8% stop (BCHUSDT.P 5m)

A short-only, momentum-fade DCA strategy for Bitcoin Cash, running on BCHUSDT.P 5m. The deal arms when a fast push higher exhausts itself, averages up on a compact ladder if price keeps climbing, and exits on a trailing take-profit — with a hard stop defining the worst case in advance. Backtest is verifiable directly in TradingView's Strategy Report on the script page.

Entry, RSI rollover (no repaint): A 5-minute RSI(9), pulled with lookahead disabled, gates the base short. The trigger isn't a static overbought reading — it fires on the rollover: RSI was ≥ 80 on the prior 5m close and drops below 80 on the current close. That skips trades that ignite while momentum is still rising and waits for the actual turn.

Ladder, 3 uniform averaging orders above entry: Three safety orders sit at fixed +1% / +2% / +3% above the base short, each 250 USDT (half the 500 USDT base) — uniform sizing, not a martingale. If price keeps climbing, the averaging raises the short's average entry and shrinks the bounce needed to reach target.

Exit, trailing take-profit: Once price reaches 1.3% below the running average, a trailing exit arms; the strategy then tracks the in-favor low and closes on a 0.3% retrace off it — banking the snap-back while still letting an extended drop run.

Risk, a real bounded stop: A hard 8% stop above the average closes the deal at market if the short keeps running against the position. This is the core distinction from classic stopless martingale shorts — the worst case is known up front. Base + three AOs deploy at most ~1,250 USDT (~12.5% of equity); an 8% stop on that caps the worst case near ~1% of equity.

DCA Bot integration: Every event (base, each AO, exit) emits a webhook-ready JSON payload. Connect one alert with "Any alert() function call" to a DCA Bot's webhook URL and the strategy drives the bot end-to-end, no glue layer.

Backtest (BYBIT:BCHUSDT.P 5m, Jan 26 – Jun 19 2026, ~4.8 months; 10,000 USDT initial capital, 500 USDT base + 3×250 USDT AOs, 0.06% commission, 3-tick slippage, 1× isolated): 160 closed trades, 135 profitable (84.38% WR), profit factor 2.207, net profit +401.25 USDT (+4.01%), max equity drawdown 179.15 USDT (1.78%).

Methodology notes:
 The sample is decent — 160 closed trades over ~4.8 months clears the ~100-trade floor for statistical relevance, so PF 2.207 and the 84.38% win rate rest on a real number of deals. They still reflect a single test window on one asset, so treat them as indicative and broaden the test (longer period or more assets) before sizing up.
The 8% stop is the core risk control, and it has to stay on — without it the averaging ladder turns into an unbounded short. The trade-off of any fade strategy is trend risk: fading strength suits ranges and choppy tape, and in a relentless uptrend the short can be stopped out repeatedly. The rollover trigger reduces that risk but does not remove it.
This is a 5m strategy with a 5m RSI trigger, so it's signal-dense — fast timeframes mean more fills and more fee/slippage drag. Commission was set at 0.06% (Bybit perpetual taker); on a high-frequency short, fee assumptions move the result materially, so match this to your venue's actual fees before reading anything into the numbers.

Strategy is open-source on TradingView: https://www.tradingview.com/script/vnCdOkpO-3Commas-BCH-Overbought-RSI-Fade-Short-Strategy/

u/vitaliy3commas — 18 days ago

MA cross + CCI confluence — long-only mean-reversion signal indicator with trailing exit (BTCUSDT.P 1h)

A signal-only Pine indicator that visualizes a long-only mean-reversion framework: dual-confluence entry (MA cross-under + CCI oversold), a virtual deal lifecycle tracked on the chart with a trailing take-profit and a hard stop, and webhook-ready alerts for automated execution. The indicator places no orders itself — it's a pure signal and visualization layer. Companion Strategy version is on the same profile for fee-adjusted backtest in TradingView's tester.

Entry, dual-indicator confluence: A long fires only when two conditions align within a configurable keep-alive window — SMA(24) crossing below SMA(31) AND CCI(11) dropping below −80, both on the signal timeframe (default 1h). The MA cross-under marks short-term momentum exhaustion against the medium-term trend; the CCI extreme confirms a statistical oversold. Requiring both filters out the single-indicator false positives that either condition throws in sideways regimes. The keep-alive window (default 3 bars) lets the two confirmations align without demanding exact same-bar synchronization.

Exit, true trailing with peak-tracking: Two exits arm at once. The trailing exit activates at Entry × (1 + TP%), then follows the running peak and fires when price retraces by the configured deviation from that peak — a real trailing simulation computed off the running high, not a fixed-target shortcut. The hard stop closes at Entry × (1 − SL%). Whichever fires first wins. Defaults: +1.5% trailing activation, 0.05% trailing deviation, −3.25% hard stop. Single entry per cycle — no averaging, no safety-order ladder.

Signal-timeframe independence: The signal timeframe is decoupled from the chart timeframe, so you can run a 15m chart with 1h signals — fine-grained visualization with structural signal timing.

Bot integration: Two alert events — "Deal Start" on each combined entry, "Deal Close" on any of the exit conditions — ship with webhook-ready JSON payloads. Bot ID, Email Token, and pair label are inputs, embedded automatically into the alert message.

Backtest from the companion Strategy (BYBIT:BTCUSDT.P 1h, full sampled period in the Strategy Report): 457 closed trades, 329 profitable (71.99% WR), profit factor 1.628, net P&L +108.55 USDT (+1.09%), max drawdown 11.11 USDT (0.11%).

Methodology notes:
 This is positioned as a capital-preservation framework, so read the numbers through that lens — the headline is the drawdown profile, not the size of the return. Max drawdown stayed at 0.11% across 457 trades, with a 71.99% win rate and PF 1.628. Positive expectancy with very tight risk; the net return (+1.09%) is modest by design, not a growth play. If you want a high-return engine this isn't it — if you're studying a low-risk confluence filter with controlled downside, the risk-adjusted shape is the point.
On the plus side for confidence, the sample is real: 457 closed trades is well above the ~100-trade floor for statistical relevance, so the win rate and PF rest on a meaningful number of deals rather than a handful.

The on-chart stats card uses a simplified internal model that does not factor commission or slippage, and the trailing exit approximates intra-bar execution off the bar high. Use the Strategy version for fee-adjusted results — on a PF of 1.628, fees and slippage still matter and can erode part of the edge.

No higher-timeframe regime filter: the framework can signal long entries during sustained downtrends, and with a single entry capped at the −3.25% hard stop there's no averaging recovery. Defaults are calibrated for BTC 1h; MA lengths, CCI threshold, and the exit parameters should be tuned per instrument volatility before redeployment. For bearish regimes, consider gating alerts with a higher-timeframe trend filter.

Indicator is open-source on TradingView: https://www.tradingview.com/script/Qgoi5jEL-3Commas-Trail-Hunter-Indicator/ The Strategy twin is also on the same profile.

u/vitaliy3commas — 20 days ago

Dual RSI DCA — long DCA strategy, RSI-gated entry, RSI-confirmed exit (INJUSDT 3m)

Dual RSI DCA — a long-only DCA strategy that captures oversold-to-overbought rotations confirmed by two independent RSI conditions on a lower timeframe, running on INJUSDT.P 3m. Both ends of the deal are gated by momentum, not just price. Backtest is verifiable directly in TradingView's Strategy Report on the script page.

Entry, RSI cross-up out of oversold (no repaint): A 3-minute RSI(14), sampled with lookahead disabled, gates the base entry — a long opens only when RSI crosses up the oversold level (default 31) and no position is open. Cross is detected at host-bar close against the previous host bar's reading.

Ladder, 5 safety orders with soft compounding: After the base fill, deviations downward from base entry: 1.30%, 2.99%, 5.18%, 8.04%, 11.75% (1.3% first step, 1.3× step multiplier). Each safety order's size grows at 1.25× — soft compounding, not an aggressive martingale. Pure price-trigger ladder, no RSI gate on the safety orders.

Exit, profit-armed and momentum-gated: This is the core mechanic. The take profit does not fire on a static target. The exit gate is checked only once price reaches the minimum-profit threshold above average entry (default 2.4%), and then fires only when the 3m RSI crosses down out of overbought (default 69). Winners run while RSI keeps climbing; the position closes when momentum rolls over, not at a fixed distance.

DCA Bot integration: Every event (base, AO 1–5, exit) emits a webhook-ready JSON alert payload. Connect one alert with "Any alert() function call" to a DCA Bot's webhook URL and the strategy drives the bot end-to-end, no glue layer.

Backtest (BYBIT:INJUSDT.P 3m, Mar 16 – Jun 11 2026, ~2.9 months; 10,000 USDT initial capital, 90 USDT base order, 0.08% commission, 3-tick slippage): 102 closed trades, 86 profitable (84.31% WR), profit factor 15.628, net profit +223.16 USDT (+2.23%), max equity drawdown 204.77 USDT (1.98%).

Methodology notes:
 On sample size — 102 closed trades is just above the ~100-trade floor for statistical relevance, not comfortably above it. The 84.31% win rate and 15.628 profit factor reflect favorable conditions over a ~2.9-month window plus the profit-armed exit mechanic; treat them as indicative of how the setup behaves, not a forward guarantee. Extending the window or testing across assets is the right next step before reading anything firm into them.

The defaults (RSI 31/69, 3m, the 1.30%/1.3×/1.25× ladder) are calibrated for INJUSDT.P. The dual-RSI mechanic is portable to other liquid crypto perps that mean-revert from oversold, but thresholds and the ladder should be reviewed per asset — results do not transfer without that tuning.

Like any oversold-reversal setup, this is positioned for ranges and rotations, not waterfall declines. In a sustained downtrend it can fill the full 5-AO ladder and hold while price grinds lower. There is no stop loss: per-trade risk is structurally capped by the bounded ladder — base 90 + AO sum ≈ 903 = ~993 USDT max deployed, ~9.93% of equity, inside the conventional 5–10% band. If a hard stop is required, layer it on the bot side.

Funding is not in the backtest. For a long perp strategy, sustained negative funding (shorts pay longs) is a tailwind and sustained positive funding is a drag — review the pair's funding history before live deployment.

Strategy is open-source on TradingView: https://www.tradingview.com/script/VPIQUHD7-3Commas-Dual-RSI-DCA-INJ-Long-Strategy/

u/vitaliy3commas — 23 days ago

NOT Grid Bot — long-only geometric grid strategy, 20 levels, per-slot webhook ledger (1,011 trades backtested)

The mechanics of a grid are almost trivial — a ladder of levels, buy a step down, sell a step up, repeat. Where the entire result actually lives is the range: pick the High/Low well and a dead-simple grid harvests the chop; pick it badly and the same code sits with loaded slots waiting for a reversal. Posting this NOT config partly to make that point concrete — the strategy is simple, the level selection is the whole job.

NOT Grid Bot — a long-only price-grid strategy that harvests volatility on NOT/USDT through repeated round-trips on a fixed ladder of price levels between two bounds, running on NOT 15m. Each level is an independent slot: price crossing down through a level opens that slot; price crossing up through the level immediately above closes it for a fixed round-trip profit. Backtest is verifiable directly in TradingView's Strategy Report on the script page.

Grid construction: 20 levels between a configured High and Low. In Geometric mode (default), level k sits at High × (Low/High)^(k/(N−1)), giving constant percent spacing — roughly 1.0% per step. Arithmetic mode spaces by absolute price instead. The step is deliberately wider than a tight scalp grid so each round-trip clears the taker fee.

Per-slot logic: Each level is an independent slot with its own ownership flag. Bar close moving down through an empty slot's level opens a long there for one slot's capital (Investment / N). Bar close moving up through the level above an owned slot closes it, locking the round-trip between the two adjacent levels. No trailing, no momentum gate — pure mechanical execution.

No trailing, no stop loss — by design: Each slot's exit is the level above its entry. Slots whose entry sits below current market wait until price returns. Per-trade risk is structurally capped by the per-slot allocation; aggregate unrealized exposure is controlled separately via the Investment input. Two independent controls — that separation is what people miss when they call grids reckless.

Honest backtest surface: The avg-entry line on the chart and the open PnL in the status table both reflect the actual broker-equivalent position state from fill-by-fill bookkeeping, not synthetic averaging. The status table also shows cumulative realized net profit in USDT and % of starting capital, so live performance is visible on the chart.

Backtest (BYBIT:NOTUSDT.P 15m, Apr 1 2025 – Jun 10 2026, ~14.3 months; 10,000 USDT initial capital, 100% invested, 500 USDT per slot, 0.06% commission, 3-tick slippage): 1,011 closed trades, 589 profitable (58.26% WR), profit factor 1.808, net profit +3,287.62 USDT (+32.88%), max equity drawdown 1,344.70 USDT (12.13%). Grid bounds High 0.0004277 / Low 0.0003518 (range −17.75%).

Methodology notes: The trade count carries this — 1,011 closed trades over ~14.3 months is far above the ~100-trade floor for statistical relevance, so PF 1.808 and the 58.26% win rate rest on a real sample. That's the honest version of "simple setup": a modest per-round-trip edge compounded over a high trade count, not a large per-trade magnitude.
But the result is entirely conditional on the range holding, and NOT makes that point sharp. NOT is a low-priced, high-volatility small-cap, and the grid range here is only ~17.8% wide — a strong directional move exits the range quickly and leaves the lowest slots loaded until price comes back. The 12.13% max drawdown was measured over a window where the range held; it is not a measure of a range-break. The +32.88% is what a correctly-placed range returned over this period, not a forward expectation. Reassess the bounds frequently and size the Investment for a possible break.

The default Investment of 10,000 USDT is 100% of starting capital — a high-conviction setting that assumes the range holds. Per-slot risk is ~5.00% of equity (inside the conventional 5–10% band), but aggregate unrealized loss can grow past that if price collapses below the Low.
Commission was 0.06% per trade — on a 1,011-trade grid, fee assumptions move the result materially, so match this to your exchange's actual taker fee before reading anything into the numbers.

Every fill and close emits a webhook-ready JSON payload tagged with the specific slot ("Grid_BUY_L5" / "Grid_TP_L5"). One alert with "Any alert() function call" drives a DCA Bot configured for grid execution, with each level trackable independently downstream.

Strategy is open-source on TradingView - https://www.tradingview.com/script/SBFz8vXU-3Commas-NOT-Grid-Bot-Long-Strategy/

u/vitaliy3commas — 25 days ago

XLM Grid Bot — long-only geometric grid strategy, 50 levels, per-slot webhook ledger (1,076 trades backtested)

Grid strategies get dismissed more than they deserve — usually because "no stop loss" gets read as "no risk control." It isn't the same thing. In a properly bounded grid, per-trade risk is capped structurally by per-slot allocation, and aggregate exposure is capped by total investment. Posting this one partly to show that mechanic concretely.
XLM Grid Bot — a long-only price-grid strategy that harvests volatility on XLM/USDT through repeated round-trips on a fixed ladder of price levels between two bounds, running on XLM 15m. Each level is an independent slot: price crossing down through a level opens that slot; price crossing up through the level immediately above closes it for a fixed round-trip profit. Backtest is verifiable directly in TradingView's Strategy Report on the script page.

Grid construction: N levels between a configured High and Low. In Geometric mode (default), level k sits at High × (Low/High)^(k/(N−1)), giving constant percent spacing — roughly 1.0% per step at 50 levels. Arithmetic mode spaces levels by absolute price instead. The percent step is deliberately wider than a tight scalp grid so each round-trip clears the taker fee.

Per-slot logic: Each level is an independent slot with its own ownership flag. Bar close moving down through an empty slot's level opens a long there for one slot's capital (Investment / N). Bar close moving up through the level above an owned slot closes it, locking the round-trip between the two adjacent levels. No trailing, no momentum gate — pure mechanical execution.

No trailing, no stop loss — by design: Each slot's exit is the level above its entry. Slots whose entry sits below current market simply wait until price returns. This is canonical grid behavior. Per-trade risk is structurally capped by the per-slot allocation; aggregate unrealized exposure is controlled separately via the Investment input. The two are independent controls, which is the part most "grids are reckless" takes miss.

Honest backtest surface: The avg-entry line on the chart and the open PnL in the status table both reflect the actual broker-equivalent position state from fill-by-fill bookkeeping, not synthetic averaging. The status table also shows cumulative realized net profit in USDT and % of starting capital, so live performance is visible on the chart.

Backtest (BYBIT:XLMUSDT.P 15m, Feb 1 – Jun 9 2026, ~4.3 months; 10,000 USDT initial capital, 100% invested, 200 USDT per slot, 0.06% commission, 3-tick slippage): 1,076 closed trades, 670 profitable (62.27% WR), profit factor 1.932, net profit +2,167.03 USDT (+21.67%), max equity drawdown 761.57 USDT (7.53%). Grid bounds High 0.22347 / Low 0.13698.

Methodology notes: The trade count is the strength here — 1,076 closed trades over the window is far above the ~100-trade floor for statistical relevance, so PF 1.932 and the 62.27% win rate rest on a meaningful sample rather than a handful of lucky deals. That's the case for grids that's underrated: a modest per-round-trip edge compounded over a high trade count, not a big per-trade magnitude.
The catch is that the entire result is conditional on the range holding. The default High/Low was set against XLM's recent observed range. On a strong directional move below the Low bound, slots keep loading as price falls and won't close until price reverses — the 7.53% max drawdown is measured over a window where the range held, and it is not a measure of a range-break scenario. Update both bounds whenever the regime changes, and scale the Investment input down to the worst-case drawdown you're willing to absorb if the range fails.

The default Investment of 10,000 USDT is 100% of starting capital — a high-conviction setting that assumes the range holds. Per-slot risk is low (~2.00% of equity, inside the conventional 5–10% band), but aggregate unrealized loss can grow past that if price collapses below the Low.

Commission was set at 0.06% per trade — on a 1,076-trade grid, fee assumptions move the result materially, so match this to your exchange's actual taker fee before reading anything into the numbers.

Every fill and close emits a webhook-ready JSON payload tagged with the specific slot ("Grid_BUY_L5" / "Grid_TP_L5"). One alert with "Any alert() function call" drives a DCA Bot configured for grid execution, with each level trackable independently downstream.
Strategy is open-source on TradingView.

Link: https://www.tradingview.com/script/9ht1ea8N-3Commas-XLM-Grid-Bot-Long-Strategy/

u/vitaliy3commas — 28 days ago

AMZN RSI Oversold Doubling DCA — deep-oversold long DCA indicator, fixed-deviation doubling ladder, 3% TP

AMZN RSI Oversold Doubling DCA — a signal-only Pine indicator that mirrors a dip-buying long workflow with an aggressive doubling-martingale safety ladder, running on AMZN 4h. It tracks one virtual long at a time, opened only on a deep oversold reading. Companion Strategy version is on the same profile for verifying the backtest in TradingView's built-in tester directly.

Entry, deep-oversold gate (no repaint): A 4-hour RSI(14), sampled with lookahead disabled, gates the base entry — the deal opens only when RSI prints below 28 at host-bar close. Shallow dips are filtered out, so capital is committed only at genuinely stretched conditions, not on every pullback.

Ladder, 5 safety orders on a non-uniform fixed-deviation ladder: Each safety order has its own fixed deviation from base entry — not a cumulative step×multiplier ladder. AO1 at −2%, AO2 at −5%, AO3 at −9.5%, AO4 at −16%, AO5 at −25%. Sizes double from a 1,000 USDT first AO: 1,000 / 2,000 / 4,000 / 8,000 / 16,000, on a 500 USDT base. Deeper rungs trigger only on serious adverse moves; the lowest sits a full 25% below base.

Exit, fixed 3% TP: A fixed 3% Take Profit above the running average entry. Once close hits the target the exit webhook fires, realized PnL accumulates into a lifetime counter, and the virtual position resets.

Honest virtual bookkeeping: Total cost and quantity update incrementally on every fill, so average entry, deployed capital, Open PnL, and lifetime Total PnL in the status table reflect the actual broker-equivalent position state — no shortcut from base entry, no synthetic averaging. Open PnL resets per cycle; Total PnL persists across chart history.

Backtest from the companion Strategy (AMZN 4h, ~9.4-month sample in the Strategy Report): 22 closed trades, 20 profitable (90.91% WR), profit factor 21.997, net profit +807.71 USDT (+0.81%), max equity drawdown 199.15 USDT (0.20%). Verifiable directly in TradingView's Strategy Report on the script page.

Methodology notes: Read the backtest with the sample size front of mind. 22 closed trades is well below the ≥100 floor typically used for statistical confidence — the 90.91% win rate and 21.997 profit factor reflect favorable conditions over the test window plus the averaging mechanic, not a deterministic edge or a forward-performance guarantee. Treat them as indicative of how the ladder behaves, not as expected returns.

This is a doubling martingale, and that is the dominant risk. The 1 / 2 / 4 / 8 / 16 size progression scales position capital exponentially against an adverse move. It is hard-bounded by the 5-rung ladder, but if all five safety orders fill, total deployed capital reaches ~31,500 USDT — roughly 31.5% of the default reference equity in a single deal.

The ladder bottoms out at −25% from base, and there is no stop loss. A doubling ladder is built for deep-but-recoverable mean-reverting moves; a sustained directional collapse below −25% leaves the full virtual position open with no further averaging available. That is the single largest risk in any martingale DCA — the 0.20% max drawdown is closed-trade equity drawdown over a window where dips recovered, not a measure of tail risk if one does not.

The mechanic (oversold RSI gate plus a bounded fixed-deviation ladder) is asset-agnostic, but the defaults — RSI<28, 4h, the −2/−5/−9.5/−16/−25 ladder — are calibrated for AMZN's volatility. Any other symbol needs the RSI level and ladder deviations recalibrated before deployment; backtest results do not transfer without that tuning.

Entries and AO fills are evaluated at bar close — a bar that spikes through a level and returns within the same bar may be missed by design, which matches realistic polling and avoids over-signaling on intra-bar wicks.

Every event (entry, each of the 5 safety orders, TP) emits a webhook-ready JSON alert payload — up to seven per cycle. Connect one alert with "Any alert() function call" to a DCA Bot's webhook URL and the indicator drives the bot end-to-end, no glue scripts.
Indicator is open-source on TradingView. The Strategy twin is also up on the same profile.

Link: https://www.tradingview.com/script/G3jmaVFu-3Commas-AMZN-RSI-Oversold-Doubling-DCA-Long-Indicator/

u/vitaliy3commas — 1 month ago

Dual RSI DCA — dual-RSI confirmation long DCA indicator, 5-order ladder, profit-armed exit

Dual RSI DCA — a signal-only Pine indicator that mirrors a dollar-cost-averaging long workflow with a dual-RSI confirmation system, running on HYPEUSDT.P 3m. Companion Strategy version is on the same profile for verifying the backtest in TradingView's built-in tester directly.

Entry, lower-timeframe RSI cross-up: A lower-timeframe RSI(14) crossing up the oversold level (default 31 on 3m) arms the base entry, but only when the indicator is flat. Cross detection happens at host-bar close — a cross that completes and reverses inside a single host bar is skipped by design, which suppresses over-signaling on intra-bar noise.

Ladder, 5 safety orders on a pure price-action ladder: Cumulative deviations from base entry: 1.30%, 2.99%, 5.18%, 8.04%, 11.75%. Step widens at 1.3× per fill, order size scales at 1.25× per fill. No RSI gate on the safety orders — averaging continues unconditionally on price as each threshold is reached.

Exit, profit-armed and momentum-gated: Take profit does not fire on a static target. The exit first arms once price reaches the minimum-profit threshold above the running average entry (default 2.4%), then fires only when the lower-timeframe RSI crosses down from the overbought level (default 69). Profit reached alone is not enough — it waits for momentum to roll over.

Honest virtual tracking: Average entry, total cost, deployed capital, and the minimum-profit target are all computed from the same fill-by-fill bookkeeping a real broker would do — no price-from-base shortcuts. Average entry, fills, and deployed USDT are shown live on the chart.

Backtest from the companion Strategy (HYPEUSDT.P 3m on Bybit, ~Feb 25–May 19 sampled in the Strategy Report): 121 closed trades, 100 profitable (82.64% WR), profit factor 11.703, total PnL +450.27 USDT (+4.50%), max drawdown 74.88 USDT (0.73%). Verifiable directly in TradingView's Strategy Report on the script page.

Methodology notes: The PF 11.703 and 0.73% max drawdown reflect a single asset (HYPEUSDT.P) over a roughly three-month window that was predominantly mean-reverting and upward — these defaults are calibrated for this pair, and RSI levels (31/69) need recalibration for thinner or strongly trending pairs before deployment elsewhere. Results do not transfer to other crypto perps without parameter tuning.
The 0.73% number is closed-trade equity drawdown. Unrealized drawdown during deep safety-order sequences is materially larger and is the relevant number for capital allocation.

No stop loss: there is no exit signal on adverse moves beyond the safety-order ladder. Risk is structurally capped by the bounded position-size sequence — at default settings, base + all five safety orders deploy roughly 9.93% of equity, keeping the trade within the conventional 5–10% band. If a hard stop is required, layer it on the bot side.

Every event (base, each safety order, exit) emits a webhook-ready JSON alert payload formatted for direct DCA consumption — connect one alert to a bot's webhook URL and the indicator drives the bot end-to-end, no glue scripts.

Indicator is open-source on TradingView. The Strategy twin is also up on the same profile. Mod, let me know if linking either is allowed here and I'll add them, otherwise happy to answer technical questions in thread.

Link: https://www.tradingview.com/script/fg9YbNCf-Dual-RSI-DCA-Long-Indicator/

u/vitaliy3commas — 1 month ago

RSI Dip + EMA Trend Long DCA — leveraged long DCA indicator, 25× default, three-exit architecture

https://preview.redd.it/6jiok55q5i3h1.png?width=1717&format=png&auto=webp&s=d045d30cedd9df0b7de09e84eafc16612537d79a

RSI Dip + EMA Trend Long DCA — dual-confirmation leveraged long DCA indicator running on XMRUSDT.P 15m at 25× default leverage. Signal-only Pine indicator with a companion Strategy version for verifying backtest in TradingView's built-in tester directly.

Entry, dual confirmation across two timeframes: RSI(12) crossing down 35 on 5m AND EMA(50) above EMA(100) on 15m. The 5m RSI catches the momentum dip; the 15m EMA stack confirms broader trend bias is up. Either condition alone produces too many entries. Both at host-bar close filter the setup down to oversold dips inside structural uptrends.

Ladder, 4 safety orders with soft margin progression: Cumulative deviations from base entry: 1.00%, 2.20%, 3.64%, 5.37%. Margin scales at 1.05× per fill — much softer than typical 1.5–2.0× DCA martingale. Pure price-trigger ladder, no momentum gate on SOs — averaging continues unconditionally until SL, MaxHold, or reversal.

Three-exit architecture (evaluated in priority order): SL at 9% below average entry, hard stop. MaxHold at 3-day timeout from base entry forces close to release stuck capital. TP at 1.0% above average entry with 0.1% trailing — position closes only after a 0.1% retrace from the in-favor peak.

Most DCA tools use one or two exit conditions. This one handles all three failure modes explicitly — hard tail-risk stop, stuck-trade timeout release, and momentum-trailing winner exit.

Leverage-aware sizing: Margin and leverage are independent inputs. Virtual ledger tracks notional position, so the avg-entry line and open PnL reflect the leveraged broker state, not unleveraged cash-only math. Default 25× leverage; configurable from 1× upward.

Backtest from the companion Strategy (XMRUSDT.P 15m at default 25× leverage, ~11 months sampled in Strategy Report): 779 closed trades, 577 profitable (74.07% WR), profit factor 1.313, total PnL +3,078.80 USDT (+30.79%), max realized drawdown 2,013.77 USDT (18.01%). Verifiable directly in TradingView's Strategy Report on the script page.

Methodology notes:
The default 25× leverage is aggressive. The 18.01% max drawdown is portfolio-level accumulation across 779 trades, not single-trade risk — single-trade losses are bounded by the 9% SL. Lowering the leverage input scales portfolio-level drawdown proportionally.
Single asset (XMRUSDT.P), defaults calibrated for this pair. EMA periods and RSI threshold need recalibration per pair before deployment elsewhere — results do not transfer to other crypto perps without parameter tuning.

The 18.01% number is closed-trade equity drawdown. Unrealized drawdown during deep SO sequences plus open leverage exposure is materially larger and is the relevant number for capital allocation.

PF 1.313 is a modest edge per trade. Returns come from sample size compounded with leverage, not from per-trade magnitude. The 3-day MaxHold release is structurally important here — without it, stuck trades would accumulate unrealized DD indefinitely.
Funding rates aren't included in the backtest. For 15m leveraged long positions on perps, sustained negative funding (shorts pay longs) is a tailwind, sustained positive funding is a headwind — and at 25× leverage, funding drag is amplified accordingly.

Indicator is open-source on TradingView. The Strategy twin is also up on the same profile. Mod, let me know if linking either is allowed here and I will add them, otherwise happy to answer technical questions in thread.

Link: https://www.tradingview.com/script/iE1pTnPv-RSI-Dip-EMA-Trend-Long-DCA-Indicator/

reddit.com
u/vitaliy3commas — 1 month ago