量化交易主要应用在具有高流动性与历史数据丰富的金融投资市场,就期货市场而言,既可以在商品类品种也可以在股指等金融类品种上进行。本文将主要就股指期货的量化投资阐述我们所设计的一种单品种交易策略模型,使大家了解如何全面而详细地构建一个量化投资策略。
本文所介绍的股指期货量化投资模型称为趋势价值线,主要跟踪品种的趋势性投资机会。按照我们对市场的理解,价格运行的状态完全可以分为上涨趋势与下跌趋势(所谓振荡市是这两种趋势行情的包含形态)。上涨趋势可以分为三个阶段:牛市确认、牛市主阶段、牛市衰退;下跌趋势也可以分为熊市确认、熊市主阶段与熊市衰退三个阶段。在趋势的第一个阶段——确认阶段,行情走势完成初步反转,新的趋势形态比较清晰,作为趋势投资者可以开始介入;在趋势的第二个阶段——主升/主跌阶段,价格趋势形态的动能强劲,是趋势投资的主获利阶段;第三个阶段则为趋势衰退阶段,行情进入尾声,并出现新趋势的萌芽,此时为趋势投资退出阶段。
市场趋势的阶段划分
趋势投资量化模型的设计要点在于如何确立新的趋势、如何追踪趋势的发展以及评判趋势的结束。趋势价值线算法的原理是我们通过长期市场实践所发现的价格自我反馈规律,通过这种价格反馈规律可以基本确认新的趋势,并顺趋势发出跟踪信号,并在趋势衰退时提醒退出。
趋势价值线信号类型
量化投资的实现方式主要是计算机自主交易,由计算机追踪行情并根据算法自动下达交易指令。为了方便对计算机可靠性的监控,我们对算法进行了可视化处理,如上图所示,行情界面的上半部分是K线图,下半部分则是算法信号,发出多头信号时进行趋势性做多投资,发出空头信号时则提示进行趋势性做空投资。
沪深300指数的趋势价值线信号
一个完整的量化投资流程不仅仅只是制定行情判断的算法模型,还需要对实现模式进行精细化设计。算法实现模式主要包含两个方面:其一是交易模块的设计,其二是交易系统平台的选择。交易模块是指在具体下单操作时在交易、风险控制以及品种选择上进行的模块化设计。在趋势价值线量化投资策略中,交易模块主要由入市、止损、退出、品种组合、历史验证以及头寸管理等部分组成,这些组成部分形成了系统化的操作方式。
入市策略
入市策略是指在股指期货合约上开仓时机、点位的选择,趋势价值线量化策略主要依据算法对新趋势确认阶段的追踪而进行开仓,在可视化界面上则依据信号颜色的变换进行。具体方式如下:
买入交易(做多):当股指期货价格信号由下跌趋势信号变成上涨信号时,在连续第二根信号棒的收盘处买入开仓,建立多头头寸后,当信号再次呈现下跌信号时,在第一根下跌信号棒的收盘处卖出平仓。
趋势价值线买入交易信号
卖出交易(做空):当价格信号由上涨信号变成下跌信号时,在连续第二根下跌信号棒的收盘处卖出开仓,建立空头头寸后,当信号再次呈现上涨信号时,在第一根上涨信号棒的收盘时买入平仓。
趋势价值线卖出交易信号
在开仓时点的选择上需要关注很多细节的处理:
第一,采用期货日线进行交易。
第二,连续出现两根同色信号棒时才开仓。在第一根信号棒出现时不进行处理,如当信号由下跌趋势的信号变为上涨的信号时,在第一个上涨信号出现时不进行买入开仓,当连续第二根信号棒仍为上涨信号时,才进行买入开仓。
第三,以第二根信号棒为准。这主要是因为,当行情进入趋势转折点或趋势不明确期时,价格会在信号转换临界点进行反复穿刺,导致伪信号出现。比如,当下跌趋势信号变为上涨信号时,第一根上涨信号棒后面可能再次出现下跌信号棒,因此,以第二根连续信号棒作为开仓点位可以降低伪信号带来的影响。
第四,在交易时(无论开仓还是平仓)以收盘价为基准进行操作,我们可以选择在收盘时、收盘前20分钟内、次日开盘10分钟内进行交易。
第五,选择收盘价为基准进行操作。
这主要是基于以下两点原因:一是模型信号以收盘价为核心,模型效果的历史检验以收盘价进行测算,所以用收盘价作为操作价格使操作具有可检验性和连续性;二是在信号转换时,日内价格可能会发生对转变临界点的反复穿刺,导致频繁无效交易,而以收盘价为基准可以规避这种缺陷。
止损策略任何分析模式的可靠性都是一个概率问题,世界上没有百分之百正确的方式。评价一个交易策略或模型是否有效,关键是看期望收益(期望收益=盈利交易平均盈利额×盈利概率+亏损交易平均亏损额×亏损概率),期望收益为正就是好的模型。
本方案并不排除会出现失真信号(信号与行情走势出现较大幅度的背离),因此,我们在交易模式中设置了止损策略,防止在信号背离时出现较大损失。
止损以风险额度为计算基准,即用分配给股指期货头寸的风险额度除以头寸数量得到止损幅度,再加到开仓价上就得到止损价格。例如,账户总资金为100万元,分配给股指期货交易的风险额度为总资金的2%,即在股指期货交易上设定的最大损失为100万×2%=2万,股指期货合约乘数为300元,假设开仓价格为3500点,开仓数量为多单2手,则止损价格计算为:止损价=开仓价格-分配的风险额度/(合约数量×合约乘数)=3500点-2万元/(2手×300元/点)=3500点-2万元/(600元/点)≈3500点-33点=3467点。
价格到达止损价位后进行平仓,止损后会遇到两种情形,其操作方式分别如下:
第一,止损后不再顺信号重新开仓。止损后将前一个开仓价格作为重新开仓的基准,如果发生止损后价格不再触及到原先的开仓价,则不再顺信号重新开仓,此时进行空仓处理。以多头交易止损为例,如下图所示,在连续两根上涨信号棒出现后开仓买入,8个交易日后价格触及止损位,进行卖出平仓,此后7个交易日内信号仍维持上涨信号,但价格在上涨信号保持期间未能重新站到前期买入开仓价之上,因此在这个时间段内不再开立新的多单。空头交易则相反,如果价格未能重新跌到前期开仓价则不再重开空仓。
第二,止损后再顺信号重新开仓。止损后将前一个开仓价格作为重新开仓的基准,如果发生止损后价格重新触及到原先的开仓价,则再次顺信号重新开仓。以多头交易为例,如下图所示,买入开仓后价格经历较长时间盘整然后回落,价格触及止损位进行卖出平仓,4个交易日后价格重新上涨到前期开盘价,此时重新买入开仓。空头交易则相反,当买入平仓止损后,如果价格重新下跌到前开盘价则再次卖出开仓。
注:当建立头寸后价格发生不利波动,产生浮动亏损,此后价格虽然还未到止损位,但信号发生转变,此时在新的信号棒收盘处平仓(如果还未收盘但到达止损位也进行平仓)
退出策略
在获利条件下,当期货合约价格信号发生转变时,在第一根转换信号棒的收盘价处进行平仓。如多头交易获利,当信号由上涨变成下跌时,在第一根下跌信号棒收盘价处卖出平仓以了结多头获利;在空头交易中,价格下跌获得盈利,此后价格信号发生转变,由下跌变为上涨,在第一根上涨信号棒收盘价处买入平仓以了结空头获利。
合约换月策略 持有期货头寸后信号还未发生转变,但合约成交量与持仓量急剧下滑,主力合约转移至其他月份合约,此时需要对头寸进行换月处理。头寸换月移仓处理非常简单,当某个交易日持仓合约交易量与持仓量大幅缩小,已经明显小于新的主力合约,此时可以进行换仓。我们将换仓日定义为D日,在D日临近收盘时平掉老合约上的头寸,同时在新的主力合约上开设新的头寸,新头寸与旧头寸的持仓交易方向和数量都相同。
历史验证
历史验证是指将系统交易信号用于以往行情的模拟交易中,检验交易算法能否在历史走势中获得收益。量化投资相对主观判断交易的优势之一就是具有业绩可验证性和追溯性,能够通过以往行情数据来检验模型的可操作性、缺陷以及收益能力。
历史验证过程主要计算三个方面的指标:胜算率、期望收益率以及亏损度指标。胜算率是指在总交易次数中盈利交易的比重,该指标是一个比较重要的指标,指标值越大盈利能力越强,但胜算率高并不一定意味着能够实现长期收益。
相对胜算率,期望收益率是一个更重要的指标,该指标是指盈利交易抵消亏损交易后的净收益状况,用公式表示为:期望收益=盈利交易平均盈利额×盈利概率+亏损交易平均亏损额×亏损概率,期望收益为正表示可以获得长期盈利的能力,期望收益为负或零则表示无法获得长期盈利。亏损度指标主要包括单次交易最大亏损额、最大连续亏损额,亏损度指标主要衡量交易毁灭率,指标值越高表示越容易发生重大亏损。
由于股指期货尚未上市,缺乏实际数据用于测算,所以本文以铜期货作为替代品种进行分析(不用标的指数价格作为近似替代是因为期货交易有换月处理)。采用数据时间段为2001年1月—2009年11月11日,仓位比重为30%。
总共交易次数为54次(连续换月算作1次交易),盈利次数13次,胜算率24.07%;盈利交易中,平均盈利率为77.66%;亏损交易中,平均亏损率为-3.47%;期望收益率计算为16.06%,获得正向的期望收益率;单次交易最大亏损率为-11.11%,最大连续亏损率为-19.59%;9年左右的时间总收益率达到4672.36%,年复合收益率为53.29%。
风险控制
风控流程:风控流程的原则在于决策、交易和风控三分离。由于采用系统化交易方式,决策由电脑程序根据行情演变发出进出场信号,所以决策完全做到独立,交易由操盘人员根据模型信号进行,风险管理的关键环节在于交易人员是否严格按照系统信号和事先设定的头寸管理方法进行操作。因此,可以设置风控员岗位对交易进行核对,察看交易员是否严格执行了交易方案。
在设计风控流程时可以设置三种岗位:交易员、风控员与交易主管。交易员根据主管授权进行下单操作,并要在盘后向风控员与主管提交日报表,风控员负责盘中定期监测头寸、盘后检测账户以及盘后向主管提交日报表,当盘中出现风险时向主管汇报,并根据主管人员指令进行风险处理。主管负责审查交易员与风控人员提交的报表,并决定是否继续向交易员进行交易授权。风控流程岗位也可以进行精简,将风控岗位和主管合为一个岗位。
从交易本身而言,风险控制的核心在于头寸管理。如果头寸管理不严、仓位过重,则无论交易系统本身胜算率有多高,账户最终都会出现严重亏损。头寸管理的目的在于限定交易亏损,使风险具有可控性。
制订头寸管理策略一般有两种模式:第一种是在交易之前就已经确定了总头寸大小,即设定总的保证金占账户资金的比重,然后是分配每个交易品种所占有的资金量,通过计算每个品种的波动性,得出单个品种所面临的风险,最后再加总所有头寸的风险;第二种方式是先确定账户所愿意面临的总风险,如设定账户最大亏损为总资金的5%,然后分配所交易的每个品种承受的风险,通过单个品种波动性和所承受风险的对比,可以计算出品种的头寸规模,加总后就可以得到总的头寸大小。
来源:简书