Portfolio rebalancing to maintain target allocations across assets.
Use this skill for:
Example target: 50% BTC, 30% ETH, 20% SOL (by USD value).
The agent maintains these weights and compares against current holdings.
kraken balance -o json 2>/dev/null
kraken ticker BTCUSD ETHUSD SOLUSD -o json 2>/dev/null
For each asset:
Set a minimum trade threshold (e.g., $50) to avoid placing tiny orders that waste fees.
kraken paper init --balance 10000 -o json 2>/dev/null
# Initial buys to establish positions
kraken paper buy BTCUSD 0.05 -o json 2>/dev/null
kraken paper buy ETHUSD 1.0 -o json 2>/dev/null
kraken paper buy SOLUSD 10 -o json 2>/dev/null
kraken paper status -o json 2>/dev/null
# After price drift, rebalance
# Sell overweight asset, buy underweight asset
kraken paper sell BTCUSD 0.005 -o json 2>/dev/null
kraken paper buy SOLUSD 2 -o json 2>/dev/null
kraken paper status -o json 2>/dev/null
kraken order sell BTCUSD 0.005 --type market --validate -o json 2>/dev/null
kraken order buy SOLUSD 2 --type market --validate -o json 2>/dev/null
kraken order sell BTCUSD 0.005 --type market -o json 2>/dev/null
kraken order buy SOLUSD 2 --type market -o json 2>/dev/null
kraken balance -o json 2>/dev/null
Periodically compare current weights to targets. Trigger rebalance when any asset drifts beyond a threshold (e.g., 5% absolute drift):
# Agent checks balance and prices on a schedule
# If |current_weight - target_weight| > 0.05 for any asset → rebalance
For lower fees, use limit orders instead of market:
PRICE=$(kraken ticker SOLUSD -o json 2>/dev/null | jq -r '.[].a[0]')
kraken order buy SOLUSD 2 --type limit --price $PRICE -o json 2>/dev/null
Check fills before declaring rebalance complete:
kraken open-orders -o json 2>/dev/null
kraken pairs).