商品期货短线量化交易策略

1、R-Breaker 策略

作为一个经典的日内短线交易量化策略,R-Breaker策略一般使用1分钟、5分钟和10分钟的交易数据。具体来看,该策略根据上一交易日的收盘价、最低价、最高价,加上3个由量化投资机构自己确定的模型参数,计算出6个价位,从大到小分别为:突破买入价、观察卖出价、反转卖出价、反转买入价、观察买入价、突破卖出价。具体的交易规则如下:

a、若日内最高价超过观察卖出价后,又下跌跌破反转卖出价,则采取反转策略,平仓多单并开仓做空;若日内最低价超过观察买入价后,又上涨突破反转买入价,则采取反转策略,平仓空单并开仓做多。

b、若空仓,当价格上涨超过突破买入价时,采取趋势策略开仓做多;反之,当最新价格下跌超过突破卖出价时,则开仓做空。

总体来看,R-Breaker策略选定的6个价位,可以认为是经典技术分析中所采用的“阻力位”和“支撑位”。根据这6个价位进行相应的开平仓,既可以追踪趋势,又可以判断反转。而3个模型参数则可以改变6个触发价位之间的距离,优化模型效果。

2、Dual-Thrust 策略

传统的开盘区间突破策略,是指通过在开盘区间的上下加减预定的数值范围进行交易。而Dual-Thrust策略实际上则是对传统开盘区间突破策略的一个改进。两个策略均是对当日开盘价加减某个数值(记为Range),获得一个区间,突破区间上轨做多,突破区间下轨做空。开盘区间突破策略通过前一个交易日的最高价和最低价确定Range的值,而Dual-Thrust策略使用前N日的4个价格:前N日最高价HH、前N日最低价LL、前N日最高收盘价HC、前N日最低收盘价LC,来确定Range的值,并引入更多参数,使得通过Range确定的区间可以是非对称的(见下图)。

在此模型中,Ks与Kx的两个参数值可以阶段性地动态调整。当Ks>Kx时,空头相对容易被触发,反之亦然。

商品期货中长线量化交易策略

商品期货市场中长线量化策略中,比较经常被采用的策略模型,大致包括均线策略、通道突破策略、动量策略和Aberration策略四类。

1、均线策略

均线策略使用两条移动平均线来判断趋势。一般采用的交易规则是,当短周期均线(STMA)超过长周期均线(LTMA)幅度X%时,进行做多;当短周期均线落后长周期均线X%时做空。也即STMA> LTMA *(1+X)时做多,STMA< LTMA *(1-X)时做空。

2、动量策略

与股票市场的量化择股相类似,商品期货的动量策略也认为,期货品种的中长周期上涨或者下跌趋势具有动量效应,能够维持一段时间。在此之中,一个被广泛应用的经典的动量策略模型,就采取如下的量化交易策略。

首先选出3个商品期货品种,然后在过去的L个月内进行涨跌收益率排序,并对排第一的品种开多单,排第三的品种开空单,开仓之后的持仓时间均为1个月。其中L的参数值,可以取1,2,3,6,9,12个月等。

3、长区间突破策略

长区间突破策略采取的交易规则是:当某个月收盘价超过前面L个月的收盘价的最大值时,则做多;低于前面L个月的收盘价的最小值时,则做空。该策略实施之后,有投资者会规定一个持仓时间,例如持仓L个月;另外也有投资者会一直持有到相反的开仓信号出现。区间长度L的取值有多种,常用的取值有3,4,5,6,9,12个月等。

4、Aberration 策略

Aberration策略,选取的角度是根据布林线判断交易方向。布林线指标,是由移动平均线和标准差定义的。在正态分布的假设下,金融标的价格大部分时间会在布林线带内波动。Aberration策略的思想就是,在大部分的震荡时间中等待一个新趋势出现的小概率事件发生。其交易规则为:向上突破上轨做多,向下突破下轨做空,回到中轨时平仓。在海外市场,Aberration 策略中布林线的初始参数,一般设置为MA30±2 个标准差。

从交易特点来看,Aberration策略交易频率并不高,一般每年交易某个品种3-4次,平均每笔交易持仓60个交易日左右,通过长线来获取利润。另一方面,Aberration策略同时交易多个相关性较低的品种,通过分散投资避开大风险。

各类策略的简单优劣对比

根据海外多个商品期货市场的长期历史数据测算,以及海外一些优秀商品期货量化对冲基金的实证研究,短线策略经常有更低的回撤,尤其是在一些极端情况之下(例如 2008-2009 年的金融危机)更能够回避市场短期剧烈波动的风险。而另一方面,中长线策略则容易产生更好的收益。因此,同时使用短线和中长线策略可以同时平衡收益与风险。

在中长线量化交易策略方面,相关实证研究也显示,或许由于长区间突破策略过于简单,均线策略比长区间突破策略和动量策略也更加有效,且更加稳定。具体来看,从1959年到1995年,均线策略与长区间突破策略在各种参数之下都能有很好的收益率表现,而动量策略则略逊一筹。自1996年到2007年,这三个策略的收益率表现都出现了下降,但均线策略与长区间突破策略仍在多个参数组合下有良好表现,而动量策略则差强人意。

此外,一直以来,Aberration交易系统都在美国《Futures Truth Magazine》的交易系统排行榜上名列前茅。这也在很大程度上反映出,Aberration交易系统至少在稳定性方面,获得了专业量化投资者的普遍认可。

筹码量化选股策略的基本思路是,如果主力资金要拉升一只股票,会慢慢收集筹码;如果主力资金要对一只股票派发出货,则会慢慢分派筹码。所以根据备选个股的筹码分布和变动情况进行量化统计,就可以筛选出合适的股票标的。这种量化选股策略,与资金流量化选股也有较大的相似性。

