第一章 交易系统概述
第一节 什么是交易系统
交易系统的概念包含了多重含义。广义的交易系统包含了交易中需要调动的所有软件和硬件资源,它能够在没有任何人工干预的情况下自动做出当前是否进入、退出市场的判断,并执行相关的交易指令。而狭义的交易系统则是开平仓逻辑、资金管理和投资组合管理等交易过程中需要遵循的规则。
由于不同投资者之间的硬件条件差异很大,有的人用工作站或者托管服务器进行交易,而有的人则用手机进行交易,他们之间对于交易细节的需求是不一样的,所以本书不去探讨如何优化交易速度、成功率和拆分交易订单等细节,而是重点关注如何将一个简单的交易逻辑转化为一系列可行的交易规则,这些方法对于所有交易者来说是非常宝贵的。
通过使用这些方法,即使是通过最简单的交易软件也能够实现量化投资的效果,因为组成交易系统的条件都是精确设定好的,例如“在持仓收益大于10万时平仓”“在股价低于10元时买入10手”等。这些有确定数量和方向的交易指令保证了交易系统的可回测性,从而使我们可以使用统计的方法计算出在一定的置信度下,该交易系统在未来将如何表现。
本书中所说的“资金管理规则”并不是通常所说的“风险管理”。风险管理是指在不同的市场风险度量下对仓位进行调整的规则,例如在某个价格设置止损或止盈,又或是在股价偏离均线超过一定比例时减仓等,本书将这些风险管理的规则纳入交易规则的范畴中。而本书的“资金管理规则”则讨论的是在不同的净值区间内如何调整持仓的数量,例如盈利超过1手合约所需保证金的150%时才能额外增加1手的持仓等。如果我们构建的投资组合中包含多个不相关资产时,“资金管理”也可以被称为“投资组合管理”,此时,最大化风险平价收益是资金管理的重中之重。
在实际开发和实现交易系统的过程中,我们需要使用软件并辅以一定的编程工作使其能自动模拟在市场中的交易。因此我们需要区分“交易系统”(或“算法交易”)与“自动化交易”二者的区别。从逻辑关系上看,前者是后者存在的基础:我们可以通过计算机产生交易信号但手动进行交易,但无法让计算机在不设定规则的情况下自动进行交易。而对交易系统的使用者们来说,最大的关注点应该是如何(通过一定的规则计算而不是靠自己的想象)产生交易信号,因为在交易中的其他工作都可以通过交易软件来完成。
下面是一个固定持仓数量交易系统的简单例子:
如果当前价格>最近20天的最高价,以该价格买入两份合约;
如果当前价格<最近20天的最低价,以该价格卖空两份合约;
持有多仓且当前价格<上一收盘价-2倍近20个交易日收盘价的标准差,则市价平仓;
持有空仓且当前价格>上一收盘价+2倍近20个交易日收盘价的标准差,则市价平仓。
在这个例子中,我们可以看到它具有进入和退出市场的条件,同时还考虑了多空两个方向。虽然它的退出条件单一,没有考虑止损、止盈等其他退出条件,但已经符合一个完整交易系统的条件,能够帮助初学者直观地理解什么是交易系统。
需要注意的是,如果一个交易者仅仅有一套预先设定的进入和退出市场的交易规则,而并没有经过测试和检验并得出到底应该何时退出和进入市场的最终结论的话,那这只能称之为“交易思想”,而不能称之为“交易系统”。只有假设市场中产生的交易信号能够得以实现,即在得到所有的买入信号后都能够顺利按照目标价格买入,在得到所有的卖出信号后都能够顺利按照目标价格卖出,并对这些交易方法在过去的表现做出详细研究、辅以必要的统计测试以后,才能称之为“交易系统”。相比之下,“交易思想”则显得有更多的主观判断和直觉的因素,未必能够真正实现。正因为交易系统更加精确与科学,且其经过了严格的检验,越来越多的投资者逐渐从“交易思想”转到了“交易系统”的探究和使用上。
不过大众也一直对交易系统存在误解:人们似乎理所当然地认为,一个好的交易系统必须有一系列烦琐的规则、庞大复杂的程序,并充满复杂的公式和算法。虽然这很可能让这个交易系统卖出一个更好的价钱,但这些繁复的规则和算法带来的或许是灾难——因为过于负责的规则背后隐藏着过度拟合的风险。
事实上,一些常用的技术分析(Technical Analysis)或画图(Charting)的方法和指标在实际应用时都能得到不错的效果,一方面因为这些指标有比较强的预测能力,另一方面也可能因为大部分人的交易都会遵循这些指标以往的规律。类似通道突破、移动平均线等技术分析的逻辑在应用时并不会像大家所想的那样会降低策略的盈利概率,而是会提高盈利概率。由于后续在交易策略中还要逐步加入资金管理、投资组合构建、风险管理等必要部分,所以不用担心最初的策略会过于简单而导致绩效指标不好。除此之外,投资组合管理显得因为必要,因为我们总会有预算约束,而且好的投资组合管理在很多时候能够利用一个平庸的策略获得不错的收益率曲线。