致力于分享量化策略,培训视频,Python,算法研究等相关内容。

本期策略将以图文的方式讲解如何构建一个“高胜率”“短线”的商品策略,以螺纹钢5分钟为数据样本开发,策略也可以用于其他品种,但是因为品种之间的点价值,波动率,交易成本,活跃程度的不同需要调整参数。这里要特别说明一下,不一定要用统一的参数组来适用于所有品种,这是传统教条的理念,往往负作用大于正作用。

关于参数优化这一块儿:

第一个是交易条件设置的合理性;

第二个是样本数据多样性;

第三个是参数范围的科学性;

第四个是使用平原参数;

以上4点,我们不在这里一一展开,因为本期内容是如何构建一个高胜率的短线策略,如果读者有兴趣探究参数优化的内容,可以在评论区或者公众号后台留言,我们会根据人数多少考虑出一期参数优化的专题贴。

策略结构:

  1. 指标计算部分;

  2. 过滤条件设定;

  3. 开仓条件;

  4. 移动出场及分段止盈;

1.指标计算:

采用昨收,昨高,昨低,今开,并称为菲阿里四价。它由日本期货冠军菲阿里实盘采用的主要突破交易参照系,我们这里只是使用这四个价格,并非完全按照非阿里交易的规则;

图中就是得到的Band_up和Band_dn俩条上下轨线。如果直接用于开平仓,会赔的很惨。

2.过滤条件设定:

有意思的部分来了,我们通过观察发现每一天的区间宽窄程度不一样,通过数据统计我们发现较窄的区间往往意味着震荡,如果这时突破上轨开多,下轨开空就会产生穿头破脚的亏损交易,也就是假突破信号。那么,我们想过滤掉这些信号,就需要定义出哪些是“窄区间”。

图中我们用红色虚线和绿色虚线表示出上一个区间的上下轨道;

过滤原理:新区间宽度<上一个区间的宽度;

代码实现:

√知识点:这里需要注意的是不能直接使用DATE这个系统函数,自从有了夜盘以来,一日BAR线是从作晚的夜盘开始,而不是今早9点开始。所以我们使用用户函数TrueDate来取得完整的数据日期;

计算出新区间的宽度和上一个区间的宽度,分别赋值到变量HL_band和RHL_band里面。我们等等构建开仓条件时要使用;

3.开仓条件:

交易条件非常简单,就是本区间上下轨突破+过滤条件;

√知识点:简单,但是有效。这就是我们前面提到的交易条件的合理性,过多的条件组合效果不一定好,还有可能存在条件过度拟合。

4.移动出场及分段止盈:

移动出场:

lastprice是开仓价格;

HL_band是区间幅度;

N是系数;

√知识点:这里的lastprcie可以使用lowafter和Highafter,或者HL_band拿ATR代替,总之效果就是一个吊灯或者阶梯状的出场线,很简单也很实用。

分段止盈:   

关于这一段的代码,网上有现成的代码模块。是一个简单的功能模块,没有什么特殊的写法,大家可以拿来参考使用。

接下来我们看一下交易信号:

我们看到图中红色框是震荡部分,通过以上代码的编写,实现了比较好的震荡过滤效果;

√知识点:那么是不是百分百过滤呢?当然不是,世界上也不存在这种算法,震荡是行情的一部分,所有的过滤都是相对的。

例如下图:也有过滤不了和交易亏损的部分,或者是判断错误的信号。这也是策略真实性的表现;

√知识点:亏损是交易的一部分,是一种试错成本。只要是在风险可控的前提下,模型长时间产生的是正期望收益,那就OK。

SF10策略绩效:

绩效解读:

首先你要明白这是一个趋势策略,趋势策略的胜率往往是30-50之间,趋势策略的重点是盈亏比,最大回撤,夏普率,胜率。 胜率越高,盈亏比就越低,胜率与盈亏比是成反比的,如果是高频或者震荡策略那就另当别论。

绩效图中的胜率是61%,平均盈亏比是0.94,这是正常现象。如果胜率我们降低到30-50之内,那么对应的平均盈亏比最少也会在2.5以上。交易次数并不频繁,这就对了,这个策略本来就是过滤信号的,如果频繁交易反而是不正常了。

延伸理解:

如果你阅读完上面的内容,你发现这个策略并不复杂,代码也不多。重点在于交易条件设定的合理性,其中涉及的参数都是主观设定,并没有参与海量优化。如果你想试试其他品种,策略是没有任何限制的,关键是你要合理的调整里面的俩个核心参数K系数和N系数,还有就是分段止盈的回撤幅度。

切记任何参数都要有一个主观的合理范围,过大的参数造成交易迟钝,掩盖了真实的权益浮动,即使最终收益很漂亮,但实盘会很难受。过小的参数会造成交易信号频繁,交易成本巨大,实盘会很惨。

