Thanks man, it's my first so it's a work in progress.
I don't mind it's just conversation as long as it's not against the rules a mod can remove it if so. It's pretty complex I've been working on it for 8 months roughly now. It's my current passion project, I don't have a financial background and only a grade 8 education.. but I have ideas and a tiny bit of common sense and nothing to lose.
My big thing right now that holds me back is equity and you really need equity for the system to really shine and see nice compounded growth. I have a plan over the next 5 years and hopefully it works out and changes my life. If not at least I tired.
It started out as a basic terminal DCA bot then and I'm just developing it more and more everyday.
View attachment 226402
View attachment 226403
View attachment 226404
Now it's much more advanced with a live dashboard and a lot more metrics, safe guards, watchdogs and lots of other under the hood stuff. Ignore the alerts, I'm working on stuff.

all trading is working I'm just actively changing stuff.
View attachment 226405
I had about $2000 CAD in there for the last 30 days so the results are based on that not the $680 in there now, I had to take out some cash for something and put it back in next month but this screen below is from the exchange itself for the last 30 days.
View attachment 226406
View attachment 226407
View attachment 226408
1. Strategy approach. Pure volatility-harvesting on spot crypto. Not trend-following, not indicator-driven (no MA/RSI/MACD), not arbitrage. The hypothesis is that liquid pairs oscillate around a slowly-moving reference price, and small dips can be bought and sold a few percent higher within hours. The base entry fires when the last price dips below the reference by a small threshold, and the reference ratchets upward as price climbs. Exit is a limit sell at a modest percentage above average cost, repriced on a regular cadence. There is a "momentum detector" that boosts the take-profit if a pair pumps significantly in the recent window, but it does not chase momentum to enter — it just lets winners run a bit further.
2. Pair selection. Auto-selected and re-scored at a regular interval. A multi-dimension scorer ranks all pairs across several weighted factors: liquidity (spread + volume, heaviest weight), volatility positioning (looking for a "sweet-spot" band in the upper-middle percentiles), realized PnL/efficiency, price location relative to reference, data quality, risk-adjusted returns, and pair age. Filters knock out anything with insufficient history, low average daily volume, or abnormal volume spikes. Pairs stuck at high DCA levels get a progressive penalty so the rotation drains them.
3. Sizing & slots. Each pair has a fixed budget envelope. A small base buy is used for initial entries, then DCA tranches scale up geometrically across several tiers. A "slot" = one pair holding an active position + working sell order; total slots are derived from equity / per-pair budget. A minimum free-cash floor must remain before a DCA can fire. DCA buys per pair are capped both in total depth and within a rolling time window.
4. DCA logic. Anchored on average cost. Levels fire at progressively wider intervals below the average — geometric spacing that gets increasingly aggressive deeper into a drawdown. After a configurable holding period a position enters "reduced mode" (take-profit is scaled down and DCA drops are widened); after a further period, "super-reduced" mode disables further DCA and tightens the fee buffer. This is the bag-management path for stuck pairs.
5. Risk management. Trading pauses fail-closed on accounting invariant failures, exchange desync, ledger-hash mismatch, equity drift outside tolerance, or stale snapshot. A circuit breaker opens after repeated consecutive exchange API failures with exponential backoff. Watchdogs cover order state, fills, fees, ledger integrity, and runtime desync. Bag-pressure and stuck-position penalties throttle re-entry into pairs that haven't recovered.
6. Execution. Limit orders only — both entries and exits. Sells reprice on a regular cadence rather than chasing the book. The engine ticks on a short polling interval. The exchange is treated as the source of truth; Postgres is the audit/reconciliation store.
Core edge. The bot bets that liquid, reasonably-volatile pairs revert: small dips below a slowly-rising reference get bought, then sold at a target markup when normal oscillation eventually carries them there. It is not predicting direction — it is harvesting the noise around a drifting mean, with deep DCA tranches as insurance against drawdowns and a multi-day "give up gracefully" mode for pairs that don't bounce back.