name: sizing
description: “使用凯利准则和银行管理进行仓位大小调整”
emoji: “📐”
仓位大小调整 - 完整 API 参考
使用凯利准则、部分凯利和投资组合级别分配来计算最优仓位大小。
聊天命令
凯利计算器
/kelly 0.45 0.55 10000 市场价格,您的概率,银行资金
/kelly "Trump 2028" 0.55 --bank 10k 为特定市场计算
/kelly --half 0.45 0.55 10000 半凯利(更安全)
/kelly --quarter 0.45 0.55 10000 四分之一凯利(保守)
仓位大小调整
/size 10000 --risk 2% 每笔交易风险 2% 的仓位大小
/size 10000 --max-position 25% 单个仓位最大 25%
/size portfolio --rebalance 重新平衡到目标权重
优势计算
/edge 0.45 0.55 计算优势(概率 - 价格)
/edge "Trump 2028" --estimate 0.55 优势与市场价格比较
TypeScript API 参考
创建大小计算器
import { createSizingCalculator } from 'clodds/sizing';
const sizing = createSizingCalculator({
// 银行资金
bankroll: 10000,
// 凯利分数(1 = 全,0.5 = 半)
kellyFraction: 0.5,
// 限制
maxPositionPercent: 25,
maxTotalExposure: 80,
});
基本凯利
// 二元结果(是/否市场)
const size = sizing.kelly({
marketPrice: 0.45, // 当前价格
estimatedProb: 0.55, // 您的概率估计
bankroll: 10000,
});
console.log(`最优投注: $${size.optimalSize}`);
console.log(`优势: ${size.edge}%`);
console.log(`凯利百分比: ${size.kellyPercent}%`);
console.log(`期望值: $${size.expectedValue}`);
部分凯利
// 半凯利(推荐给大多数交易者)
const halfKelly = sizing.kelly({
marketPrice: 0.45,
estimatedProb: 0.55,
bankroll: 10000,
fraction: 0.5, // 半凯利
});
// 四分之一凯利(非常保守)
const quarterKelly = sizing.kelly({
marketPrice: 0.45,
estimatedProb: 0.55,
bankroll: 10000,
fraction: 0.25,
});
console.log(`全凯利: $${sizing.kelly({...}).optimalSize}`);
console.log(`半凯利: $${halfKelly.optimalSize}`);
console.log(`四分之一凯利: $${quarterKelly.optimalSize}`);
多结果凯利
// 对于有 3+ 结果的市场
const multiKelly = sizing.kellyMultiOutcome({
outcomes: [
{ name: 'Trump', price: 0.35, estimatedProb: 0.40 },
{ name: 'DeSantis', price: 0.25, estimatedProb: 0.20 },
{ name: 'Haley', price: 0.15, estimatedProb: 0.15 },
{ name: 'Other', price: 0.25, estimatedProb: 0.25 },
],
bankroll: 10000,
fraction: 0.5,
});
for (const alloc of multiKelly.allocations) {
console.log(`${alloc.name}: $${alloc.size} (${alloc.percent}%)`);
}
投资组合级别凯利
// 跨多个市场的最优分配
const portfolio = sizing.kellyPortfolio({
positions: [
{ market: 'Trump 2028', price: 0.45, prob: 0.55 },
{ market: 'Fed Rate Cut', price: 0.60, prob: 0.70 },
{ market: 'BTC > 100k', price: 0.30, prob: 0.40 },
],
bankroll: 10000,
correlations: correlationMatrix, // 可选
fraction: 0.5,
});
console.log('最优投资组合:');
for (const pos of portfolio.positions) {
console.log(` ${pos.market}: $${pos.size}`);
}
console.log(`总暴露: ${portfolio.totalExposure}%`);
信心调整大小
// 当信心较低时减少大小
const size = sizing.kellyWithConfidence({
marketPrice: 0.45,
estimatedProb: 0.55,
confidence: 0.7, // 70% 对估计有信心
bankroll: 10000,
});
// 大小按信心比例减少
console.log(`信心调整大小: $${size.optimalSize}`);
优势计算
// 计算优势
const edge = sizing.calculateEdge({
marketPrice: 0.45,
estimatedProb: 0.55,
});
console.log(`优势: ${edge.edgePercent}%`);
console.log(`每美元期望值: $${edge.evPerDollar}`);
console.log(`隐含赔率: ${edge.impliedOdds}`);
console.log(`真实赔率: ${edge.trueOdds}`);
基于风险的大小调整
// 基于每笔交易风险的大小调整
const size = sizing.riskBased({
bankroll: 10000,
riskPercent: 2, // 每笔交易风险 2%
stopLossPercent: 10, // 10% 止损
});
console.log(`仓位大小: $${size.positionSize}`);
console.log(`最大损失: $${size.maxLoss}`);
凯利分数
| 分数 |
风险等级 |
使用案例 |
| 全 (1.0) |
激进 |
数学最优,高方差 |
| 半 (0.5) |
中等 |
大多数交易者,良好平衡 |
| 四分之一 (0.25) |
保守 |
新交易者,不确定优势 |
| 十分之一 (0.1) |
非常安全 |
学习,小优势 |
优势要求
| 优势 |
推荐 |
| < 2% |
不交易 |
| 2-5% |
小仓位(四分之一凯利) |
| 5-10% |
正常仓位(半凯利) |
| 10%+ |
大仓位,验证优势 |
公式
凯利公式
f* = (p * b - q) / b
其中:
f* = 银行资金投注比例
p = 获胜概率
q = 失败概率 (1 - p)
b = 获得赔率 (1/价格 - 1)
优势公式
优势 = 估计概率 - 市场价格
期望值 = 优势 * 投注大小
最佳实践
- 使用部分凯利 — 全凯利方差太大
- 对优势保守 — 过度自信会导致账户亏损
- 考虑相关性 — 不要过度暴露于相同主题
- 设置最大仓位 — 一个市场不超过 25%
- 定期重新评估 — 优势随价格变化而改变