重点知识:在交易条件设定合理的前提下进行有限范围内的参数优化,同时要分段采用样本数据进行优化,取得平原参数。可以参考一下【SF08】:经典KD指标另类使用有奇效,股指商品双版本策略;或者可以看一下魔方量化课程里的进阶篇关于参数和绩效解读这一块内容。

结语:

非常希望大家能在评论区发表自己的看法,我们希望您提出的问题有完整的逻辑或者有理有据,我们会根据您的问题作出相应的回复。文明交流我们欢迎和支持,无脑喷子,粗言鄙语,对不起请你取关。

本策略仅作学习交流使用,实盘交易盈亏投资者个人负责。

【SF10】| 如何构建一个胜率超过60%的短线螺纹策略(开发教程)相关推荐

  1. 如何构建一个成功的期权交易系统?

    关注公众号:盈时 随着上证50ETF期权的成功上市,国内投资者对期权衍生品愈加熟悉,乐于尝试用期权进行投资或避险,这从不断攀升的期权成交量可窥见一斑. 然而总体来说,期权对大多数投资者来说,依然是个新 ...

  2. SAP UI5 应用开发教程之三十二 - 如何创建一个自定义 SAP UI5 控件试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  3. SAP UI5 应用开发教程之八十一 - 采用 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  4. linux的系统监视器图片_用Nvidia Jetson Nano 2GB和Python构建一个价值60美元的人脸识别系统...

    作者|Adam Geitgey 编译|Flin 来源|medium 新的Nvidia Jetson Nano 2GB开发板(今天宣布!)是一款单板机,售价59美元,运行带有GPU加速的人工智能软件. ...

  5. linux的系统监视器图片_用Nvidia Jetson Nano 2GB和Python构建一个价值60美元的人脸识别系统 - 人工智能遇见磐创...

    作者|Adam Geitgey 编译|Flin 来源|medium 新的Nvidia Jetson Nano 2GB开发板(今天宣布!)是一款单板机,售价59美元,运行带有GPU加速的人工智能软件. ...

  6. linux的系统监视器图片_用Jetson Nano构建一个价值60美元的人脸识别系统

    新的Nvidia Jetson Nano 2GB开发板(今天宣布!)是一款单板机,售价59美元,运行带有GPU加速的人工智能软件. 到2020年,你可以从一台售价59美元的单板计算机中获得令人惊叹的性 ...

  7. 用Nvidia Jetson Nano 2GB和Python构建一个价值60美元的人脸识别系统

    作者|Adam Geitgey 编译|Flin 来源|medium 新的Nvidia Jetson Nano 2GB开发板(今天宣布!)是一款单板机,售价59美元,运行带有GPU加速的人工智能软件. ...

  8. 构建一个react项目_您想要了解更多有关React的内容吗? 让我们构建一个游戏,然后玩。...

    构建一个react项目 by Samer Buna 通过Samer Buna 您想要了解更多有关React的内容吗? 让我们构建一个游戏,然后玩. (Do you want to learn more ...

  9. 什么?超过60%的开发者都开始从Java 8 升级到 Java 11了?

    随着Java版本命名规则的改革,我们时不时的见到Java又出新版本的消息,DD这边因为长期从事Java方向的开发,所以也一直关注并与大家分享这方面的咨询. 每次说到Java升级,几乎在留言中都会看到这 ...

最新文章

  1. 我的职业规划是什么呢?什么都要写写画画才行
  2. LCD编程_LCD控制器
  3. 再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结
  4. linux Telnet远程登录
  5. php备份和恢复源码,PHP数据库备份还原类
  6. 剪切文件_lammps模拟带缺陷镍板剪切变形(in文件及注释)
  7. SSL/TLS捕包分析
  8. 【JSP开发】有关session的登录注销的一个小例子
  9. iostat命令简单使用
  10. spring boot 注解
  11. 引擎设计跟踪(九.2) 3DS MAX 导出插件 继续
  12. 图表排版设计html,网页的排版(表格篇上)
  13. .bss段和.data段引起的文件大小增加
  14. 最佳国外域名注册商推荐,不需要备案【Namesilo【推荐】、Namecheap、Godaddy】
  15. R语言使用rbind函数向量或者dataframe数据和另外一个dataframe数据纵向合并起来(vertically)
  16. Android开发_ARN是什么
  17. 【架构师面试-JVM原理-3】-JVM垃圾回收
  18. Pytorch深度学习笔记(四)梯度向下算法
  19. 图片批量重命名的2种好方法
  20. 逐行扫描(Progressive scanning),隔行扫描(interlace scanning),场

热门文章

  1. 【java学习】JDK(Java Development Kit)
  2. wav音频文件头解析
  3. Python_FontTools使用
  4. 超简单、超实用的统计方法——因子分析
  5. oracle数据库可连接性检查
  6. win10 docker 容器修改端口映射
  7. 将Sublime Text 设置成中文版
  8. 在next js中添加google analytics功能
  9. 红外视频中的移动目标检测
  10. MYSQL操作+C语言API