商品期货通用模型JF1

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。
行情不确定性加剧
回顾2022年上半年的期货市场行情,在一个个宏观事件的不断冲击下,期货市场的不确定性加剧发生。先有俄乌冲突升级导致的原油及化工产业链暴涨,再有LME镍期货史诗级的逼空,上海疫情封城,以及美联储近30年来最大幅度的加息。在上述事件的影响下,许多品种发生了偏离其产业链基本面的波动。(图资料来源:宗迹期货数据,侵删)

根据潮汛财经基于20.7万个人期货投资者的调研,过去半年仅有19%的期货交易账户盈利,剩下81%的期货账户出现亏损。其中, 48.1%的期货投资者亏损金额在5-10万,30.7%的期货投资者亏损金额在0-5万,亏损10万以上的期货投资者占2.1%,而与此同时,仅有1.3%的期货投资者盈利金额大于10万。
不仅是个人期货投资者,此前表现出色的机构CTA策略也受到了考验。 6月20日,文华商品指数单日大跌2.58%。 商品市场的突然暴跌,导致今年业绩出色的CTA策略近期纷纷出现较大回撤,不少CTA产品净值回撤达到5%,有机构更是预测这周大量CTA策略净值或将亏损,“一把将今年的盈利全亏光”。
如何寻找确定性
在这样外围环境高度不确定,市场情绪大幅动荡的行情下,交易策略的确定性就成了重中之重的事情。交易策略的确定性可以体现在两方面:
一 全时间段的普适性:策略测试时间尽可能长,并且在过去数年经历的各种事件、行情的冲击下,依然有稳定的表现。
二 全品种的普适性:策略测试所有商品期货品种,如果策略能适应尽可能多的品种,也能说明其在不同环境下的鲁棒性。
一起来看我们的JF1策略在全品种(64个品种),2015年到最新的组合绩效。这是在没有筛选任何品种、没有进行任何策略择时的前提下,测试得到的结果。(注:测试采用1倍杠杆,手续费采用交易所标准手续费,再加2跳双向滑点)
我们再将全部商品期货中交易极不活跃的品种(例如JR、WH、BB、FB等)去掉,剩下55个品种,同样的测试时间、测试手续费再次进行测试。



可以看到,在去掉最不活跃的十几个无效交易品种后,策略组合绩效依然稳定,在1倍杠杆条件下年化收益率19.24%,最大回撤率3.65,夏普比率1.6081。策略经过了很长时间(7年半)各种行情的检验,并且经过了47个有交易价值的几乎是商品期货全品种的普适性检验。
更难得的是,在主流CTA基金大幅回撤的2022年6月,策略大幅盈利,并创下新高。
策略逻辑
策略分类:中线趋势
交易周期:30min K线
持仓周期:2-7个交易日
交易品种:主流的55个商品期货品种
核心绩效:年化收益率16.71%,最大回撤率5.64%,夏普比率1.548(1倍杠杆测试,交易所标准手续费+2滑点)
进场逻辑:多组进场逻辑搭配,波动率突破 + 多指标共振确认
出场逻辑:多组出场逻辑搭配,止损 + 分级跟踪止盈 + 特定指标离场
典型信号:

交易平台:TBQuant(提供配套工作区和源码)


