设为首页 | 加入收藏 | 今天是2024年11月22日 星期五

聚合智慧 | 升华财富
产业智库服务平台

七禾网首页 >> 程序化交易 >> 程序化交易技巧心得体会

量化爱好者需要什么样的交易平台?

最新高手视频! 七禾网 时间:2015-11-20 13:25:48 来源:知乎 作者:宏观经济算命椰

笔者目前是一名个人量化交易爱好者,以前有一些主观交易的经验,有数学和金融的背景,在买方干了两年左右,14年7月判断要来一波行情,就辞职出来,当了一个专职散户。


我们这一类的量化爱好者,对金融市场有所了解,以前是主观交易转过来的。我之所以选择量化,看重的还是量化的纪律性。克服贪婪和恐惧,仅从这点而言,量化交易有先天的优势。


就我这类人而言,数学背景有(学渣这么说是不是大言不惭),算法编程能力有,对金融和市场的经验也算有,那么唯一的短板在于偏计算机的编程能力,比如怎么去搞底层的接口,下单通信问题怎么解决。学习一下当然是能学会的,但是感觉这样学性价比较低。术业有专攻,有这个时间,不如多思考一下市场,多看看新闻。


当前的A股市场,由于这轮暴跌,程序化交易暂时受到严格的监管。但长远来看,量化是一个趋势,重新开放是迟早的事情。从另一个方面讲,在A股T+1的限制下,程序化下单其实并不是那么重要,完全可以程序化判断,手动下单,打造一个半自动的系统。


因此,如果有一个好的一站式的解决平台,确实能方便很多。


所以,看到中国的量化交易网站有了蓬勃发展苗头,其实我心里还是很高兴的。我跟其中的一些创始人也认识,对这种互联网创业的精神非常的认可和佩服。


那么这里我也提提我关于策略开发流程标准化,尤其是回测流程标准化方面的一些思考和观点。希望和各个平台能多交流,同时也和身为个人量化交易爱好者的同好们多交流。


首先,量化的开发,其实是一个比较有专业性的东西,不能完全属于C端。所以,为了满足功能的完全性,对于便捷性肯定要有所牺牲,不能像互联网小白产品那样。打个比方,市场相当于一个黄金产区,地底可能埋着金子,那么量化策略相当于挖矿工具。那么量化平台,其实相当于制造这类工具的车间,是为了制造一些生产资料(策略)而进行的。那么这个车间复杂度必然无法降低到消费品的等级。


这点上希望开发者能把握一下。最好的情况,自然是上手简单,想要进一步深入,也能提供丰富的工具。但如果不能同时满足上述两条,则需要优先满足第二条,即功能全面性。复杂度高点也无所谓。另外一个原则,就是尽量让用户自决。也就是说,量化网站不要替用户做出决定,比如回测的时候,强制用户以收盘价,或者平均价来成交。可以提供一个参数,用户自己决定。另外,有些股票可能不会成交,例如上证指数。但是如果用户在回测中愿意使用上证指数作为标的物,也可以提供这方面的。总之,在合理性和灵活性的抉择上,尽可能的提供灵活性。而合理性的判断,交给用户。


对于开发一个策略的完整流程,步骤应该比较标准,很多人都提到过,也不重复了,大概就是遵循:有一个idea(历史数据统计,某些显著的Alpha)->回测->实盘(模拟盘)这个过程。那么对应的平台模块呢,也需要满足这三个模块去对应三个功能。这次重点说说回测这个模块。有关回测,个人认为,完整逻辑如下图所示:



标准化的回测,就是在每个时间跨度下,将上述的流程进行一遍。这个时间跨度是给定的,可以按照分钟,也可以按照交易日,也可以按照tick。


而在上述流程中,信号处理模块和资金管理模块,就是我们通常意义上所说的“策略”这里把策略定义一下:所谓的策略,就是一个函数,输入的是各种信号,输出的是仓位比例。这里,我们暂时将讨论范围限定到传统技术分析所需要的信号上,也就是市场的价格、成交量和时间三要素,并称其为市场信号。


那么,策略就是一个函数,记为S,则有仓位比例=S(市场信号的集合,当前的仓位)。


是,从实际操作上出发,对于策略S,我们又可以分为两个函数,即信号处理函数,和资金管理函数。为什么要分为两个函数?一方面,从逻辑上而言,人们就是这样思考的:先找出市场信号,根据市场信号测算未来的收益率的分布函数,再根据未来收益率的分布函数推出资金管理比例。另外一方面,如果将策略函数S拆分成两个函数,则会产生中间变量(往往是未来收益率的分布),有:中间变量=S1(市场信号的集合)仓位比例=S2(中间变量,当前的仓位)。


