BlueJackal is an autonomous BTC/USDT spot trading bot. It continuously monitors price and automatically enters and exits positions using a configurable trough-buy and peak-sell strategy. Every parameter is hot-reloaded from the dashboard — no restarts required.
Key principles: no hardcoding, fund safety (live balance checked before every order), mode parity (same code path across simulation, testnet, and live), and full auditability (all trades and settings changes persisted in the database).
The monitor tracks a rolling price high. When price falls drop_pct% from that high, it enters Trough Zone. It then waits for a bounce of recovery_pct% from the lowest point seen — this confirms the trough and fires a market BUY.
Each open trade has its own peak detector. Once price rises rise_pct% from entry, the trade enters Peak Zone. Inside Peak Zone a rolling high is tracked continuously. A sell fires only when price pulls back pullback_pct% from the highest price ever reached — not from the Peak Zone entry price. This lets winners run.
Before the peak detector runs, price is checked against entry_price × (1 − sl_pct / 100). If price falls to or below this level the trade closes immediately (reason: SL), regardless of peak zone state.
A second trade only opens after a new, independent trough cycle — not simply because price is still low. Each trade has its own stop-loss and peak detector.
A buy is suppressed if max_open_trades is already reached. A 3rd trade requires a 3rd full trough cycle.
If SL is hit → SELL SL. If Trough Zone or Recovery check fails → monitor continues watching next tick. If Peak Zone not yet reached → SL check runs every tick.
| Mode | Exchange Orders | Price Source | Use Case |
|---|---|---|---|
| Simulation | None (no-op) | Binance live prices | Safe testing — no funds needed |
| Testnet | Binance Spot Testnet | Testnet REST | Realistic order flow with paper funds |
| Live | Binance Spot Live | Live REST | Real money trading |
| Control | Auto Buys | Manual Buys | Auto Exits (SL/TP) | Manual Sells |
|---|---|---|---|---|
| ▶ Active | ✓ | ✓ | ✓ | ✓ |
| ⏸ Soft Pause | ✗ | ✗ | ✓ | ✓ |
| ⏹ Hard Stop | ✗ | ✗ | ✗ | ✗ |
| Setting | What it controls |
|---|---|
| Symbol | Trading pair (e.g. BTCUSDT) |
| USDT / Trade | Capital allocated per buy order in USDT |
| Drop % | Price drop from rolling high required to enter Trough Zone |
| Recovery % | Price bounce from trough low required to confirm a buy |
| Rise % | Price rise from entry required to activate Peak Zone (sell tracking begins) |
| Pullback % | Price pullback from the peak high required to trigger a sell |
| Stop-Loss % | Maximum loss from entry before the trade is force-closed (SL) |
| Max Open Trades | Maximum number of simultaneously open positions |
| Qty Precision | Decimal places for order quantity (required by Binance per symbol) |
| Monitor Interval (s) | How often the monitor checks price and evaluates signals |
| Dashboard Refresh (s) | How often the dashboard auto-refreshes |
| # | Entry | Current | Unr. PnL | SL | Sell Zone ▶ | Opened | |
|---|---|---|---|---|---|---|---|
| No open trades | |||||||
| # | Symbol | Entry | Amount | Exit | PnL | PnL% | Duration | Reason | Mode |
|---|---|---|---|---|---|---|---|---|---|
| Loading… | |||||||||