量化交易浅介

量化交易最明显的优势就是其100%的机械性操作,不掺杂任何主观情绪。而人工交易中,无论交易系统多么成熟、交易者多么优秀,往往在交易决策中依然会出现情绪干扰。其次,对于个人交易者而言,谁都不愿整天盯着图

量化交易最明显的优势就是其100%的机械性操作,不掺杂任何主观情绪。而人工交易中,无论交易系统多么成熟、交易者多么优秀,往往在交易决策中依然会出现情绪干扰。其次,对于个人交易者而言,谁都不愿整天盯着图表不放,量化交易系统可以全天候的监控市场价格走势,完成7/24全年无休的交易工作,这是人类身体无法抵达的劳动强度。再次,量化交易通过使用历史价格数据,对交易策略进行回溯测试,用测试结果评估交易策略的有效性,这对于人工交易者而言,是根本无法实现的。最后,遇到多次相同的市场情况时,量化交易程序会做出同样的交易决策,这放到人工交易者身上就不能确定了。

量化交易基本包含两个知识领域,一是金融与交易。例如:市场供给与需求理论、各种资产类型(股票、期货、期权、外汇等)、买入/卖出的区别、点差和各种交易成本、市场流动性、保证金与杠杆如何运作、风险管理基础、不同的订单类型等等;二是数据科学与编程,把自己的交易策略通过数学语言进行描述,通过Python、C++等语言编程,通过程序有效地执行各种交易动作。一套量化策略永远不可能适应所有的市场环境,所以交易者需要不断的进行优化和改进,才能有效延长量化策略的生命周期。由于个人编程很难实现交易策略与风控策略的合并统一,所以交易者必须在策略执行过程中,加上人为的风控管理的规则。

随着交易数据不断的增加,这时需要不断把最新市场数据导入到量化程序中,进行反复回测,以验证量化程序是否依然有效,是否需要修改优化。在充分的回测和优化之后,可以先在模拟账户中使用策略,观察在滑点、跳空等市场价格的影响下,策略是否能有效的执行,模拟账户交易是一个发现策略是否被过度优化的途径。当实盘交易盈利表现稳定后,可以按比例和节奏,逐步增加交易资金和交易规模以提高盈利水平,我们始终需要不断的对量化程序的运行进行监控和复盘,并根据市场的变化进行优化与调整。

一般量化交易算法的组成部分:

一、标的选择模块:类似“选股器”的概念,通过一系列的标准或因子,从庞大的金融市场中选择交易哪些产品。交易者需要建立一套标准去筛选(如流动性、价格、行业等),同时还需要考虑是否能获得相应资产标的的相关数据,最终将投资方向集中于一个或多个特定标的物子集上。

二、阿尔法模块:交易者需要在这个模块中构建最核心的交易逻辑,通过程序化语言将你对市场分析、判断、决策的标准告诉计算机。该模块只负责在接收到上述的标的清单之后,通过对市场价格的分析计算得到交易信号,但并真正下单执行动作。

三、投资组合模块:最简单的投资组合,可以将总资金平均分配到每个投资标的上,当信号出现时直接交易等额标的物。较复杂的投资组合,要通过市场环境、风险因子、杠杆比例、保证金要求以及近期波动情况,来区别分配资金以达到投入回报的最大化,风险的最小化。

四、交易成本模块:在程序真正执行交易订单之前,算法系统必须对每一笔即将执行的交易进行成本测算。因为有时交易信号虽然正确,但综合考虑交易佣金、点差、市场滑点等因素之后,会发现根据现有资金和规模最终无法盈利。

五、交易执行模块:执行具体订单的决策。对于订单规模,如果一笔订单过大,系统会决定是否拆成数笔小额订单去执行;对于订单类型,如果波动过大或过小,系统会决定使用市价订单或是限价挂单;对于交易时点,有时候一个交易信号在剧烈波动中的市场里有效性非常短,所以算法系统要决定在多长时间内执行订单,超出时间就取消此次交易。

六、风险管理模块:每笔订单执行后,根据市场价格走势,系统决定在什么时候需要进行干预。简单的风控程序是为每笔订单设置一个止损比例,当本金亏损达到一个固定比例时自动关闭交易。复杂的风控程序能做到更精密的要求,如进行部分平仓止损、对冲风控等。

整套交易系统每个模块并没有主次之分,一套程序化交易系统,在不同的交易者手中,由于设置参数的不同,执行方式的不同,投资组合不同、交易标的不同、资金管理不同,而产生截然不同的表现结果。用一个最简单的案例来说明上述六大模块是如何分工协作的,为了方便理解,使用50日均线模型,但并不适合在真实市场进行。首先,标的选择模块,策略程序会从美国证券市场所有的高流动性股票中,自动选择日交易量排名前10的股票,作为标的池进行交易;然后,阿尔法模块,算法会将标的池中的10只股票的当前市场价格与其50日移动均线进行比较。如果当前市价高于50日均线价,程序会发出卖出信号,反之发出买入信号。程序会将形成的10组交易信号,传送至投资组合模块,进行平均等额的资金分配,并限定合计交易资金不超过账户总资金的75%;再然后,交易成本模块,每笔交易合计5美元佣金,系统忽略滑点成本,这意味着不会因为交易成本增加而拒绝任何一笔交易信号;最后,风控管理模块,规定当持仓收益>5%或亏损>2%时,向交易程序发送平仓信号。

评估一套量化策略的有效性,一定需要运用大量的数据统计相关的指标来进行分析。最大回撤:该指标是表示量化策略的收益曲线中最大的跌幅百分比。即使在给定的一段时间内成功实现了杰出的收益结果,但是最大回撤竟然达到80%,说明高收益背后可能是交易者无法承受的高回撤风险。最大连续亏损:通过统计该指标可以让交易者对最坏情况有一个心理准备,不至于在实盘中遭遇连续亏损而对量化系统失去信心。历史数据回测并不会考虑交易中的变动性成本,例如市场价格滑点、开闭盘时价格跳空等。这时量化策略即使在回测中取得好成绩,也不能确保在实盘中能获得同等收益。

历史回测即便充分考虑了交易成本,依然会因为过度拟合产生测试结果的偏差。过度拟合,是指在量化策略优化过程中,为了得到最大化收益而不断调整策略参数,以确保在给定的历史数据中能表现最优,但过度拟合后的策略在实际交易时结果往往大相径庭。避免过度拟合最好的方法是,将历史数据分成样本内、样本外分别测试。交易者可以简单地使用60%的样本之内的历史数据进行策略优化,然后优化后的策略在另外40%的样本之外的数据中进行测试评估。如果样本外测试的结果与样本内测试的结果差距很大,就是可能出现了过渡拟合的问题。相对成熟的方法是构建动态模型,以适应不断变化的市场条件,而不使用固定的技术参数。动态模型的量化策略,会根据当下的波动率、持仓比例等不同因子来综合评估。

一套量化策略哪怕已经通过了历史回撤、策略优化等步骤,依然需要谨慎地使用,毕竟在实盘中每笔亏损都代表着真实的资金流失。初期交易表现符合预期时,在考虑增加实盘资金量之前,交易者需要做一些安全压力测试,因为资金规模的变化,会在交易者心理上产生截然不同的影响。程序化无非是把交易者脑海中的一套交易规则、标准通过编程语言进行程序化让计算机来完成,同时借由回测等工具,提高策略的执行效率和效果优化,量化交易中编程只是一个工具,真正核心的还是交易能力。

原创文章,作者:币圈吴彦祖,如若转载,请注明出处:https://www.kaixuan.pro/news/410397/