投资市场过程的便捷促进了人们的非理性投资。

2022~2024年的地狱市场把我的心态、生活和账户搞得一团糟,暂且不说基金经理装死的外部问题,本人也执行了一些非理性操作造成了损失。

痛定思痛,为了避免市场波动对心态和生活的持续影响,本人将目光集中到了量化自动化交易上面。

关于投资这方面,对于没时间看盘、又想获得超过指数基金收益的我而言,我还是信任计算机的超理性决策。

免责声明:以下是我个人研究内容,并不代表任何投资建议,投资请谨慎。

快速入门

  1. 注册盈透账户,下载gateway

  2. 安装backtrader库(量化回测框架)

  3. 安装ib_insync库(对接盈透gateway,开发者老哥erdewit于2024年3月11日去世,RIP)

  4. 通过ib_insync文档或是使用GPT写一个样例SMA策略

  5. 运行,观察图表

常见框架推荐

backtrader 传统策略框架

qlib AI量化框架

海龟交易法

本质上是一种趋势跟踪策略,法则囊括了交易中的每一个环节,没有给交易者留下主观思考的余地。

和量化交易有些关联,可以作为相关参数的设置方法。当然参数也可以通过程序来自动寻找。

核心思维

  • 以长远的眼光看待交易
  • 避免结果偏好
  • 相信正期望的威力

操作层面

  • 首先掌握一个优势的系统,找到一个期望值为正的交易策略(至少在历史上回测能产生正的收益)
  • 管理风险,守住阵地
  • 坚定不移,执行策略
  • 简单明了,抓住趋势。大部分利润产生于2~3次的交易,不要错过任何一次趋势。否则全年努力都会化成泡影。

步骤

市场:买卖什么?

一般用于期货市场,要有足够流动性 30年期美国国债、10年期美国国债、大宗商品、发达国家的货币

头寸规模:买卖多少?

核心思想:波动性大的合约持仓量少,波动小的合约持仓量大

方法:用波动性来动态建仓控制日内亏损幅度不超过总资产的1%

H:当日最高价

L:当日最低价

C:当日收盘价

TR:日真实波动幅度

TR = MAX(H-L, H-C, C-L)

求TR的20日移动平均值N

N = (19 * PDN + TR) / 20

PDN: 前一日的N值

TR: 日真实波动幅度

在21天开始计算。之前的20天平均值用前面20天的TR相加除以20

(账户的1% / 单位头寸金额) = (N / 股价)

单位头寸金额 = (账户的1% / N) * 股价

单位头寸股数 = (账户的1% / N)

波动越大的股票,N越大,头寸越小

海龟交易法要求对于单一市场的持仓,不能超过4个单位的头寸金额

入市:什么时候买卖?

系统1:以20日突破为基础的短期系统

系统2:以55日突破为基础的长期系统

长线看超过55日的最高点和最低点就开始行动

如果超过了55日的高点,买入一个头寸,开始做多

如果跌破55日的低点,卖出一个头寸,开始做空【如果不熟悉做空,可以只考虑做多】

建仓:突破点建立一个头寸单位

​ 接着在(1/2 N) 的价格间隔一步一步扩大头寸

​ 每隔1/2N就加一个头寸单位,直到加满4个单位的头寸为止

​ 逐步减仓巧妙,如果股价下跌1N总的亏损还是保持总资产的1%

止损:什么时候放弃一个亏损的头寸?

任何一笔都不能亏损超过总资产的2%

​ 波动1N就对应总资产的1%的波动

​ 按2%计算,止损的标准就是2N

​ 股价最后一笔买入后,如果下跌2N,就止损

退出:什么时候退出一个盈利的头寸?

系统1:采用10日突破退出法则

系统2:采用20日突破退出法则

创了20日新低就退出

优点:虽然比较反直觉,但能保证持仓者不会错过这种大涨幅的趋势

缺点:眼睁睁看着巨额的利润瞬间蒸发掉

