quant 量化交易类入门, 打开一扇新的大门, 首先要提醒大家, 量化交易重在”交易“, 量化(程序化)只是一个工具/辅助而已, 所以如果你没有金融/交易方面的朋友/合伙人, 甚至对股市都没入门过, 建议三思而后行 (要补的东西会非常多)
0x00. 前言
因为量化交易的内容对普通人来说可谓是相当之多, 简单说它是”计算机” + “金融” + “统计学”三门学科的交叉(其中计算机方面侧重炼金), 对于一个不熟悉炼金/不常写业务代码的底层研发同学来说, 可以说初接触是相当懵圈的, 得补上相当的上文, 不然你会感觉这个圈子国内有点乱七八糟的….
本文既是对熟悉计算机底层原理, 从事 infra 研发, 但不熟悉各种业务(SQL)/web 框架/前端混合代码等的同学参考, 主要也是个人的一个学习记录, 不然这个东西真的看起来太懵了, 总之, 不要被各种唬人的术语和名词吓到, 其实单说入门 quant 的难度, 是没有多难的, 它更多的是杂 + 信息差多, 实际入门之后会很快上手进入正轨
1. 常见术语
quant 里有许多常见的术语, 篇幅有限, 这里仅以计算机背景来介绍其他缺失的地方, 侧重金融方面, 其他自行查询一下
- 量化: 说实话这种听起来云里雾里的词, 对新手会有很大的困扰, 比如明明就是程序化交易, 为啥要叫量化, 这里我个人的理解是, 你的一个买卖策略是否好, 是需要具体的数据/历史来检验支撑的, 不然就是拍个脑袋的 idea 而已, 那么把这个 idea 的好坏, 各项指标具化的过程, 不就是工作里常说的”量化/细化”你的事(策略)么~ 哈哈(这个解释是自己偶然想到的, 不知道严谨不, 图一乐)
- 频度: 量化一般分三个频度来进行交易 (低 - 中 - 高), 很好理解, 中低频主要是
python为主, 高频c++/rust, 高频度属于进阶内容, 不多涉及, 我们先以简单的自动化代替人/肉眼来实现一些监控/策略进行分析 + 交易为目标 - 回测: 简单说就是让你的策略在历史/新增数据中去模拟实践检测效果, 每日实时数据中的模拟又称为实盘模拟 (本质跟股票虚拟盘一样..), 一般最后会得到一个总结报告, 对你的策略打分输出关键指标 (作为判断好坏依据)
- α 与 β: 你经常会在各种文章/资料里看到这两个字母 + 收益组成的词汇, 它们其实也不复杂, 先简单理解 (不必陷到复杂公式里)
- α 收益: 最简单的理解就是把它理解为”超额收益“, 也就是说对比某个大盘/指数的涨跌幅, 多出来的部分
- β 收益: 可理解为”风险收益“, 也就是说
然后股市相关的常见词汇, 可以参考东财app/网站上的新手入门, 会讲解大部分基本的金融类常用术语, 配有图标, 比较易懂
2. 学习路线
首先肯定是参考已有的路线, 特别是经典的, 这里参考聚宽的量化入门以及分为这 3 大块: (进阶单独再说)
- 初识量化 (what + why)
- python 基本语法 (basic)
- 量化基本框架 (what + how)
0x01. 初识量化
沿着经典的路线开始, 这里提取一下其中的精华部分, 首先个人理解, 量化交易就是”程序化交易“, 更直白一点是”自动化交易”, 对比的就是”手动交易”, 所以听起来唬人, 其实最简单的理解就是, 把你买卖股票的策略(例如高抛低卖)用程序具化实现来进行”分析 + 交易“的体现, 它有几个关键点:
- 如何获得灵感/策略?
- 如何把灵感具化, 并转换为程序
- 如何评估策略好坏?
- 实操 & 更新
价值
然后它的主要价值也需要提炼一下, 这会极大助力你坚持走下去:)
- 自动化减少巨量时间和心理开销 (另外它有能保证绝对收益的方式, 也就是利用统计学的概率获得套利)
- 历史里有未来的影子, 回测可以让你从历史里得到数据支撑 (科学/客观/理性/思维..)
- 把握时机/交易速度
>>肉眼盯盘 - 赚钱, 赚钱, 还是赚钱 (简单说: 就是让你有更高效的赚钱机会-ROI)
准备工作
简单说最主要的就是这两块的准备, 做好都比较重, 数据主要是来源问题, 免费的不好用/缺乏时效性, 收费的太贵; 然后量化系统需要找到同时满足”回测 + 交易 + 自定义化容易” 的不多, 鱼龙混杂
- 数据 (历史 + 新增)
- 收集/清洗
- 统计/存储
- 更新
- 量化系统
- 回测
- 交易
just do it, 尽快上手, 别抱着砖头书啃(那个入门之后再开始按需补上)
PS: Python 语法和入门篇比较长, 涉及框架和一些 PL 的内容思考, 这部分单独抽出, 详见, 下面直接进入第三个模块
0x01. 开户
这里为了避免不少同学不熟悉金融, 尽量说人话:
首先交易是有交易费用的, 不然交易所就没法赚钱了, 这里以 A 股为例, 最好的费率如下:
- 股市万一免五: 常见缩写, 代表收取买卖金额万分之一的费率, 不足 0.1 的收取 0.1 元 (默认普通券商是收取最低 5 元, 所以不要求强制的称为”免5”)
- 可转债/基金: 沪/深市万分之0.5, 最低 0.1 元 (包括场内 ETF)
市面上常见的东方/同花顺等证券开户费率都很高,
天上不会掉馅饼, 小券商有最低的交易费率, 还能支持一堆功能接入/量化接口等, 那它的缺点是什么呢?
- 账户安全性, 资金要求?
- 服务稳定性/SLA 多少?
- 券商是否会倒闭/跑路?
0x02. 市场情况
调研
国内数据提供层面的方式和厂商情况可参考这篇文章有附图汇总, 简单
这里先只说开源界, 各种各样的框架/SDK/黑魔法脚本就五花八门, 我们先列一下常见的功能点和解释一下需求, 让大家好理解 why?
定时任务
- 多账号自动新股申购(自动打新)
- 多账号自动逆回购: 这里的意思一般是指国债逆回购, 简单说就是不让闲钱浪费了, 尽量早点借出去
- 定时批量下单
策略(量化平台)集成
- 聚宽(JoinQuant)集成
- 米筐(RiceQuant)集成
- 优矿(Uqer)集成
- 果仁(Guorn)集成
上面几个都算国内比较出名的量化平台, 简单说其实就是提供开箱即用的云服务的厂商, 跟你本地搭建自己的交易平台本质是一样的, 当然区别在于云厂商一般来说当然能提供更好的网速/贷款/产品化/继成功能(包括数据实时更新)等, 不过目前最大的缺点在于:
- 大多收费或者要求很高的资金账户
- 用户担心厂商偷走个人策略 (因为它的设计就是你把策略塞入然后一键跑回测), 自然能知道你写的策略的优劣, 好的为啥不拿? (的确很难相信)
0x03. 交易选型
这里又分了很多种
0x04. 数据来源
- tushare (python 库, outdated) –> AKShare (数据源库)
- 新浪
- 天天基金
- 东方财富 choice (3w/年, >200w 资金免费使用, 否则只能试用1个月)
- 富途牛牛 (免费实时)
- BaoStock (免费日级别数据, 只有最基本信息)
数据存储
两个纬度, 历史数据一般存在时序数据库中, 热点数据存在内存数据库中, 综合形数据库要注意对内存模式的支持(例如 PostgreSQL)
0x05. 下单
量化交易离不开”交易“, 但是为啥这个海外不是个事国内还搞得云里雾里, 一堆黑魔法呢, 原因当然是 policy 限制, 各大券商基本都不提供普通人 api 交易的接口, 也就是说明面上是禁止你程序化下单的, 那常见就只好找各种野路子 + 走后门了, 所以自然有些见不得光…
- 使用各种后门类 API (bypass), 具体细节暂时未知, 有较大 sec 风险, 慎用
- 使用鼠标/键盘 + 位置模拟/截图等, 简单说就是模拟人来下单, 无 sec 风险, 最通用常见, 但是时效性和易用性最差
- 使用
PTrade等小券商或者非大众渠道提供的交易软件接口, 优劣待定 (是否会偷取策略未知, 但看起来比聚宽等云服务好一点?)
PTrade 是什么, QMT 又是什么?
- PTrade 是恒生电子开发, 交易和回测都是在远端服务器进行, 带完备 GUI, 开发使用 python, 提供完备的 API 文档(内置函数齐全)
- QMT 本地部署运行
0x06. 关注指标
一个模型/策略写完, 主要是靠下面这几个核心指标验证好坏程度:
- 胜率
- 收益率
- 最大回撤
- 夏普比率: 普通人对这个比较陌生, 简单说它是带入了风险计算的比率指标
0x0n. 书单
进阶来说, 特征工程, 机器学习/深度学习等建模分析都是需要掌握的, 这块比较偏炼金(AI), 暂时不做多的涉猎
参考资料: