回测好,为什么实盘不靠谱?
用IT技术玩金融系列文章,将介绍如何使用IT技术,处理金融大数据。在互联网混迹多年,已经熟练掌握一些IT技术。单纯地在互联网做开发,总觉得使劲的方式不对。要想靠技术养活自己,就要把技术变现。通过“跨界”可以寻找新的机会,创造技术的壁垒。
金融是离钱最近的市场,也是变现的好渠道!今天就开始踏上“用IT技术玩金融”之旅!
关于作者:
- 张丹(Conan), 程序员R,Nodejs,Java
- weibo:@Conan_Z
- blog: http://blog.fens.me
- email: bsspirit@gmail.com
转载请注明出处:
http://blog.fens.me/finance-backtest
前言
经常看到做量化的朋友,晒出各种漂亮的回测曲线,准备一夜发家,但开始真金白银地去交易时,就会亏得一塌糊涂。
回测好,为什么实盘不靠谱?这里其实有很多的坑,不用钱买点教训,你是不会明白的。有经验的量化交易员,都是用钱磨炼出来。把你的回测慢慢贴近实盘,让回测结果越来越可靠。
本文为量子金服约稿文章。
目录
- 实例复盘
- 问题在哪?
- 量化理论和模型
1. 实例复盘
回测好,真的是因为策略好吗?
我们举个例子,你可能用到某个回测工具或平台,顺手复制了一个demo的代码,一点运行,就能跑出10%的收益率。接下来,你花了一个晚上彻夜研究,把参数用机器学习的方法来优化,黎明时,终于把收益率提高到了40%。虽然一夜没睡,但心里却是无限地兴奋,觉得多年所学的IT技术终于可以实现赚钱的理想了,金融市场不过如此。明天就先把1个月工资赚出来,下个月就辞职,再也不用看S*领导的脸色,真是浪费生命了。
有过上面经历的同学,我想不在少数吧。第二天,就把打工2年多辛辛苦苦攒到的10万块投到了股市中。谁想股市风云变幻,不仅市场不仅没按照模型的方向走,而且又赶上严监管、去杠杆、大股东减持等等一系列的样本外事件发生,2个月后不仅没有赚到当初设想的钱,甚至亏损到了20%,感情上已经受不了,拒绝了之前定下的止损的规则,又经历了几周的连续下跌,最后亏损到达50%。
每天心都在滴血,连续3个月都是吃不好、睡不好,最后一咬牙全部割肉了。开始全盘怀疑自己,自信心被打击到了负值,封账号,再也不碰股市了。
2. 问题在哪?
那么,为什么回测好的策略实盘就不这么不靠谱呢?可能有以下几点原因。
2.1 算错了
当你的回测出现有显著的盈利时,最大的可能是你算错了。比如,在计算时写错了正负号、不应该用年化的时候用了年化的值,没有严格区别复权数据与非复权数据的区别、交易的周期没对齐、无风险收益率取值过小、四舍五入时保留位数过少、使用向理计算时出现的问题、NA值没有处理、使用了来自互联网的未经验证的数据等等。
总之各种的细节,都会让你的回测出错,而且如果你不理解每个指标的金融含义,你甚至都不知道自己错了。
2.2 未来函数
如果每个计算细节你都了解了,回测结果依然非常好,还是先别激动,检查一下是不是用到未来的函数。
使用到未来函数也是很常见的一个问题,而且通常都是不知不觉的。比如,我们会经常听到股评分析师说:“在牛市开始时建仓买入,在到达最高点时卖出”,这其实就是用到了未来函数。在实际的交易过程中,我怎么会知道,什么时候是牛市的开始,又怎么会知道最高点是3600点还是5700点?如果我真的知道了,我还做什么量化交易,早就环游世界去了。
我们很多时候会都用已经知道的市场信息做回测,但实际交易时,你并不知道市场是什么样子的,会向什么方向变。比如,我们现在来看2017年上半年招商银行涨的很好,那么我就针对银行股开始做回测,而且给招商银行加大权重。在一切数据都算对的情况下,回测的资金曲线相当的漂亮,半年获得了30%以上的收益率,而且最大回撤控制在3%以内,夏普、詹森Alpha也都很不错,这些指标都表示了我的主动管理能力很强,我是个牛逼的基金经理。
真的是这样吗?你在不经意用到了未来函数,才使得你发现了招商银行,然后再对银行股做了回测,获得了较好的资金曲线。所以,这不是能力,也不是运气,是犯规了。
2.3 过拟合
从IT程序员转到金融的量化分析师们,在很多情况下都会用纯IT的方法,来解决金融建模的问题。比如,做了5年推荐系统的推荐算法专家,非常擅长用机器学习的方法,来找到数据之间的关系。于是就以纯数据的方式来切入,脱离金融的投资学理论,导致了数据的过度使用。通过历史数据试图预测未来,而且找到一条完美的投资曲线,穿过所有的样本点,最后将导致过拟合。
从IT转行到金融的朋友,通常有个特点,就是动手能力强,数据来就先丢到模型里,才不管到结果底能不能解释,反正我的回测曲线很漂亮。特别是深度学习,增强学习等方法的崛起,让程序员群体一下子高大上起来,通过一种算法,升维升维再升维,就能通吃所有的单一分类算法模型。这样的结果就是过拟合。回测曲线必然是非常漂亮的,但到实际环境一运行,就只能用惨不忍睹来形容了。
2.4 策略周期
从投资的角度,每种策略都有自己适应的场景。在合适的场景下,选到了适合的资产,那么你的策略会表现的非常棒。但是实际的金融市场是轮动的,资产配置随大的金融周期轮动,股票市场随着行业板块轮动。有可能你在回测的时候选对了风口,赶上了趋势,而实盘时候错过风口或者选错了金融资产,那么就会事与愿违了。
比如,你的策略就是研究债券的,从2016上半年到2017年上半年,选出了鹏华全球高收益债(000290)这支QDII基金,比国内的大部分债基表现都抢眼,走势非常稳定,持续上升,你坚定的买进加仓。但是不凑巧的是,你刚买入完,人民币就进入到了升值的区间,虽然债券本身是很稳定的,但人民币持续走强,由于汇率的影响让这支债基天天亏钱。如果你又懂债券又懂外汇,这个点没想到是能力问题。如果你完全不懂外汇,单从债券的角度考虑,那么就不是能力问题,也不是模型不行,而是运气太差,没把握到轮动的周期。
2.5 真实交易环境
真实的交易,是会被各种情况所影响的。当你的交易量过大时,你会影响市场,这时你的交易就会发生偏离,实际市场交易的冲击成本会比你回测时看到的成交量大得多,而且冲击成本又是很难被模拟和计算的。
当你购买流动性不好的金融产品时,模型的信号出来了,但是实际你却买不到,或者卖不出去,当你被迫用对手价来成交时,就会有比较大的滑点。滑点对于高频交易来说是致命的,对于长周期的趋势交易策略,倒是影响不大。
手续费也是一个不容小觑的因素,2017年7月开始黑色系商品期货被猛炒,焦炭、焦煤的平今手续费上调至3倍,铁矿石平今手续费上调到2倍。这种政策性的调整,在研发模型时是不可预知的,平今手续费的上调,直接就拍死了日内模型。2015年调整的股指期货的40倍手续费,几乎把所有的投机的模型都干掉了。
股票市场也很多真实交易环境的特殊性,比如2016年初开始试行的熔断机制,一共4天,发生了多次恐慌性的挤兑,上证指数下跌488.87点,相比4天前收盘点位下跌了13.8%,A股蒸发市值逾6万亿。
当然,也有一些真实交易环境中的乌龙指,有时会我们带来一些额外的惊喜。
真实交易环境是复杂的,也是很难在回测环境中模拟的,所以要深刻了解金融市场、了解市场运作的原理,你才能规避真实交易环境与回测环境中的差异点。
2.6 人工干预
还有一种情况,就是人工干预。当你建好一个模型,应用到实盘的时候,你要充分地相信你的模型,并且严格的执行。每当遇到回撤的时候,你依然要相信你的模型,坚持模型的策略。
如果你心理抗不住,开始干预时,也会造成回测与实盘的偏差。这个时候,就很难判断是模型不靠谱,还是人不靠谱了。每当我在干预实盘模型的时候,调来调去,觉得及时止盈止损了,实际上是在破坏自己的规则,更加影响了策略的稳定性。
当然,可能还有更多的原因,让回测到实盘有很大的差距。我们需要认真地思考,把每个细节都去实践,慢慢地才能让你的回测越来越接近实盘的效果。
3. 量化理论和模型
从专业角度来讲,投资就是要找到市场的规律,而规律的本质是符合金融市场的简单逻辑。赚钱的模型,通常都是很巧妙的把规律进行量化。
任何模型或者理论,第一步都是提出假设,定义应用场景,解决什么问题。
- 趋势追踪模型,是用移动平均来反应金融产品发展趋势的规律,请参考文章二条均线打天下。
- 均值回归模型,是价格偏离均衡价格水平一定程度后向均衡价格靠拢的规律,请参考文章 均值回归,逆市中的投资机会 。
- 追涨杀跌模型,是一定时期内强势资产能够延续上涨的规律,请参考文章 R语言构建追涨杀跌量化交易模型。
- 配对交易模型,是两个具有均衡关系的金融产品,价格走势出现背离的规律,请参考文章 R语言构建配对交易量化模型。
如果我们能够做出正确的假设,当然是可以赚到钱的,能够赚大钱还是赚小钱,就是运气了。
《海龟交易法》流行了很多年,至今仍然被广大的交易员所使用,书中所讲述是就是金融市场的规律。假设条件越简单,回测可能越靠谱,会越贴近实盘。
转载请注明出处:
http://blog.fens.me/finance-backtest
This entry was posted in 金融
回测好,为什么实盘不靠谱?相关推荐
- 从回测到实盘系列(2):如何让回测更贴近实盘结果
原 从回测到实盘系列(2):如何让回测更贴近实盘结果 来源:掘金量化myquant.cn ,作者:胡琛,转载请注明出处! 前言: 在上一篇中,我们解读了三个不同技术指标,并千辛万苦,通过对技术指标的涵 ...
- Quant工具箱:量化开发之事件驱动回测框架与实盘交易系统
所以这一章,我们将分别聊一遍 事件驱动回测框架 和 实盘交易系统 的架构与实现细节.这篇开始就逐渐有工程味道了,小伙伴们准备好哦. 一.事件驱动回测 承接着向量化回测,这一篇我们先说事件驱动回测模块. ...
- 量化交易:如何让回测更贴近实盘结果
前言 在上一篇中,我们解读了三个不同技术指标,并千辛万苦,通过对技术指标的涵义解读,对不同技术指标进行结合,为了能够尽量去避免系统风险,我们甚至加入了大盘指数的判断,最后才勉勉强强有一个在回测区间内能 ...
- 数字货币中短线策略(数据+回测+实盘)
数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学,点击下方链接报名: 量化投资速成营(入门课程) Python股票量化投资 Python期货量化投资 Python数 ...
- 【答读者问17】回测之后什么样的策略可以进行实盘交易?
云子量化免费阅读传送链接 本文是免费文章,可以在本文中阅读. 在以前的文章<回测有什么用?>与<量化投资中回测的12种坑,你掉进去了吗?>当中,主要分享了回测的巨大作用以及回测 ...
- 开源分布式量化交易系统——回测系统(一)
回测系统 基础概念 在开始编写策略系统之前,需要了解一些基础概念,搞明白什么是回测系统?怎么进行回测?如何进行回测分析?并且在回测中需要注意的一些要素,真正的做到有效的策略回测. 根据回测的精度可分为 ...
- 海龟策略深入研究-策略回测系列-2:原版海龟策略(上)
海龟策略7大要素 原版海龟策略出现在<海龟交易法则>最后章节的附录中,有兴趣的朋友可以详细看看,在这里我们概况一下海龟策略的7大要素,如图所示. (由于内容有点多,故拆分成上下两部分,这里 ...
- 中性策略、回测结果对比、OK实盘报错“Close order size exceeds your available size”、OK开通新账户注意事项
1. 中性策略中解决utils下diff函数的调用问题:具体看factors各因子的import 2.回测simple_boll策略不同时期参数,想对不同时期的相同参数回报率进行计算,解决方案:1.先 ...
- 恒生LIGHT云金融交易测试平台,支持股票、融资融券、股票期权、基金、期货等多市场,提供免费的实盘行情和便捷的API接入,满足多金融业务品种的高仿真实训环境,进行策略实盘回测!
金融交易测试平台,是恒生LIGHT云为开发者提供的一套支持股票.融资融券.股票期权.基金.期货等多市场,多金融业务品种的高仿真实训环境. 开发者通过开放的接口接入金融交易测试平台,一方面可以验证自身产 ...
最新文章
- MySIAM与Innodb引擎
- 想起linux关机命令
- 3.1.3 训练/开发/测试集的问题以及注意事项
- Navicat数据库错误2003 Can not connect to Mysql Server on以及Windows无法启动mysql 错误1069
- [TypeScript] vs code TSLint常见错误解决方案
- linux查看网卡的驱动命令行,linux查看网卡驱动模块信息
- linux终端<Terminal>使用ping
- Java set的区别_Java Set集合详解及Set与List的区别
- PyTorch 之 Checkpoint 机制解析
- 微信小程序+.NET(十八) ffmpeg音频转码/拼接/混合
- (SQL)使用Excel连接数据库
- 又发现几个有意思的网站
- 计算机网络之TCP最大连接限制
- python selenium 爬虫遇到 由于目标计算机积极拒绝,无法连接
- 8月App Store交友软件下载量TOP10,陌陌、觅伊、soul上榜
- 3dmax给模型添加渐变背景有哪些方法
- html5 全景 源码,krpano 全景图 html5源码
- Linux内核中断系统结构——软中断
- 微信小程序 在tabBar某一项的右上角添加文本(购物车数量)
- MyBatis课堂笔记
热门文章
- layui解决数据表格右侧有空白现象
- JAVA里List集合中的对象根据对象的某个属性值降序或者升序排序java8
- 计算机网络语音传输杂音回音,电脑使用麦克风有杂音的解决方法-电脑自学网...
- 使用XUnit的测试驱动开发过程
- Verilog编程之乘法器的实现
- 关于H5的20道面试题及答案
- 跟我学LabVIEW:什么是全局变量?如何创建及使用全局变量?
- js java 图片上传_spring(java,js,html) 截图上传图片实例详解
- 如何看懂k线图:K线详细分析图解
- Pytorch中的einsum