kraken-rebalancing
GitHub用于Kraken加密货币投资组合再平衡的Agent技能,支持目标权重设定、当前持仓与价格获取、偏差计算、最小交易阈值过滤、模拟测试及实盘订单执行验证。
Trigger Scenarios
Install
npx skills add krakenfx/kraken-cli --skill kraken-rebalancing -g -y
SKILL.md
Frontmatter
{
"name": "kraken-rebalancing",
"version": "1.0.0",
"metadata": {
"openclaw": {
"category": "finance"
},
"requires": {
"bins": [
"kraken"
]
}
},
"description": "Portfolio rebalancing to maintain target allocations across assets."
}
kraken-rebalancing
Use this skill for:
- checking current portfolio allocation vs target weights
- calculating rebalance trades
- executing rebalance orders with minimum trade thresholds
- scheduling periodic rebalance checks
Define Target Allocation
Example target: 50% BTC, 30% ETH, 20% SOL (by USD value).
The agent maintains these weights and compares against current holdings.
Read Current Portfolio
- Get balances:
kraken balance -o json 2>/dev/null - Get current prices for all held assets:
kraken ticker BTCUSD ETHUSD SOLUSD -o json 2>/dev/null - Calculate USD value of each holding and total portfolio value.
- Compute current weights: asset_value / total_value for each.
Calculate Rebalance Trades
For each asset:
- Target value = total_portfolio * target_weight
- Current value = holdings * current_price
- Delta = target_value - current_value
- If delta > threshold: buy (delta / price) units
- If delta < -threshold: sell (|delta| / price) units
Set a minimum trade threshold (e.g., $50) to avoid placing tiny orders that waste fees.
Paper Rebalance Test
kraken workspace create sandbox --capital 10000 --mode paper -o json 2>/dev/null
export KRAKEN_WORKSPACE=sandbox
# 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 workspace 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 workspace status -o json 2>/dev/null
Live Rebalance Execution
- Calculate all required trades.
- Present the rebalance plan to the user:
- Current allocation vs target
- Proposed trades with estimated fees
- Validate each order:
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 - Execute sells first (to free capital), then buys (requires human approval):
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 - Verify final state:
kraken balance -o json 2>/dev/null
Drift Detection
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
Rebalance with Limit Orders
For lower fees, use limit orders instead of market:
PRICE=$(kraken ticker SOLUSD -o json 2>/dev/null | jq -r '.[].ask_price')
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
Hard Rules
- Never execute rebalance trades without explicit human approval.
- Always present the full rebalance plan (sells and buys) before execution.
- Execute sells before buys to ensure sufficient quote currency.
- Respect minimum order sizes for each pair (check pair info with
kraken pairs). - Apply a minimum trade threshold to skip negligible adjustments.
- If you hit a mismatch between what you are trying to do and the CLI's interface or responses — including a mismatch between this skill and the installed CLI version's contract — feel free to submit feedback with
kraken feedback.
Version History
- aa56e59 Current 2026-08-20 04:45
- aa32814 2026-07-25 10:28