往期干货分享推荐阅读
Omega System Trading and Development Club内部分享策略Easylanguage源码
【数量技术宅|量化投资策略系列分享】基于指数移动平均的股指期货交易策略
AMA指标原作者Perry Kaufman 100+套交易策略源码分享
【数量技术宅|金融数据系列分享】套利策略的价差序列计算,恐怕没有你想的那么简单
【数量技术宅|量化投资策略系列分享】成熟交易者期货持仓跟随策略
【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数
商品现货数据不好拿?商品季节性难跟踪?一键解决没烦恼的Python爬虫分享
【数量技术宅|金融数据分析系列分享】如何正确抄底商品期货、大宗商品
商品期货通用模型JF1的更多相关文章
- Unix系统编程()通用模型以外的操作ioctl
之前学习到的都是通用的IO模型,现在要学的是一个ioctl系统调用,ioctl为执行文件和设备提供了一种多用途机制. int ioctl(int fd, int request, - /*argp*/ ...
- .NET应用架构设计—面向对象分析与设计四色原型模式(彩色建模、领域无关模型)(概念版)
阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我 ...
- ISO9126软件质量模型
ISO9126软件质量模型,是评价软件质量的国际标准.6个特性27个子特性组成. ISO/IEC9126软件质量模型是一种评价软件质量的通用模型,包括3个层次: 1.质量特性 2.质量子特性 3.度量 ...
- 浅谈管道模型(Pipeline)
本篇和大家谈谈一种通用的设计与处理模型--Pipeline(管道). Pipeline简单介绍 Pipeline模型最早被使用在Unix操作系统中.据称,假设说Unix是计算机文明中最伟大的发明,那么 ...
- 联系InfoSphere Streams和OpenMI时对水利模型联系的设计模式的一些考虑
从<时序计算通用模型接口 OpenMI开发技术及应用>一书中的第一章的对接口要求描述,我想到InfoSphere streams的流数据处理模式刚好可以满足这种模型/数据之间对接的需求. ...
- .NET应用架构设计—四色原型模式(色彩造型、域无关的模型)(概念版)
阅读文件夹: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来事实上我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙, ...
- ThinkPHP中的Model模型
一 实例化模型对象 ①实例化通用模型 例:$goods_model = new \Model\GoodsModel(); $goods_Model = D('Goods'); ②实例化基例模型 ...
- ITU-T Technical Paper: IP服务性能模型
本文翻译自ITU-T的Technical Paper:<How to increase QoS/QoE of IP-based platform(s) to regionally agreed ...
- 【Keras篇】---Keras初始,两种模型构造方法,利用keras实现手写数字体识别
一.前述 Keras 适合快速体验 ,keras的设计是把大量内部运算都隐藏了,用户始终可以用theano或tensorflow的语句来写扩展功能并和keras结合使用. 二.安装 Pip insta ...
随机推荐
- SpringBoot连接MySQL配置(yml)?
SpringBoot连接MySQL 需要导入的依赖 <!--这是直接在创建springboot项目时直接勾选生成的--><!--jdbc--><dependency> ...
- k8s暴露集群内和集群外服务的方法
集群内服务 一般 pod 都是根据 service 资源来进行集群内的暴露,因为 k8s 在 pod 启动前就已经给调度节点上的 pod 分配好 ip 地址了,因此我们并不能提前知道提供服务的 pod ...
- Python带我起飞——入门、进阶、商业实战_ 入门版电子书籍分享,
Python带我起飞--入门.进阶.商业实战_ 免费下载地址 内容简介 · · · · · · <Python带我起飞--入门.进阶.商业实战>针对Python 3.5 以上版本,采用&q ...
- Java集合容器的深度理解
Java容器里有很多写好的容器API,这使我们很方便的可以存储.操作我们的数据. 下面是我写的容器的特点,一些容器的不同之处,从底层源码解析一下容器实现原理 一.常用的容器目录 上图可以看出,java ...
- PerfView专题 (第三篇):如何寻找 C# 中的 VirtualAlloc 内存泄漏
一:背景 上一篇我们聊到了如何用 PerfView 去侦察 NTHeap 的内存泄漏,这种内存泄漏往往是用 C 的 malloc 或者 C++ 的 new 分配而不释放所造成的,这一篇我们来聊一下由 ...
- Linux —用户和组
Linux 用户和组 1.用户和组的概念 用户的作用: Authentication:认证 Authorization:授权 Accouting:审计 用户存在的最终目的: 为了实现资源的分派 组的作 ...
- RabbitMQ 入门系列:2、基础含义理解:链接、通道、队列、交换机
系列目录 RabbitMQ 入门系列:1.MQ的应用场景的选择与RabbitMQ安装. RabbitMQ 入门系列:2.基础含义:链接.通道.队列.交换机. RabbitMQ 入门系列:3.基础含义: ...
- 【JDBC】学习路径9-dbcp数据源的使用
第一章:下载 要下载三个东西:commons pool.commons log.dbcp dbcp中有些东西是依赖于commons pool 和 commons log 的. 缺一不可,否则无法正确运 ...
- Qt QBarSeries简易柱状图教程
博客园最强Qt QBarSeries简易柱状图教程 前情提要 每个人的绘图需求不同,此篇教程也是根据需求来改的.我的需求大概如下所示. 通过信号槽的方式接收signals来刷新柱状图,所以每次触发信号 ...
- NetCore性能优化
NetCore性能优化2.非跟踪查询在只读方案中使用结果时,非跟踪查询十分有用,可以更快速地执行.增加AsNoTracking()表示非跟踪,如:var users = context.User.As ...