以上观点、结论和建议仅供参考,不构成对任何人的投资建议,建议投资者谨慎判断。投资有风险,选择需谨慎。(股市有风险,入市须谨慎)

来源:华宝证券量化投资俱乐部     QuantPlus

拓展阅读:

1.一个量化策略师的自白(好文强烈推荐)

2.市面上经典的量化交易策略都在这里了!(源码)

3.量化交易领域最重要的10本参考书推荐!

4.期货/股票数据大全查询(历史/实时/Tick/财务等)

5.如何设计量化交易策略?

商品期货市场常见的量化交易策略相关推荐

  1. 常见商品期货量化交易策略

    转 常见商品期货量化交易策略https://blog.csdn.net/myquant/article/details/86136818商品期货套利策略  套利策略一般包括期现套利.跨期套利.跨市场套 ...

  2. 常见的量化交易策略和源码编写过程分享

    今天给大家分享的内容是基于Python编程,实现股票交易接口相关功能开发,如果读者对股票或金融衍生物交易不太了解,又比较感兴趣的话可自行查询相关资料. 接下来笔者会给大家介绍股票交易中的常见几种量化交 ...

  3. 常见的量化交易策略简介

    一.网格策略 网格交易法指以某点为基点,每上涨或下跌一定点数挂一定数量空单或多单,设定盈利目标,但不设止损,当价格朝期望方向进展时获利平仓,并在原点位挂同样的买单或卖单. 把网格交易法运用在期货套利上 ...

  4. 全球商品期货量化交易策略

    商品期货品种繁多,可以通过多品种投资有效降低回撤.商品期货市场与股票市场有着相对较低的相关性,因此经常被作为分散投资.降低风险的良好标的. 海外有相当多的对冲基金同时投资于大宗商品.股票.外汇等市场, ...

  5. python量化外汇交易_用Python实现一个Dual Thrust数字货币量化交易策略

    Dual Thrust交易算法介绍 Dual Thrust交易算法是由Michael Chalek开发的著名量化交易策略.它通常用于期货,外汇和股票市场.Dual Thrust的概念属于典型的突破交易 ...

  6. python 用while输出数字金字塔_用Python实现一个Dual Thrust数字货币量化交易策略

    Dual Thrust交易算法介绍 Dual Thrust交易算法是由Michael Chalek开发的著名量化交易策略.它通常用于期货,外汇和股票市场.Dual Thrust的概念属于典型的突破交易 ...

  7. 中低频量化交易策略研发03_注意事项与应对

    3.1 未来信息的规避 未来函数对于回溯测试的可靠性有负面的影响,因此在实际的策略研发过程当中是需要极力规避的.最直接的办法莫过于将研发完成的量化交易策略放入实际环境中进行模拟交易或者实盘交易,原因在 ...

  8. 那些怪异的量化交易策略

    "腾天":石油的现价低于期货价格,因为石油的存储需要成本.这个成本称为carry cost,它和期货到期后的递送成本(delivery cost)以及预期需求变化加在一起,组成了石 ...

  9. “泰迪杯” 挑战赛 - 基于市场资金流向分析的商品期货量化交易策略(附suibian代码)

    目录 基于市场资金流向分析的 Suibian 期货策略 摘要 1 问题重述 1.1 问题重述 2 符号说明及名字定义 3 问题分析与求解 3.1 资金流向指标的定义 3.2 持仓量.成交量和价格的关系 ...

  10. QUANT[2]:量化交易策略基本框架搭建

    本文是量化交易教程的第二篇 (原文写的比较简单,编程的详解部分面向没有编程基础的人) QUANT[1]:从零开始量化交易 - プロノCodeSteel - CSDN博客 QUANT[2]:量化交易策略 ...

最新文章

  1. squid 安装、配置、优化
  2. Spring的依赖注入和管理Bean
  3. Python 计算机视觉(六)—— OpenCV 进行图像量化与采样
  4. SSM整合时配置文件的编写
  5. 使用OLE方式获取数据库架构信息
  6. Oracle快速备份表数据
  7. 【OpenCV 例程200篇】11. 图像通道的拆分(cv2.split)
  8. 用python批量执行VBA代码
  9. C++,std::shared_future的使用
  10. Mysql之运算的使用
  11. 360加固签名验证_360加固需要签名和密码
  12. bandwidth看内存带宽性能
  13. [微软中国]秋季校园招聘开启了(可内推)
  14. 移位加密字母C语言,替代密码和置换密码地C语言实现
  15. 【产品速递】云和恩墨ZDBM数据库备份一体机
  16. jqgrid 加载mysql数据_利用jqgrid+加mysql的text类型实现简单自定义数据模型
  17. IntelliJ IDEA设置修改字体大小与样式
  18. 生日悖论与Hash函数的攻击
  19. 140版本 boost_怎么分辨阿迪UB3.0和UB4.0,boost各版本有什么区别?
  20. Java实现控制台输出进度条

热门文章

  1. 基于Heka+Flume+Kafka+ELK的日志系统
  2. Enhancement spot 的实现
  3. C# 二维与三维计算多边形面积的方法
  4. SpringBoot格式化日期
  5. timus 1741. Communication Fiend URAL 解题报告 DP+读题
  6. 【教资必过!!!】思想品德课程理论基本知识
  7. 教育知识与能力-第七章 中学德育
  8. win10镜像无法再此计算机上运行,Win10镜像无法安装提示“运行此工具时出现问题”的两种解决方案...
  9. Limelight完成了对雅虎Edgecast的收购,合并后的公司更名为Edgio,成为全球边缘解决方案的领导者
  10. C语言怎么把int类型转为char,c++ 如何把一个int转为char*