基于资金主动性流向的交易策略
NO.1 前言价格不是上就是下,长期而言,价格的涨跌概率应各是50%,那么要正确预测未来的价格,就需要实时获取影响价格的全部因素,然后给每个因素一个正确权重,最后作出客观理性分析。要把影响价格的全部因素罗列出来,可能会写满整个屏幕。概括为:全球经济环境、国家宏观政策、相关产业政策、供需关系、国际事件、利率与汇率、通货膨胀与紧缩、市场心理、未知因素等等。预测也就变成了一个工程浩大,又不可能完成的任务。所以很早的时候,我就明白市场不可预测。那么在市场中所有的预测,都变成了假设,交易也成了概率游戏,这就有意思了。NO.2 为何利用资金流向既然市场无法预测,那真的就无动于衷了吗?不,所有的宏观因素和微观因素都已经反映到价格上了,也就是说价格是全部因素相互作用的结果。我们只需要分析价格,就可以做出一个完整的交易策略。
https://quant.la/attachment/article/20180420/1524186397373284500.png
先仔细想一想,为什么价格会涨?
你可能会说,因为:国家对相关产业政策扶持、原产地又双叒叕下暴雨了、国际贸易战、MACD金叉了、隔壁老王大V都买了等等,当然这些也许都没错。事后看,总能找出推动价格上涨的理由。
其实,价格的涨跌类似于水涨船高。价格的上涨离不开资金的推动,盘面上,如果买的人多过卖的人,价格就会上涨。反之,如果卖的人多过买的人,价格就会下跌。有了这个概念,我们就可以根据资金净流向反映出来的供求关系,对未来价格的走势给出合理的预期。
NO.3 资金流向概述与传统分析不同的是,资金流向分析根据一段时间序列的交易数据中,分析哪些成交是资金主动流入的,哪些成交是资金主动流出。然后,把该时间段主动流入的成交量减去主动流出的成交量,便可以知道该时间段的资金净流入。如果资金净流入为正,表示该品种供不应求;如果资金净流出,则表示该品种供过于求。
https://quant.la/attachment/article/20180420/1524186421293257221.png
读到这里,可能有人会疑问,在实际交易中,有人买有人卖才会成交。成交的单子必然是有多少买量就有多少卖量,资金进出一定是等量的。何来资金流入流出呢?
其实严格来说,每一个买单必然对应一个相应的卖单,资金流入和资金流出一定是相等的。如果我们想要计算出哪些成交的单子是主动性买入的,哪些单子是主动性卖出的,只能用一个折中的方法,利用bar数据,根据成交量和价格来实现。
NO.4 资金流向算法资金流向的变化准确对应着实时的市场行为,通过整合bar数据,实时计算资金净流向。关于计算资金主动性流向有两种算法:
[*]第一种,如果当前单子的成交价是以对手价或超价成交的,买入成交价 >= 卖一价,代表买家更愿意以较高的价格完成交易,即计入资金主动性流入。
[*]第二种,如果当前成交价格 > 上次成交价格,那么可以理解为,当前的成交量主动推升了价格的上涨,即计入资金主动性流入。
https://quant.la/attachment/article/20180420/1524186447078898793.png
以上述第二种算法为例:螺纹钢 1810 在 10:00 的收盘价是 3450,在 11:00 的收盘价是3455,那么我们就把 10:00 ~ 11:00 的成交量计入资金主动性流入。反之则计入资金主动性流出。
而本文是在第二种方法的基础上,加入了价格波动幅度这个因素,通过前后bar收盘价对比,把上涨或下跌的bar的成交量 * 波动幅度计入到一个序列,然后根据该序列进一步计算资金的主动性流入比率。
NO.5 资金流向源码获取数据:通过BotVS量化交易平台,直接获取bar数据。包含最高价、最低价、开盘价、收盘价、成交量、标准时间戳。
https://quant.la/attachment/article/20180420/1524222451498073203.png
数据处理:如果最新的成交价大于上次的成交价,那么就把最新的成交量 * (最高价 - 最低价)计入主动性买入;如果最新的成交价小于上次的成交价,那么就把最新的成交量 * (最高价 - 最低价)计入主动性卖出;
NO.6 策略构建本文从“量”的角度来刻画期货市场的资金流向,通过实时分析bar数据,建立判断短期价格走向的交易模型。
https://quant.la/attachment/article/20180420/1524186575697368372.png
一般的情况下,资金流向及价格走势可以分为四种基本状况:
[*]价格上升,同时单位时间内资金主动性净流入:这种情况下属于强势,未来价格继续上升概率更大;
[*]股价上升,同时单位时间内资金主动性净流出:这种情况下属于中强势,未来价格继续上升的速度大幅减弱;
[*]股价下跌,同时单位时间内资金主动性净流入:这种情况下属于弱势,未来价格继续下跌概率更大;
[*]股价下跌,同时单位时间内资金主动性净流出:这种情况下属于中弱势,未来价格继续下跌的速度大幅减弱;
上述是一般散户对于资金流向的理解,但本文并未采取这种方法,而是以一种物极必反的理念去构建策略。举个例子,价格上升,同时单位时间内资金主动性净流入:这种情况下属于表面上属于强势,但这么强的能量释放,一般不会维持太久,可能随着时间的推移而枯竭,那么就是卖出的时候。反之亦然。
NO.7 出入场条件一个好的量化交易策略,不仅需要稳定的收益,而且能够控制风险,在小概率时间出现时,避免出现较大亏损。在这里我们使用跟踪主动性资金流向策略,借助短期价格预测对商品期货行情方向进行分析,从而达到高收益、低风险的效果。 策略的步骤如下图:https://quant.la/attachment/article/20180420/1524186598309421736.png
定义主要变量,如下:前期低点(ll)前期高点(hh)主动性买入(barIn)主动性卖出(barOut)开仓阈值(openValve)当前持仓(myAmount)上根K线收盘价(close)
[*]多头开仓:如果当前无持仓,并且barRatio> openValve,买入开仓;
[*]空头开仓:如果当前无持仓,并且barRatio< 1 / openValve,卖出开仓;
https://quant.la/attachment/article/20180420/1524222853042619030.png
[*]多头平仓:如果当前持有多仓,并且close < ll,卖出平仓;
[*]空头平仓:如果当前持有空仓,并且close > hh,买入平仓;
https://quant.la/attachment/article/20180420/1524222864855101507.png
为控制风险,对策略设置严格的止损止盈机制,实时监控账户持仓盈亏状况的变化,在不考虑滑点等因素的情况下,止损止盈可以做到0延迟。
NO.8 策略特点特点:
[*]核心参数少:模型设计思路清晰,核心参数少。可优化空间很小,可以有效避免过度拟合。
[*]较强的普适性:策略逻辑简单,具有高普适性,除农产品外适应大部分品种,可以进行多品种组合。
改进:
[*]加入持仓量条件:单向(股票)市场资金流向可以根据价格涨跌、成交量等因素来界定资金的流入或流出。 但是,由于该策略并没有加入持仓量这个条件,使得统计主动性资金流向可能会失真。
[*]加入标准差条件:仅仅依靠资金流向来作开仓条件,可能会出现频繁的虚假信号,造成频繁开平仓。通过统计指定时间内的资金净流出的平均值,上下加上标准差,来过滤虚假信号。
NO.9 总结本篇通过建模,利用BotVS量化交易平台提供的商品期货bar数据,通过收集数据、相关分析、预测技术、建立净资金流向模型。利用时间序列分析,对未来商品期货价格进行预测,并设计出商品期货量化交易策略。
需要注意的是:本文所指的资金流向是资金主动性流向,是市场上买卖双方对垒力量的强弱,而不是指资金的进场或离场。通过分析市场上买卖双方行为,判断未来价格,不具有短线参考意义。
最后附上策略全部源码:https://quant.la/attachment/article/20180420/1524189021688711854.jpghttps://quant.la/attachment/article/20180420/1524222927048654642.jpg
参数配置:https://quant.la/attachment/article/20180420/1524222944948106189.pnghttps://quant.la/attachment/article/20180420/1524222955631101769.png
回测绩效:https://quant.la/attachment/article/20180420/1524222971290143577.png
转载:宽客在线 原文链接:https://quant.la/Article/View/73/
页:
[1]