商品期货通用模型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 ...
随机推荐
- Vue ref属性 && props配置项
1 // # ref属性: 2 // # 1.用来给元素或者子组件注册引用信息(id的替代者) 3 // # 2.应用在html标签上获取的是真实的DOM元素,应用在组件标签上是组件实例对象(vc) ...
- PLC中增益和偏移
y=kx+b这个直线方程,那么增益就是指k这个斜率,而偏移就是指b. 模拟量转换时一般是不需要设置这两个参数的,只有当外部信号与模块接收的信号在值上有偏差的情况下才会去调整这个参数. 如果的模块信号是 ...
- 有趣的特性:CHECK约束
有趣的特性:CHECK约束 功能说明 在MySQL 8.0.16以前, CREATE TABLE允许从语法层面输入下列CHECK约束,但实际没有效果: CHECK (expr) 在 MySQL 8.0 ...
- PyCharm 2022.2 发布了,支持最新 Python 3.11 和 PyScript 框架!
来源:Jet Brains官网:翻译:Python猫 原文:https://blog.jetbrains.com/pycharm/2022/07/2022-2 通常而言,使用新潮的或者快速发展的技术, ...
- GoogleTest环境配置以及应用
1 GoogleTest源码编译: GoogleTest代码仓库URL: https://github.com/google/googletest.git 下载源代码: git clone --bra ...
- 使用Python批量爬取美女图片
运行截图 实列代码: from bs4 import BeautifulSoup import requests,re,os headers = { 'User-Agent': 'Mozilla/5. ...
- Javascript之异步循环打印这道小题
这道题,我相信很多前端从业者都知道,它本质上来说并不复杂,但是却可以有很深远的扩展,最终核心的主题其实就是异步的遍历,其中对于题目的初级解法,还涉及到一些作用域的知识.那么我们以最容易理解的解法入手, ...
- Sentinel控制台1.8.3修改源码,修改配置后推送到Nacos
目录 1. 接着上一篇 2. 思路 3. 下载Sentinel源码 4. 看Gateway里面读取的配置信息 5. 修改Sentinel控制台源码 6. 熔断规则测试 7. 限流规则测试 8. 打包使 ...
- windows下Inno Setup打包
基于inno setup的windos打包,主要脚本语言inno script.下载地址:https://jrsoftware.org/isdl.php相关打包教程:https://blog.csdn ...
- Java代码自动计算机
答案(这里面包括main方法不要写重了),copy即可使用: public static void main(String[] args) { while (true){ System.out.pri ...