商品期货通用模型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 ...
随机推荐
- odoo14 button 事件调用python方法如何传递参数
1 <field name="user_ids" 2 mode="kanban" 3 nolabel="1" 4 options=&q ...
- Nginx api接口调用配置
1 # Nginx api接口调用配置 2 3 # 什么是跨域同源? 4 # 同源策略:协议(http.https.wss--)+域名+端口=一个完整的网站 5 # 跨域:当前所在的网站post(ge ...
- 参考MySQL Internals手册,使用Golang写一个简单解析binlog的程序
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. MySQL作为最流行的开源关系型数据库,有大量的拥趸.其生态已经相当完善,各项特性在圈内都有大量研究.每次新特性发布,都会 ...
- 毕昇编译器优化:Lazy Code Motion
摘要:本文中,我们将介绍通过代码移动(插入)的方式消除冗余计算的一个典型方法. 本文分享自华为云社区<编译器优化那些事儿(3):Lazy Code Motion>,作者:毕昇小助手. 导语 ...
- ChromePortable-Chrome便携化、绿化软件v2.0
ChromePortable-Chrome便携化.绿化软件v2.0-用户手册 By:ybmj@vip.163.com ,http://bbs.kafan.cn/thread-1806385-1-1.h ...
- java基础Synchronized关键字之对象锁
java中Synchronized关键字之对象锁 当有多个线程对一个共享数据进行操作时,需要注意多线程的安全问题. 多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同 ...
- Spring源码 14 IOC refresh方法9
参考源 https://www.bilibili.com/video/BV1tR4y1F75R?spm_id_from=333.337.search-card.all.click https://ww ...
- 五,手写SpringMVC框架,过滤器的使用
8. 过滤器 8.1 编写字符过滤器 CharacterEncodingFilter 复制项目mymvc4,新建项目mymvc5 package com.hy.filter; import java. ...
- Golang基础教程
以下使用goland的IDE演示,包含总计的golang基础功能共20个章节 一.go语言结构: 二.go基础语法: 三.变量 四.常量 五.运算符 六.条件语句 七.循环 八.函数 九.变量作用域 ...
- JavaScript基础回顾知识点记录2
js 使用嵌套for循环输出三角形 for(var i=0; i<5; i++){ //正三角 // for(var j=0; j<i+1; j++){ // document.write ...