分享

干货|如何在不接入券商柜台的前提下进行手工低频程序化交易? 以证券ETF为例

 梦回唐朝0ony8a 2016-12-16

前言

量化投资博大精深,各门各派百花齐放;中性工具遇见万般人性,自然也是善恶分道;悟性训练不一而足,应用水准自然也是良莠不齐。试图用一个概念总结量化投资,还想说得头头是道,那是外行人的把式。虽然去年股市闹腾之后股指期货遭打压,券商的交易端口也不再开放,量化投资最热门的一些应用场景一度休克,但这并不意味量化投资就没有立足之地。本文以一个趋势投机的经典策略为例,告诉大家如何在不接入券商交易柜台的前提下,进行手工低频率的股票和ETF程序化交易。

热身


我们需要掌握一些基本的概念。


1、量化投资≠程序化交易。程序化交易算是广义量化投资的一种,但不是所有的量化投资都需要程序化交易,也不是所有的程序化交易信号都来自量化分析(组合交易);


2、程序化交易≠高频交易。不是所有的程序化交易都需要追求高频率的分析和交易响应。如果说上述两点还容易理解,第3点就比较容易引起大家疑惑了。


3、程序化交易不一定非要使用程序自动交易,对于低频率的程序化交易信号而言,完全可以用手动来下单,这丝毫不影响策略的效果。手工程序化交易的核心其实是使用程序化生产交易信号,使用程序化进行资金管理(加减仓位),使用程序化触发出场信号。

策略准备


1、策略。我们这里秉承程序化CTA交易的精髓,用趋势投机思路捕捉Beta型收益,也就是择时收益。具体采用海龟交易法则(Turtle)衍生出来的策略逻辑。


2、标的。将在期货中常用的CTA趋势投机策略应用到股票,首先需要要求标的高波动(Beta属性比较强),其次要求较高的波动以相对平滑的趋势呈现出来,而不是中短期毛刺。下图展示的同等波动率的不同波动类型,蓝线是我们更加需要的高波动品种。




为了满足上述要求,我们选择证券行业指数。一是因为证券行业是高Beta行业,具有高波动;而是因为行业指数波动比个股波动相对平滑。这里证券行业指数采用中证全指证券公司指数,代码399975。目前有国泰证券ETF(512880)跟踪上述指数,具有实盘可交易性。


3、周期。该策略以捕捉中长期大趋势为主,因此以日线为基础,但是交易信号的价格触发以30分钟线的收盘价为基础。30分钟线给手动交易预留了足够多的反应时间。同时了也解决了ETF流动性的问题。

策略细节


1、入场:初次入场采用价格突破20日最高价,出场后再次入场必须突破55日最高价,防止价格摆动;


2、仓位:仓位是海龟法则的核心,海龟策略通过价格的日度真实波幅ATR来确定开仓手数和加仓手数,日ATR用来估计未来价格的日级别波动程度,波动程度越大,需要准备的资金就越多,实际应用的杠杆就越小。因为每一手交易的单位和报价单位不相同(比如股指期货按照指数点位报价,但是每手合约按照点位乘以300元来交易;再比如豆粕按照每吨来报价,但是按照每手10吨来交易;股票按照每股来报价,但是按照100手来交易),所以需要把价格变动的ATR,乘以合约乘数(股票就是100),转化成每手合约面值的ATR。海龟策略的逻辑是按照每手合约价值ATR的100倍来准备初始资金,且首次建仓就交易1手。因为每手合约的面值大体是固定的,ATR越大,需要准备的资金就越多,实际应用的杠杆就越小,但具体的持仓杠杆水平和ATR与开仓价格的比值(预估波幅)有关系:


开仓时仓位(杠杆)=(开仓价格*合约乘数)/(ATR*合约乘数*100)= 0.01/预估波幅


如果预估波幅到了8%,那么开仓时的仓位(杠杆)只有12.5%。假如价格朝不利方向运动一个ATR,实际亏损仅仅为1%。


3、加仓:建仓之后,价格每朝自己有利持仓的方向运动0.5个ATR,也是股票价格比购买成交价格上涨0.5个ATR,就按照建仓的数量,加仓一份。但海龟最多开4手仓位,按照8%ATR,仓位(杠杆)为50%,也就是应对一个不利波动的最大亏损仅仅为4%。


4、出场:同时应用止损出场和信号出场。经典海龟如果价格比最后一次加仓价格下跌2倍ATR全部止损出场,如果价格跌破十日最低价,全部出场。我们这里对其进行改良,引入保护性止损,只要价格比最近十日最高价下跌2倍ATR,全部出场。

 