而对中间变量的考察和操作,也能更好对策略进行评估。写上面这么一堆的意义在哪里呢?目的是把用户的需求抽象化,标准化,然后在此基础上,来说明用户需要什么样的服务。目前的量化平台网站大体上也是按照这么一个流程开发的,只是没有网站在用户引导的时候,清楚的归纳一下,提出个标准化的东西罢了。 


照这个标准,其实回测函数可以分为三部分,当然如果策略本身不复杂,写到一个函数中也可以。同时希望平台也提供一下三个函数的回测模板,每个函数聚焦一个功能上。比如信号的函数就是信号函数,处理完了再传递给资金管理的函数,然后再传递给交易成功与否的函数。这样逻辑可能更清晰一些。另外,我们需要的服务就是对每一步数据,能够提供方便的保存,记录和查看的功能。 


也就是说,能方便的提供一个矩阵,将中间变量根据时间矩阵化,能导出到excel上。再此基础上,如果能做到网页上的数据可视化是加分项。举个例子,如果策略是5日金叉10日,并且成交量大于金叉前5天的平均值时买入,仓位占比50%,10日均线死叉5日均线卖出,清仓。那么,我就需要将5日线和10日线金叉的信号全部记录下来。首先,我要看看这个5日线金叉10日线的判断在什么日期发生了。同时,我需要将成交量大于前5天平均值的交易日也全部记录下来,然后再比较这两者同时发生的情况。这个记录下来是什么意思呢,就是说我肉眼要看到,在这一天,确实有信号发出来了。可能的情况下,我还想验证一下,这些信号发出的对不对,可能还需要跟原始数据比较一下。


在5日线金叉10日线这个策略中,可能矩阵不矩阵都没关系,打出日志也是能查的,但是如果策略复杂了,表格化对分析探讨是非常有帮助的。因此,这个的中间数据制表操作的简化功能,是我认为目前网站可以稍微研究一下的功能,而对于用户来说,确实能大大的方便开发进程。当然,以上的指标工具,是在历史数据精确的前提下提出的。如果数据都不精确,那么皮之不存,毛之焉附。在资金管理模块中,自然也涉及到制表的功能,其实上面的图中,画着方框的三个模块,都需要一个简化的对中间变量制表的操作。         


而对于最后一个模块,交易成功判断与否,这个跟模拟盘有极大的关系,我们以后再讨论。有一个滑点的问题是需要提一句的:滑点分为两种,一种是市价单成交价格滑点,另外一种是限价单时间。两种可以统称为滑点。在回测中,滑点的判断应该完全交给用户,滑不滑,滑多少,用户说了算。而且,在进行回测的时候,需要给用户一个功能,就是每调用一次回测函数,用户都可以随时更改滑点参数的设置,应付不同的市场状况。


责任编辑:张文慧

【免责声明】本文仅代表作者本人观点,与本网站无关。本网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

本网站凡是注明“来源:七禾网”的文章均为七禾网 www.7hcn.com版权所有,相关网站或媒体若要转载须经七禾网同意0571-88212938,并注明出处。若本网站相关内容涉及到其他媒体或公司的版权,请联系0571-88212938,我们将及时调整或删除。

联系我们

七禾研究中心负责人:刘健伟/翁建平
电话:0571-88212938
Email:57124514@qq.com

七禾科技中心负责人:李贺/相升澳
电话:15068166275
Email:1573338006@qq.com

七禾产业中心负责人:果圆/王婷
电话:18258198313

七禾研究员:唐正璐/李烨
电话:0571-88212938
Email:7hcn@163.com

七禾财富管理中心
电话:13732204374(微信同号)
电话:18657157586(微信同号)

七禾网

沈良宏观

七禾调研

价值投资君

七禾网APP安卓&鸿蒙

七禾网APP苹果

七禾网投顾平台

傅海棠自媒体

沈良自媒体

© 七禾网 浙ICP备09012462号-1 浙公网安备 33010802010119号 增值电信业务经营许可证[浙B2-20110481] 广播电视节目制作经营许可证[浙字第05637号]

认证联盟

技术支持 本网法律顾问 曲峰律师 余枫梧律师 广告合作 关于我们 郑重声明 业务公告

中期协“期媒投教联盟”成员 、 中期协“金融科技委员会”委员单位