第一章 初识量化交易¶
量化交易可以简单理解为:用数学模型和计算机程序,把投资逻辑变成可执行、可回测、可风控的交易规则。 接下来,让我们带着下面几个问题开启量化交易的学习之旅。
- 为什么需要量化交易?
- 量化交易是做什么?
- 量化交易的价值何在?
- 做量化交易需要什么?
1. 量化交易比传统交易强多少?¶
量化交易之于传统交易方法,如同大型收割机之于锄头镰刀,机枪大炮之于刀剑棍棒,它能让我们的交易效率提高百倍。在金融最为发达的美国,量化交易已大行其道,占据了 70% 以上的股市成交量,可以说量化交易是未来的趋势。
2. 量化交易是做什么?¶
2.1 从一个灵感开始¶
灵感就是指那些你想验证的可能会盈利的方法,比如银行股可能是良好的投资品种、一旦跨过20日均线后股价会继续涨、流传许久的羊驼交易法等等。灵感获取的方式可以是阅读、听人说、自己悟等等。
这里我们以一个简单的情况为例进行讲解,比如你的灵感是这样的:
- 如果股价显著低于近几日的平均价,则买入
- 如果股价显著高于近几日的平均价,则卖出
现在,你想知道这样操作究竟会不会赚钱?
2.2 把灵感细化成明确的可执行的交易策略¶
一般灵感都很模糊,需要将其细化成明确的可执行策略,目的是为了能得到确定的结果,以及为后续程序化准备。比如,你通过阅读了解到索罗斯的反身性概念,想将它应用到股市,这个反身性就很模糊,就需要明确什么条件下买卖,买卖什么品种,买卖多少量等,从而形成一个明确的交易策略,让不同人根据你的描述在相同情形下都能做出相同的操作。
继续以之前那个关于平均价的灵感为例:
- 如果股价显著低于近几日的平均价,则买入
- 如果股价显著高于近几日的平均价,则卖出
显然它是不够明确的。比如多低叫显著低于?多高叫显著高于?近几日究竟是几日?买入卖出是买卖多少?我们把它细化如下规则:
- 如果股价低于
近20日平均价10%,则用全部可用资金买入 - 如果股价高于
近20日平均价10%,则卖出全部所持的该股票
还有一点不明确的地方,买卖哪个股票呢?我们认为这个交易方法盈利与否应该跟交易哪个股票关系不大,但 st股票 除外(知道 st股票 是一类有风险特别大的股票就好,详情请百度),所以股票的
- 每个交易日监测是指除st股外的国内 A 股的所有股票的股价
- 如果股价低于
近20日平均价10%,则用全部可用资金买入 - 如果股价高于
近20日平均价10%,则卖出全部所持的该股票
ST股票
ST股票是 A 股交易所对“财务或经营出现异常”的上市公司实施的“特别处理”风险警示,不是普通股票类别。 它分为两类:其他风险警示或者退市风险警示。
现在我们基本已经把之前的灵感细化成明确的可执行的交易策略。当然,可能还有些地方不够明确,也可能有些细节还不确定要改动,这些可以随时想到随时再改,不必一次做到完美。
2.3 把策略转成程序¶
就是把明确后的策略通过编程转成程序,好让计算机能根据历史数据模拟执行该策略,以及能根据实际行情进行反应并模拟交易或真实交易。
简言之,就是把刚刚的策略翻译成计算机可识别的代码语言,即把这个:
- 每个交易日监测是指除st股外的国内 A 股的所有股票的股价
- 如果股价低于
近20日平均价10%,则用全部可用资金买入 - 如果股价高于
近20日平均价10%,则卖出全部所持的该股票
写成类似这样的代码(下面的代码并不完全符合,只是展示下大概的样子):
这样一来,就把刚才细化好策略转成了代码程序,计算机就能运行了。这个过程你可以理解成用计算机能听懂的语言(代码),把你的策略告诉给计算机了。
2.4 验证策略有效性¶
验证一个量化策略是否有效,通常有回测和模拟交易两种方法。
回测是让计算机能根据一段时间的历史数据模拟执行该策略,根据结果评价并改进策略。继续之前的那个均价的策略例子的话就是这样的:
设定初始的虚拟资产为 500000 元、一个时期如 20060101 到 20160101,把这一时期的各种数据如估计股价行情等发给计算机,计算机会利用这些数据模仿真实的市场,执行你刚才告诉它的策略程序。最后计算机会给你一份报告,根据这个报告你就会知道,在 20060101 的 500000元,按照你的策略交易到 20160101,会怎样?一般包括盈亏情况,下单情况,持仓变化,以及一些统计指标等,从而你能据此评估交易策略的好坏。
如果结果不好,则需要分析原因并改进。如果结果不错,则可以考虑用模拟交易进一步验证。
模拟交易是让计算机能根据实际行情模拟执行该策略一段时间,根据结果评价并改进策略。与回测不同,回测是用历史数据模拟,模拟交易使用实际的实时行情来模拟执行策略的。举例就是这样:
设定初始的虚拟资产依然为 500000 元,选择开始执行模拟交易的时间点,比如明天。那么从明天开始,股市开始交易,真实的行情数据就会实时地发送到计算机,计算机会利用真实的数据模仿真实的市场,执行你的策略程序。同时,你会得到一份实时更新的报告。这报告类似于回测得到的报告,不同的是会根据实际行情变化更新。同样你能据此评估交易策略的好坏。
可见,回测是用历史数据模拟执行策略,模拟交易是用未来的实际行情模拟执行策略。如果策略在回测与模拟交易的表现都非常好,你可以考虑进行完全真实的真金白银的实盘交易。
2.5 进行实盘交易并不断维护修正¶
实盘交易就是让计算机能自动根据实际行情,用真金白银自动执行策略,进行下单交易。注意,这时不再是用虚拟资产模拟交易,亏损和盈利都是真钱。实盘交易一般也会给出一份类似模拟交易的会不断更新的报告,从而不断要观察策略的实盘表现并及时调整与改进策略,使之持续平稳盈利。