凯利公式怎么进行运用
发布时间:9小时前阅读:5
一、凯利公式的数学原理与通俗白描
凯利公式的核心目标是在不冒爆仓风险的前提下,实现账户长期增长率的最大化。其标准公式在交易领域的演变形式通俗表述为:
$$f^* = \frac{p \cdot b - q}{b}$$
其中各变量的含义明确白描如下:
- $f^*$:代表当前单笔交易所投入的资金占账户总资产的最佳比例。
- $p$:策略的历史交易胜率(即赚钱的次数除以总交易次数)。
- $q$:策略的失败率(即 $1 - p$)。
- $b$:盈亏比(即平均单笔盈利金额除以平均单笔亏损金额)。
通过这一公式可以看出,只有当策略的胜率和盈亏比乘以胜率的结果大于失败率时(即期望值为正),凯利公式才会计算出一个大于0的下单比例;如果期望值为负,公式会直接返回0,提示策略此时应当空仓休息。
二、在QMT系统中的Python代码编写执行步骤
在QMT的策略脚本中,要让代码在检测到买入信号时自动按凯利公式计算持仓,可以按照以下步骤在代码端实现:
- 历史战绩统计与参数申明: 在 init 初始化函数中,设定好该策略经过长期回测得出的历史稳定参数。例如,设定胜率 $p = 0.55$,平均盈利5%,平均亏损3%,则盈亏比 $b = 5 / 3 = 1.667$。
- 编写凯利仓位计算器函数: 在策略体内部定义一个专门的计算方法:Pythondef win_kelly_calc(p, b): q = 1.0 - p f_fraction = (p * b - q) / b # 引入半凯利系数(Half-Kelly)进行保守风控,防止回撤过大 return max(0.0, f_fraction * 0.5)
3. 动态获取总资产并执行自动下单:
当 `handle_data` 触发了买入信号时,代码首先调用QMT内置的资产查询接口,获取账户当前的“动态总权益(`total_asset`)”。随后调用上述计算函数,算出本次应当投入的绝对金额:
```python
kelly_ratio = win_kelly_calc(0.55, 1.667)
order_money = Context.total_asset * kelly_ratio
# 将金额转化为具体拟买入的股数
order_shares = int(order_money / last_price / 100) * 100
# 发送精确仓位控制的下单指令
Context.passorder(23, 1101, Context.account_id, stk_code, 11, last_price, order_shares, Context)
通过这种方式,系统在策略表现好、盈亏比高时会自动加大下注权重;在策略遭遇瓶颈、期望值变低时全自动收紧仓位,实现完全理性的资金管理。
策略逻辑再严谨,也需要稳定高效的实盘环境来落地。当前,普通投资者获取专业交易通道的门槛已显著降低,以国金证券为例,10万资金门槛即可开通QMT/PTrade权限,让这些严密的数学仓位控制模型得以直接对接官方的实盘交易柜台稳定长周期运行。为了帮助量化新手在配置资金管理代码时不易出错、避免因变量格式对齐问题引发逻辑漏洞,平台配备了专业的量化社群答疑服务。同时,包括两融业务在内的多项信用交易功能均支持全线上便捷开通,为多维度的杠杆与头寸管理提供全面的通道配套支持。
温馨提示:投资有风险,选择需谨慎。
-
REITs扩募是什么?普通人能参与吗?附APP实操指南
2026-06-17 17:19
-
理财问答选哪个?知乎vs叩富问财全面对比,一文搞懂
2026-06-17 17:19
-
@所有人,2026年端午节A股休市安排出炉!
2026-06-17 17:19


问一问

+微信
分享该文章
