Binance DCA
Execute and plan Dollar-Cost Averaging strategies on Binance.
Setup
Requires two environment variables (never hardcode these):
export BINANCE_API_KEY="your-key"
export BINANCE_SECRET_KEY="your-secret"
Optional: BINANCE_BASE_URL (defaults to https://api.binance.com). Use https://testnet.binance.vision for paper trading.
Quick Start
# Check current BTC price
bash scripts/dca.sh price BTCUSDT
# Project a DCA plan: $50 every 7 days, 12 buys
bash scripts/dca.sh plan 50 7 12 BTCUSDT
# Execute a $50 market buy
bash scripts/dca.sh buy BTCUSDT 50
# Check recent trades
bash scripts/dca.sh history BTCUSDT 10
# Check USDT balance
bash scripts/dca.sh balance USDT
Actions
price [SYMBOL]
Get current spot price. Default: BTCUSDT.
balance [ASSET]
Check free and locked balance for an asset. Default: USDT.
buy SYMBOL AMOUNT [TYPE] [PRICE]
Place a buy order. AMOUNT is in quote currency (USDT).
MARKET(default): Execute immediately at market priceLIMIT: Requires price parameter —buy BTCUSDT 50 LIMIT 95000
history [SYMBOL] [LIMIT]
Show recent trades with timestamps, side, quantity, price, and fees.
plan [AMOUNT] [FREQ_DAYS] [NUM_BUYS] [SYMBOL]
Project a DCA plan with scenario analysis showing PnL at different price levels (-30% to +100%). Defaults: $50, every 7 days, 12 buys, BTCUSDT.
DCA Strategy Guidance
When helping users plan DCA:
- Ask about budget — How much per buy, and how often?
- Set expectations — DCA smooths volatility, not guaranteed profit
- Run projections — Use
planto show scenarios before committing - Recommend testnet first — Set
BINANCE_BASE_URL=https://testnet.binance.vision - Position sizing — Suggest 1-2% of portfolio per buy for conservative approach
- Never store credentials — Always use environment variables
Scheduling DCA Buys
For automated recurring buys, suggest setting up a cron job or OpenClaw cron:
# Example: buy $50 BTC every Monday at 9am UTC
0 9 * * 1 BINANCE_API_KEY=... BINANCE_SECRET_KEY=... /path/to/dca.sh buy BTCUSDT 50
Or via OpenClaw cron for agent-managed scheduling with alerts and confirmations.
Error Handling
- Missing API keys → clear error message with setup instructions
- Invalid amounts → validation before API call
- API failures → descriptive error with endpoint info
- Always verify the order response status before confirming to user