Python量化交易实战:使用vn.py构建交易系统
上QQ阅读APP看书,第一时间看更新

1.1 量化交易的概念

从定义“量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种‘大概率’事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下做出非理性的投资决策。”中不难看出,“量化交易”一词可以通过两部分来理解,“量化”指的是使用“先进的数学模型”并且使用“计算机技术”从“历史数据”中挖掘信息,而“交易”则是指利用制定好的交易策略进行的“投资决策”。

从以上对定义的分析不难看出,要进行“量化交易”有几个必不可少的条件,即数学模型、计算机技术(编程)与历史数据(1),因此量化交易的目标就是从历史数据中挖掘有效的信息,并开发数学模型合理地利用这些信息作为对未来市场行情的判断与决策,从而在市场中获取利润。

对于量化交易而言,其本身又可以分为以下3种不同类别的策略类型,如图1-1所示。接下来分别介绍这3种策略类型的特点与适用场景。

图1-1 量化交易的分类

1.1.1 趋势性交易

趋势性交易即顺应市场的趋势,在大趋势上涨时低位买入(做多),在大趋势下跌时高位卖出(做空),或者在市场趋势增强时开仓入场,而在市场趋势减弱时平仓离场。因此,趋势性交易获利的关键就在于能否对未来市场趋势的走势变化和强度变化做出正确的预测和判断,目前并没有一个能够准确有效预测后市趋势走势的单指标,因此趋势性交易适合在市场已经有手动主观交易的市场参与者,其本身对于市场的特点已经有一定的了解并对于市场的波动能够有提前预知的主观意识和判断,对于这样已经较为成熟的市场交易者,可以使用计算机技术具体将其交易思想代码化,并使用计算机执行,以提高其执行效率。

如图1-2所示,表示的是燃料油期货从2018年12月7日到2022年8月18日的日线价格走势图,从图中不难看出在这段时间内燃料油价格有4次下跌的大趋势,并且有3次上涨的大趋势,如果编程实现的趋势性交易策略能够准确捕捉到这几次大策略,则盈利将是相当可观的。

趋势性交易的优势是在准确把握趋势的前提下,盈利潜力是十分巨大的,从图1-2中可以看出,每段大趋势持续的时间少则几个月,多则大半年,这意味着趋势性交易策略的交易频率很低,却能获取巨额的回报;同时交易次数的减少也意味着只用支付少量的手续费,不会对盈利产生过多的负面影响。

而趋势性交易策略的缺陷也是显而易见的,首先在交易过程中使用何种策略能够提升对于品种未来走势的判断是策略核心的一大难题;同时在实盘交易过程中,有时市场会因为周期性因素或者黑天鹅事件,在短时间内出现较大的回撤,这对于交易者的身心来讲也是一大考验与煎熬。

图1-2 燃料油(fu)从2018年12月07日到2022年08月18日的日线图

由于不用追求交易的速度与时效性,同时考虑到编程的方便性,使用Python作为趋势性交易策略的开发语言是十分适合的。

1.1.2 市场中性交易

市场中性交易策略本质上是一种风险对冲的均衡配置,通常来讲可以通过对不同的品种或者同品种的不同标的同时建立多头头寸与空头头寸,使整个交易系统的风险降低,期望构建的交易组合尽可能少地受到市场涨跌带来的盈亏冲击。相比于趋势性交易,市场中性交易策略收益的稳定性更高,但是通常来讲胜率较高、盈亏比也较低,是一种相对保守的策略。

一种容易理解的市场中性交易策略是同品种的期现套利,例如使用燃料油现货与燃料油期货进行套利,如图1-3所示,图中同时画出了燃料油现货和燃料油期货价格的走势图。

从图1-3中不难看出,燃料油现货价格在大多数交易日要高于燃料油期货的价格,由于期货本身存在仓储等成本因素,所以通常来讲期货的价格应该高于现货价格,然而现在出现了现货价格高于期货价格的情形,说明市场对于未来燃料油的售价存在悲观情绪,而这种情绪一般在没有重大利好政策的情况下不会在短期被扭转,因此在一定时期内可以认为燃料油的正常价格情形就是现货价格高于期货价格(Pnow>Pfuture),而在短期时间内由于市场本身的波动性可能造成,从图1-3中也不难发现存在这种情形的交易日,此时说明现货与期货之间的价格关系处于一种异常状态,因此此时可以买入数量为amount的燃料油现货并开空标的数量为amount的燃料油期货,这样当现货价格上升或期货价格下跌并且现货和期货价格关系回归正常(Pnow>Pfuture)时,再卖出燃料油现货并平空燃料油期货,则能获利

从以上示例不难发现,由于燃料油期货和现货的价格一般是同趋势波动的,而又同时持有相同数量的现货与期货,因此产生的盈利并不随市场价格的波动而改变,这种特定被称作市场中性的,而影响盈利的唯一因素是现货与期货之间的价差,由于期望中现货与期货之间的价差会回归理性,因此市场中性的交易策略就是吸纳价差从异常回归正常过程中盈利。

图1-3 燃料油现货与燃料油期货日价格走势图

当然,市场中性交易并不等于期现套利,而所有的套利方法也不一定是市场中性的,以上的例子只是为了便于读者理解。不难理解,市场中性的交易策略会快速检测价差的变化,并同时开平多个合约或标的,因此市场中性的交易策略对于交易速度与时效性的要求比趋势交易策略更高。

1.1.3 高频交易

高频交易通常是利用市场短时甚至瞬时的波动,通过总结的K线或盘口的规律进行的超短线交易,其盈利来源是在严格控制亏损的情况下每次交易仅获取少量的盈利,最终积少成多获取利润。

此类交易策略通常采用C/C++与FPGA硬件编程技术进行开发,以获取比交易对手更快的行情并以更快的速度攫取市场的利润。

由这几种不同的量化交易方式可以看出,相较于人工手动交易方式,手动交易只能完成趋势性交易,而对于需要同时操作多个合约或标的市场中性交易策略,人工难以在短时间内同时操作完成,必须借助计算机程序进行,而高频交易则更是人工不可能完成的交易。

传统投资和人工交易在目前市场有着明显的劣势:由于信息大爆炸,人类思维能够接收和处理的信息量十分有限,在有限的信息量下做出对市场的判断不一定是准确的,并且传统投资策略容易受到个体认知偏差的影响,不同的个体对于同一种交易规则可能会产生截然不同的交易和收益情况,并且主观交易还会受到人性贪婪与恐惧的影响,而使用量化交易的优势则显而易见:量化交易本质上是计算机执行一串代码,其执行情况在每台计算机上都是一致的,不因执行人的不同而改变,因此量化交易具有严格的纪律性和系统性,并且相较于人工主观交易,量化交易具有更高的即时性和准确性。