战术:怎么买卖?

资金量小就不用考虑了

M-score模型识别财务造假

选股前过滤一遍,把造假股票踢出去。

M = -4.84 + 0.92 * DSRI + 0.528 * GMI + 0.404 * AQI + 0.892 * SGI + 0.115 * DEPI - 0.172 * SGAI + 4.679 * TATA - 0.327 * LVGI

简单线性公式,求M值即可。

参数说明

SRI 应收账款指数

DSRI = (本期应收账款 / 本期营业收入) / (上期应收账款 / 上期营业收入)

GMI 毛利率指数

GMI = (上期毛收益率) / (本期毛收益率)

毛收益率 = (营业收入 - 营业成本) / 营业收入

AQI 资产质量指数

AQI = (本期非实物资产 / 本期总资产) / (上期非实物资产 / 上期总资产)

非实物资产 = (总资产 - 流动性资产 - 厂房设备 - 证券)

SGI 营业收入指数

SGI = 本期营业收入 / 上期营业收入

DEPI 折旧率指数

DEPI = 上期折旧率 / 本期折旧率

折旧率 = 累计折旧 / (厂房设备 + 累计折旧)

SGAI 销售管理费用指数

SGAI = (本期销售管理费用 / 本期营业收入) / (上期销售管理费用 / 上期营业收入)

TATA 应计系数

TATA = 应计项目 / 总资产

应计项目 = 经营性营业收入 - 经营活动产生的现金流

LVGI 财务杠杆指数

LVGI = 本期资产负债率 / 上期资产负债率

资产负债率 = 总负债 / 总资产

M范围 → 财务造假可能性
M < -2.22 低
-2.22 <= M <= -1.78 中
-1.78 <= M 高

股票波动预测

python实现garch模型,广义自回归条件一方差模型。

平静期常常跟着平静期,波动期常常跟着波动期 → 波动性聚集。

尖峰厚尾,金融资产出现极端情况的概率远大于正态分布概率,所以凯利公式要除以2。

好的想法是拼接出来的,模型和工具是拼接的元件,元件可以不用学得特别透彻。厨子不用知道怎么制造菜刀,只需要菜刀来剁菜和烹调。

波动率可以预测风险,根据风险可以设计不同的持仓水平。还可以根据波动率调整交易策略。

业绩测评指标

盈亏类

总交易次数、赢的次数、亏的次数、胜率

度量交易频繁程度和胜率如何

  • 总利润:所有盈利和
  • 总损失:所有亏损和
  • 净利润:总利润 - 总损失
  • 利润因子:总利润 / -总亏损
  • 平均交易利润:净利润 / 交易次数
  • 平均盈利:总利润 / 交易次数
  • 平均亏损:总亏损 / 交易次数
  • 累积回报率:总回报率
  • 平均回报率:年化回报率

风险率

衡量策略风险程度,以及需要忍受的痛苦有多大、多长时间

  • 最大回撤:在一段时间内,资产的最高点到资产的最低点下跌的幅度
  • 最大回撤时长:资产从最高点到最低点经历的时间
  • 波动率:收益的方差

比率类

夏普比率:(年化收益率 - 无风险收益率) / 收益率标准差
衡量获得一份收益,需要承受多少波动。
收益越高波动越低越好,越大越好。
可以观察投资大师的夏普比率有多少。

  • 索诺提比率
  • 夏普比率的改进
  • 卡玛比率
  • 夏普比率方差项用最大回撤来代替

其他类

Alpha:超额收益率

你的收益率 - 大盘收益率

  • Beta:你的收益率和大盘收益率相关性

  • SQN:系统质量指数,评估量化策略,优劣的指标

Python库 —— pyfolio库

期权定价公式

BS公式 二叉树模型

结语

投资虽然暂时没有让我的财富增长,但也逐步了解了世界运行的基本原理,涨跌中锤炼了心灵。研究行业的同时,也对某些行业有了更加深刻的认识。