Dollar cost averaging with scheduled buys and performance tracking.
Use this skill for:
Dollar cost averaging buys a fixed dollar amount of an asset at regular intervals regardless of price. This reduces timing risk and smooths entry cost over volatile periods.
Always validate the strategy in paper mode before going live.
The paper buy command takes base-asset volume, not dollar amount. Calculate volume first:
kraken paper init --balance 10000 --currency USD -o json 2>/dev/null
# Calculate BTC volume for a $100 buy at current price
PRICE=$(kraken ticker BTCUSD -o json 2>/dev/null | jq -r '.[].c[0]')
VOLUME=$(echo "scale=8; 100 / $PRICE" | bc)
# Simulate weekly buys
kraken paper buy BTCUSD $VOLUME -o json 2>/dev/null
kraken paper status -o json 2>/dev/null
# Repeat buy, check status each iteration
kraken paper buy BTCUSD $VOLUME -o json 2>/dev/null
kraken paper status -o json 2>/dev/null
kraken paper history -o json 2>/dev/null
Each interval, the agent executes one market buy for the fixed amount:
kraken ticker BTCUSD -o json 2>/dev/null
PRICE=$(kraken ticker BTCUSD -o json 2>/dev/null | jq -r '.[].c[0]')
VOLUME=$(echo "scale=8; 100 / $PRICE" | bc)
kraken order buy BTCUSD $VOLUME --type market --validate -o json 2>/dev/null
kraken order buy BTCUSD $VOLUME --type market -o json 2>/dev/null
After each buy, query trade history to compute running average:
kraken trades-history --consolidate-taker -o json 2>/dev/null
The agent should maintain a running total:
Instead of market buys, place limit orders slightly below the current price for better fills:
PRICE=$(kraken ticker BTCUSD -o json 2>/dev/null | jq -r '.[].b[0]')
LIMIT=$(echo "scale=2; $PRICE * 0.998" | bc)
VOLUME=$(echo "scale=8; 100 / $LIMIT" | bc)
kraken order buy BTCUSD $VOLUME --type limit --price $LIMIT -o json 2>/dev/null
Check fill status at the next interval. Cancel unfilled orders before placing new ones:
kraken open-orders -o json 2>/dev/null
kraken order cancel <UNFILLED_TXID> -o json 2>/dev/null
Split a fixed budget across multiple assets (e.g., 60% BTC, 30% ETH, 10% SOL):
# $100 total: $60 BTC, $30 ETH, $10 SOL
# Calculate volumes for each, then place orders sequentially
The CLI does not include a built-in scheduler. Agents should use external scheduling (cron, task scheduler, or the agent's own loop timer) to trigger DCA buys at the chosen interval (daily, weekly, bi-weekly, monthly).