海龟的精髓是仓位,也就是所谓的资金管理,但这里可能有三个陷阱。


1、历史ATR过小,估算失真。在于ATR的估算可能失真。如果一段时间品种没有波动,ATR的估算非常小的时候,实际杠杆可能会很大。如果预估波幅只有1%,那么建仓时的实际杠杆就是1,也就是满仓操做,倘若开满四份,实际杠杆达到了4倍。这个时候,如果实际价格波动远远大于预估波幅,比如真实不利波动为8%,那实际亏损就会达到32%,甚至爆仓。


2、可用资金缩水,之前测算的手数失效。第二个问题在于,当资金量比较大,需要建立多份海龟仓位时,就需要按照资金量折算。如果按照初始资金计算,每份仓位的手数会比较大,但是随着交易的进入和止损推出,有可能可用资金越来越少,相比较一开始按照较多资金测算的手数,可能会造成可用资金不足。


3、品种可用杠杆较小。第三个问题在于,有些品种的可用杠杆本身就比较小,甚至没有杠杆,比如股票。这时候如果和前两个问题叠加,就会造成可用资金不足。

解决方案


1、不允许过小的ATR估算,强行设置最小值为2%;


2、海龟每次重新进场时,按照可用资金和初始资金的较小值测算仓位,或者较为激进的直接按照可用资金测算仓位;


3、考虑到可用杠杆,每个加仓时点,都试算可用资金,如果按照初始测算可用资金不够,就按照实际可用资金加仓,或者放弃加仓。

源代码




策略回测


国泰证券ETF(512880)于2016年7月26日上市交易,其跟踪指数中证全指证券公司指数(399975),2007年6月30日作为基准日,到2015年5月19日授权给交易所发布。考虑到指数行情的历史较短,我们按照指数编制规则,用券商股Tick数据模拟历史指数的分钟行情,测算历史业绩。

后验参数

 

区间:          2014年1月3日到2016年11月30日


策略参数:    长周期入场条件修改为30日,止损条件是20日高点回调2*ATR

 

策略周期:  30分钟(驱动周期为5分钟,即采用5分钟收盘价判断入场)

 

 手续费:      5%%

后验业绩




年化收益率

28.12%

夏普比率

1.4491

最大回撤率

13.75%

总收益率

1倍 



实盘交易


实盘中,由于目前证券公司第三方外接受限制,可以用天语监控证券ETF(512880)生产交易信号,然后手动交易,这对于30分钟反应的策略而言,足以手动操作。

 

证券ETF介绍


国泰中证全指证券公司交易型开放式指数证券投资基金,简称国泰中证全指证券公司ETF,代码512880,成立于2016-07-26,首募规模4.29亿,截止9月底份额为22329.15万份。截止11月10日,日均成交量为2790.32万份,日均成交额为2922.57万元,在所有行业ETF基金中居于首位。

 

如何获取天语CTA平台和策略源代码:


量邦科技官网下载天语,注册后,可以登录使用。可以在量邦社区中可以下载对应策略代码,http://bbs./?/question/200



背景故事


1983年,美国期货界的两个挚友Richard Dennis与William Eckhart之间就一个问题产生了分歧:伟大的期货交易者究竟是天生的,还是可以后天培养的?他们就这个问题进行了一场赌博,并为寻找答案进行了一场试验,这就是知名的海龟交易试验。这个试验的结果是Dennis成功交易的本领可以被教会的观点被证实是正确的


他们先是在《巴伦周刊》、《华尔街期刊》和《纽约时报》上刊登了大幅招聘交易学员的广告。广告称,在一个短暂的培训会后,新手将被提供一个账户进行交易。最后,丹尼斯和埃克哈特在1000人中甄选了13个人,并用2周的时间给他们传授了交易理念和思想。由于这一训练方法就好似新加坡人养海龟一样,于是丹尼斯和埃克哈特给这些学徒取名“海龟”,他们的试验也因此而得名。


当时“海龟们”却凭借这些交易法则取得了巨大的成功。在随后的四年中,“海龟们”取得了年均80%的收益。


事实上,丹尼斯和埃克哈特教授给“海龟们”的内容其实就是两个相关的系统。资料显示,这两个系统都以唐奇安通道(Donchian Channel)突破为基础,一个是以20日突破为基础的中线系统,另外还有一个以55日突破为基础的较简单的长线系统。20日突破可定义为超过前20天的最高价或最低价。另外,丹尼斯和艾特哈特还认为,一年中大部分利润可能仅仅来自于两三次大的盈利交易,因此增加砝码和连续性显得尤为重要。


作者:量邦科技特邀撰稿人 法派锐士

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多