A plain-language walkthrough of how ZEC-USD, HYPE-USD, and DASH-USD actually get bought and sold in this bot today — the reasoning behind every trade, with no code required.
Not every stretch of price action is worth trading. Sometimes a coin is genuinely trending — grinding in one direction with conviction — and sometimes it's just drifting sideways, chopping traders up on every little wiggle. This strategy's whole job is to tell those two situations apart before it risks anything.
It leans on a classic pair of indicators, ADX and DMI, both built from the same underlying math: ADX answers "is there a real trend right now, and how strong is it?" without caring which direction it runs; +DI and −DI answer "which direction?" When +DI is on top, buyers are in charge; when −DI is on top, sellers are. Only once both questions line up — a real trend, running the right way — does the bot act.
Below is one realistic round trip. Buyers take over from sellers (a "golden cross"), the bot waits for a small stack of confirmations before actually buying, rides the move while it strengthens, then sells once sellers retake control and price actually breaks down through the level that move was built on.
The moment +DI crosses above −DI, that bar's high is noted — but purely for reference and for the chart. Unlike the sell side, the buy is not gated on price ever closing above that level. Instead, a whole stack of checks has to clear together, on whichever bar first satisfies all of them:
Once in, the bot can add more to the same position two different ways, and they don't have to agree with each other:
In other words, as configured today this strategy behaves less like a trend-pyramiding system and more like averaging into a position that's moved against it so far — betting that a confirmed uptrend keeps its footing through a pullback. Neither add is re-checked against the volatility/RSI/volume filter stack from the entry — those only ever gate the very first buy.
The moment −DI crosses back above +DI, that bar's low becomes a reference line — and here it genuinely matters. Nothing sells until price actually closes below that line. And unlike the buy-side latch (fixed the moment it forms), this one keeps sliding forward every bar sellers stay in charge, so an ongoing decline keeps testing a moving target instead of needing to crash all the way back to wherever the cross first happened.
There's also a second, independent exit running alongside the one above, live today: if a bearish-looking candle (a shooting star, a bearish engulfing candle, or an RSI divergence) shows up right at a technical ceiling — the top of a Bollinger Band or a known resistance zone — the bot can sell on that alone, without waiting for a −DI cross at all. This catches a topping move that reverses before the DMI lines ever actually flip. It's still held to the same "already profitable" rule as every other sell here.
The very first buy isn't always the same size. The stronger ADX already is the moment the entry fires, the bigger that first buy is, up to a cap — a weak, barely-qualifying trend gets a normal-sized starting position, and a strongly-confirmed one gets scaled up. Every add after that first buy, on the other hand, stays a flat fraction of a normal entry, regardless of how strong the trend gets later — the size ramp only ever applies to the opening trade.
The dip-ladder adds (see "Riding it" above) have their own separate ramp: the deeper the position is underwater when a dip-add fires, the larger that add gets, up to its own cap. A reference stop-loss level is also calculated and logged with every buy signal, based on recent volatility — but nothing in the bot actually acts on it; it's informational only, and the account-wide hard stop-loss remains the only thing that can force a losing position closed.
This strategy can optionally reason on wider candles than the bot actually polls at — trading off 1-hour or 4-hour bars, say, while still checking prices every 15 minutes. For all three pairs today this is effectively off: the configured bar width matches the bot's own base candle size exactly, so there's nothing to resample and the strategy reads plain 15-minute candles start to finish.
If that's ever turned on for a pair, a real timing bug this project ran into is already fixed and stays on automatically: naively resampling on every tick can silently redraw bar boundaries as new data comes in, which used to invent DI crossovers that never actually happened (measured on real history: over a dozen phantom crossovers a week on one pair, versus one genuine one). Bars are instead cut on fixed clock boundaries, and only fully-closed bars are used to decide anything — the one bar still forming only ever contributes the current live price.
ZEC-USD, HYPE-USD, and DASH-USD all currently run under the exact same settings — there's no per-pair customization on file right now. This strategy only exposes three knobs for per-pair tuning in the first place (the buy trigger, the sell trigger, and whether to add on strength); none of the three are currently overridden for any pair. These reflect the live configuration as of this writing; changing any of them requires restarting the bot to take effect.
| Setting | Value |
|---|---|
| Max concurrent lots | 5 |
| Trend-strength floor to trade at all | ADX > 15 |
| Buy-side trend-strength trigger | ADX > 15 (same as the floor above) |
| Sell-side trend-strength trigger | ADX > 5 |
| Trend floor blocks exits too? | no (exits exempt) |
| Add on strengthening trend | off |
| Dip-add ladder | on, every 2% drop |
| Dip-add sizing ramp | up to 2x a normal add, by 10% underwater |
| Add spacing | at least 10 bars apart |
| Hard RSI buy veto | on, blocks buys above RSI 75 |
| Resistance-rejection sell (independent path) | on |
| Breakdown noise buffer | 0.25% past the latched low |
| Bar size used | the bot's own 15-minute candles (no resampling) |
| Seed latch from history on restart | on |
| Minimum profit to sell | ≈0.3% (fee break-even, no extra margin) |
| Stop-loss | 10%, paused while oversold |
| Account-wide profit cap | off (0%) |