2019-10-29 00:30 来源:融100 编辑:融仔
上周,我们给大家详细讲述了量化交易策略的类型。今天,我们将介绍应该要如何开发一套完善的量化交易策略。 作者 “黄金EA量化” ,程序员出身的量化交易者。2015年开始从事量
上周,我们给大家详细讲述了量化交易策略的类型。今天,我们将介绍应该要如何开发一套完善的量化交易策略。
作者“黄金EA量化”,程序员出身的量化交易者。2015年开始从事量化交易,主做黄金外汇、国内商品期货等衍生品的程序化交易。投资逻辑——通过数据挖掘,自下而上,运用数学,物理学和统计学知识建立算法交易系统。此外,他基于算法,程序化研究出ALGOTRADER自动化交易系统。
如何开发一套能够稳定盈利的量化策略?俗话说,耳闻不如眼见,眼见不如实践。如果你具备了基础编程知识,掌握一些编程语言,像JAVA、Python、MQL、TB公式、C++等,熟悉一些投资工具,又特别喜欢钻研,那么完全可以去开发一套交易策略,甚至是做到稳定盈利的策略。
当然,如何开发一套能够稳定盈利的交易策略?这个的确没有那么简单,做到盈利还是可以的,但想要做到长期稳定盈利,就要考验你的研发能力以及对交易本身的认知水平。适合自己的策略才是最好的策略,不妨从这个角度入手,去开发一套适合自己的交易策略。
1、选择一个投资品种
一定要选自己熟悉的投资品种,最好是以前交易过的品种或者感兴趣的品种,愿意花时间去关注品种的行业、品种的过去与现状等,了解这个品种的流动性、交易量和波动率。从各个维度去分析这个品种,然后确定作为开发策略的目标。
2、通过品种去评估并找适合的量化策略
是做日内、短线还是中长线?是做趋势模型还是震荡模型?还要综合考虑策略研发的难易。从自己的角度出发,比如,能承受多少的心理亏损;频繁止损还是浮亏对自己心理的影响,哪个是能够接受多一点。
例如:
趋势类策略,比较容易实现,止损频繁,胜率低,盈亏比大,适合大周期使用;
马丁类网格类策略,适合震荡行情,胜率高,盈亏比小,每一笔盈利小,浮亏会很大,需要计算风险趟口,尽量用在黑天鹅事件少的品种上;
算法交易类策略,需要综合的数学、物理和统计学知识,而且能够灵活使用这些知识用于设计模型,考验独立思考的能力和敏锐的洞察力,还要很强的动手能力。因为几乎没有现成的案例可以让你参考或者模仿。
3、开发模型
选好了品种和交易策略类型,剩下的时间就是投入到设计算法、编写代码和测试,统称为开发阶段。这个阶段,要围绕这几个要素进行:
历史数据
尽量完整的历史数据,至少采集满足三年以上连续的历史数据。
时间周期
做外汇黄金,周期还是选择尽量大,至少30分钟以上的周期才有保障;除非你可以购买到或者采集到的历史数据精确度很高,很少出现跳空的K线数据。作为个人开发者,建议选择大周期开发,就是避免数据的不完整性导致的各种问题。
避免偷价和未来函数,策略高度拟合
构成入场出场信号的依据,应该是已经发生的K线数据进行的指标计算或者算法逻辑运算。简单的说,就是尽量使用上一根K线以前的数据做量化分析,当前K线还在进行中,作为条件就有偷价或者未来函数的可能,这些会严重影响到策略的真实可靠性。
算法的建立,应该基于统计学意义,而不是适配某一段行情做限制性条件,那样就是拟合了。拟合并不会适应未来的行情发展。
合理的盈亏比、胜率和夏普率
如果你开发出来一套策略,经测试发现胜率很高,盈亏比也很大,那么肯定是有问题的,就要考虑是不是偷价的模型,需要重复仔细验证。
趋势策略,胜率都小于40%,盈亏比能达到2以上;
马丁类策略,那么胜率就会比较高,至少80%以上,盈亏比通常是1.2-1.5左右;
算法交易,胜率介于两者之间,盈亏比一般超过1.5;夏普率应该维持在2以上,才能确保盈利是稳定的。
另外还要考虑到如何去克服实际交易中的点差、手续费成本问题。最好的办法就是提高盈亏比,减少交易次数。
最大回撤
最大回撤应根据实际情况进行设置,没有一劳永逸的控制办法。
如果编程能力强的,尽可能将回撤条件用程序控制实现,参数化、流程化实现。如果硬要将回撤控制5%或者10%,我估计你的回测效果不会好到哪里,除非回测时长很短。这个就是行情匹配的问题,行情永远在变,因此要学会管理你的策略,运用好它。
历史回测
这个主要看盈亏比,最大回撤和净值曲线来判断,研发的策略是否符合自己的要求,或者是否达到设计目标。一般回测分为周期内、周期外、跨期回测。
周期内回测主要是配合策略的测试调试,用于调试策略的历史数据周期;
周期外回测,是指将测试好的策略单独使用一段新的历史数据进行的回测,看看净值曲线是否一致;
跨周期内外,进行一次整体回测,也是观察回测曲线是否表现一致。如果得到结果相似或者达到设计目标,则说明策略是一个正期望值的交易策略。
不过,真正的表现还得看模拟测试和实盘交易。
4、模拟验证交易
上周,我们给大家详细讲述了量化交易策略的类型。今天,我们将介绍应该要如何开发一套完善的量化交易策略。
作者“黄金EA量化”,程序员出身的量化交易者。2015年开始从事量化交易,主做黄金外汇、国内商品期货等衍生品的程序化交易。投资逻辑——通过数据挖掘,自下而上,运用数学,物理学和统计学知识建立算法交易系统。此外,他基于算法,程序化研究出ALGOTRADER自动化交易系统。
如何开发一套能够稳定盈利的量化策略?俗话说,耳闻不如眼见,眼见不如实践。如果你具备了基础编程知识,掌握一些编程语言,像JAVA、Python、MQL、TB公式、C++等,熟悉一些投资工具,又特别喜欢钻研,那么完全可以去开发一套交易策略,甚至是做到稳定盈利的策略。
当然,如何开发一套能够稳定盈利的交易策略?这个的确没有那么简单,做到盈利还是可以的,但想要做到长期稳定盈利,就要考验你的研发能力以及对交易本身的认知水平。适合自己的策略才是最好的策略,不妨从这个角度入手,去开发一套适合自己的交易策略。
1、选择一个投资品种
一定要选自己熟悉的投资品种,最好是以前交易过的品种或者感兴趣的品种,愿意花时间去关注品种的行业、品种的过去与现状等,了解这个品种的流动性、交易量和波动率。从各个维度去分析这个品种,然后确定作为开发策略的目标。
2、通过品种去评估并找适合的量化策略
是做日内、短线还是中长线?是做趋势模型还是震荡模型?还要综合考虑策略研发的难易。从自己的角度出发,比如,能承受多少的心理亏损;频繁止损还是浮亏对自己心理的影响,哪个是能够接受多一点。
例如:
趋势类策略,比较容易实现,止损频繁,胜率低,盈亏比大,适合大周期使用;
马丁类网格类策略,适合震荡行情,胜率高,盈亏比小,每一笔盈利小,浮亏会很大,需要计算风险趟口,尽量用在黑天鹅事件少的品种上;
算法交易类策略,需要综合的数学、物理和统计学知识,而且能够灵活使用这些知识用于设计模型,考验独立思考的能力和敏锐的洞察力,还要很强的动手能力。因为几乎没有现成的案例可以让你参考或者模仿。
3、开发模型
选好了品种和交易策略类型,剩下的时间就是投入到设计算法、编写代码和测试,统称为开发阶段。这个阶段,要围绕这几个要素进行:
历史数据
尽量完整的历史数据,至少采集满足三年以上连续的历史数据。
时间周期
做外汇黄金,周期还是选择尽量大,至少30分钟以上的周期才有保障;除非你可以购买到或者采集到的历史数据精确度很高,很少出现跳空的K线数据。作为个人开发者,建议选择大周期开发,就是避免数据的不完整性导致的各种问题。
避免偷价和未来函数,策略高度拟合
构成入场出场信号的依据,应该是已经发生的K线数据进行的指标计算或者算法逻辑运算。简单的说,就是尽量使用上一根K线以前的数据做量化分析,当前K线还在进行中,作为条件就有偷价或者未来函数的可能,这些会严重影响到策略的真实可靠性。
算法的建立,应该基于统计学意义,而不是适配某一段行情做限制性条件,那样就是拟合了。拟合并不会适应未来的行情发展。
合理的盈亏比、胜率和夏普率
如果你开发出来一套策略,经测试发现胜率很高,盈亏比也很大,那么肯定是有问题的,就要考虑是不是偷价的模型,需要重复仔细验证。
趋势策略,胜率都小于40%,盈亏比能达到2以上;
马丁类策略,那么胜率就会比较高,至少80%以上,盈亏比通常是1.2-1.5左右;
算法交易,胜率介于两者之间,盈亏比一般超过1.5;夏普率应该维持在2以上,才能确保盈利是稳定的。
另外还要考虑到如何去克服实际交易中的点差、手续费成本问题。最好的办法就是提高盈亏比,减少交易次数。
最大回撤
最大回撤应根据实际情况进行设置,没有一劳永逸的控制办法。
如果编程能力强的,尽可能将回撤条件用程序控制实现,参数化、流程化实现。如果硬要将回撤控制5%或者10%,我估计你的回测效果不会好到哪里,除非回测时长很短。这个就是行情匹配的问题,行情永远在变,因此要学会管理你的策略,运用好它。
历史回测
这个主要看盈亏比,最大回撤和净值曲线来判断,研发的策略是否符合自己的要求,或者是否达到设计目标。一般回测分为周期内、周期外、跨期回测。
周期内回测主要是配合策略的测试调试,用于调试策略的历史数据周期;
周期外回测,是指将测试好的策略单独使用一段新的历史数据进行的回测,看看净值曲线是否一致;
跨周期内外,进行一次整体回测,也是观察回测曲线是否表现一致。如果得到结果相似或者达到设计目标,则说明策略是一个正期望值的交易策略。
不过,真正的表现还得看模拟测试和实盘交易。
4、模拟验证交易
Copyright © 2002-2019 融100_金融理财平台 Inc. All Rights Reserved. 版权所有