如何编写一个短线交易策略(收藏)
量化策略开发,高质量社群,交易思路分享等相关内容
『正文』
ˇ
策略编号:专享策略01_V3
大家好,这是专享01策略的最后一次迭代V3版本,今年剩下的时间我们重点放在专享03策略的开发上。
言归正传,我们在编写策略时经常会遇到一个问题。就是出场参数该如何调整,松鼠之前发布过很多关于出场模块,都各有特点。详情可以翻阅策略帖子。
SF系列策略库>>https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MjM5MzE5NzUxNw==&scene=1&album_id=1412239224614748161&count=3#wechat_redirect
算法系列策略库>>https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MjM5MzE5NzUxNw==&scene=1&album_id=1516151103736889348&count=3#wechat_redirect
通常,出场模块是有1-2个参数控制,TR是控制整体的出场幅度,X是加速系数用于收敛出场线。如下图:
蓝色线随着时间逐步向K线收敛以做到快速出场,目的是当行情出现回撤时及时出场,保住更多的利润。X起到了调节TR的作用,但是比较有限。任何一个参数都不能适应所有行情,移动出场承担了止损和止盈的作用。
如果TR设定的宽一点出场会变的迟钝,回吐更多的利润承担更多的亏损。
如果TR设定的窄一点出场会变的敏感,频繁出场难以让利润奔跑,整体绩效会差一些。
这么看的话,宽和窄是一个两难的问题,难以解决。我提供一个思路供大家参考。如下图:
OK,有人可能会问,这算什么新的思路。不就是止损+止盈的模式吗?是,整个CTA策略就没有新玩意儿,所有的交易策略不都是开仓平仓吗?请大佬接的往下看。
以前的万金油出场即是止盈也是止损,第二代出场模块严格区分了止盈和止损模块。同时增加了波动率调节+反向收敛这俩个核心内容,一共4个模块。
问:4个模块构建出场是不是增加了很多参数?
答:No,No,No~也考虑了参数数量问题,我一向的宗旨能少用优化参数就尽量少用,仅仅增加了一个参数用于计算初始止损,这个甚至可以用原TR参数代替,总之参数不是重点,留下参数空间供各位自己迭代和优化。
移动止盈--波动率调节
我们在去年的时候出过一个策略:算法策略 | 波动率调节器提高CTA策略盈利能力 主要描述了波动率的变化,大致分为4个区域如下图:
波动率模块是普适性较好的指标,用在非常多的商品上都呈现了相同的规律。我们计算了20多个品种波动率变化,百分位数,标准差,中位数都大相径庭,这样有一个好处是我们不需要优化这个指标,不同品种直接拿来用就行了,如下图:
OK,以前的波动率模块使用方法这样的:
这样的使用其实就是逐bar收敛的作用,类似于X参数。但是第二代动态出场模块决定使用区域划分的方式来解决自适应问题,属于应对模型的思路。如下图:
附图的红柱子就是出场TR参数的变化,使用波动率模块划分出不同的波动率区域,不同区域对应不同的TR参数,这一过程是自适应过程没有需要优化的参数,关于是哪些区域,回上面看波动率变化图。这个模块与X收敛参数不冲突,你可以先划分区域然后搭配收敛系数调节出场。
止损模块--反向收敛
OK,说到止损,大部分都是想到固定止损。但是固定止损有一个致命的问题,不是过宽就过窄契合到模型里行情适应性较弱。因此我们使用反向收敛的思路来构建一个可移动的止损。
什么是反向收敛?如下图:
大概思路是这样,开仓之后给一个初始止损,当价格朝你开仓相反的方向运动时,止损开始收敛,即为反向收敛。
问:为什么不正向收敛?
答:价格朝有利于你的方向运动时,是止盈模块的管理范围,止损不用操心。
止损模块主要解决的痛点是开仓进去价格就朝反方向走,说明你进的位置不太好,这个时候我们尽量缩小我们的亏损,所以要反向收敛止损。这个模块我们设置最多收敛到保本价格,不会无限收敛。效果如下图:
讲解:
第二代动态出场模块将移动止盈和止损分开,这样我们就不用纠结一个移动出场模块面对过宽的参数出场迟钝,承担过大的利润回吐和亏损。过窄的参数又会频繁止损,趋势性差。第二代动态出场模块可以让止盈处理止盈的问题,止损处理止损的问题,释放各自的优势。更多的内容我会在俱乐部直播里讲解代码和思路细节。
“凯撒的归凯撒,上帝的归上帝。”
绩效报告
rb
ap
eb
eg
i
p
j
sa
pp
lh
本策略仅作学习交流使用,实盘交易盈亏投资者个人负责。
你要的干货都在这里→关注V V“松鼠宽客”
松鼠宽客:研究04丨波动率与CTA盈利关键https://blog.csdn.net/m0_56236921/article/details/126655526?spm=1001.2014.3001.5502
松鼠宽客:Pro08丨累计概率密度突破策略https://blog.csdn.net/m0_56236921/article/details/126637398?spm=1001.2014.3001.5502松鼠宽客:KD01策略丨SuperTrend+空头波段https://blog.csdn.net/m0_56236921/article/details/126504676?spm=1001.2014.3001.5502
松鼠宽客:加降息与BTC流动性事件策略研究https://blog.csdn.net/m0_56236921/article/details/126136104?spm=1001.2014.3001.5502
松鼠宽客:Pro_06丨重心拐点与高低波出场https://blog.csdn.net/m0_56236921/article/details/126704447?spm=1001.2014.3001.5502
松鼠宽客:基于订单流工具,我们能看到什么?https://blog.csdn.net/m0_56236921/article/details/125478268?spm=1001.2014.3001.5502
松鼠宽客:LM11丨重构K线构建择时交易策略https://blog.csdn.net/m0_56236921/article/details/125632587?spm=1001.2014.3001.5502
松鼠宽客:Pro02丨加强版超级趋势线加减仓策略迭代https://blog.csdn.net/m0_56236921/article/details/124855932?spm=1001.2014.3001.5502
如何编写一个短线交易策略(收藏)相关推荐
- 2020-12-24 如何编写一个简单的双均线策略
如何编写一个简单的双均线策略 目的:编写一个无需写入函数.类的简单策略,对比文字与代码表达的区别,了解编写逻辑与原理 策略类型:双均线策略 策略原理: 双均线策略,指的是运用两条不同周期的移动平均线, ...
- 用C++编写一个个性化的屏保程序,零基础小白可收藏学习!
C++编写一个个性化的屏保程序,这个屏幕保护程序模仿自一个著名杀毒软件中的待机画面,图标动态变化的屏保程序,进入屏保状态后,程序自动获取一些windows中所安装程序的ICO图标,随机显示一些图标,并 ...
- python 正则的使用 —— 编写一个简易的计算器
python 正则的使用 -- 编写一个简易的计算器 在 Alex 的博客上看到的对正则这一章节作业是编写一个计算器,要求能计算出下面的算式. 1 - 2 * ( (60-30 +(-40/5) * ...
- 3、编写一个prod()函数,可以接受一个list并利用reduce()求积
3.编写一个prod()函数,可以接受一个list并利用reduce()求积 # -*- coding: utf-8 -*-from functools import reducedef prod(L ...
- 软件测试测试用例编写_不要先编写所有软件测试-只需编写一个
软件测试测试用例编写 Test Driven Development (TDD) is sometimes described as "writing tests first". ...
- 用C#编写一个进程外的COM组件示例代码讲解
代码的链接在<用C#编写一个进程外的COM组件>,小技巧:如果你要同时看示例代码和讲解的话,可以用浏览器分别打开示例代码和这篇文章,然后使用Windows提供的纵向平铺窗口功能就可同时看两 ...
- 编写一个程序,从10亿个数字的数组中找出100个最大的数字
本文翻译自:Write a program to find 100 largest numbers out of an array of 1 billion numbers I recently at ...
- python编程案例教程-quot;怎样编写一个教学案例quot;python编程案例教程电子教案...
怎样编写一个教学案例 1.什么是教学案例 (案是论) 教育教学案例是含有解决某些疑难问题,某些原方法.策略运用的教育教学情境故事的描述,故事中渗透课程改革的思想和理念,展现在教育教学理论.方法指导下解 ...
- 如何用FFmpeg编写一个简单播放器详细步骤介绍
如何用FFmpeg编写一个简单播放器详细步骤介绍(转载) FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具.FFMPEG几乎为你把所有的繁重工作都做了,比如解码.编码.复用和解复用. ...
- 简化ETL工作,编写一个Canal胶水层
前提 ❝ 这是一篇憋了很久的文章,一直想写,却又一直忘记了写.整篇文章可能会有点流水账,相对详细地介绍怎么写一个小型的"框架".这个精悍的胶水层已经在生产环境服役超过半年,这里尝试 ...
最新文章
- Android在xml中定义Shape
- 修改sh文件_修改Android分区大小
- 光盘显示容量但读不出文件_软网推荐:文件夹容量属性增强显示
- leetcode 239. Sliding Window Maximum | 239. 滑动窗口最大值(单调栈,窗口内最大最小值更新结构)
- 使用Hibernate和Spring构建Java Web应用程序
- Random Forest算法中的参数详解
- mysql5.7配置用户名密码_MySQL57安装图解
- 20190903:(leetcode习题)颠倒二进制位
- pr用什么显卡比较好_用视频剪辑软件pr,电脑要什么配置最好
- TensorFlow调整超参数步骤
- 视频行业创业投资与趋势报告
- 生活中图像处理的一个小应用
- LeetCode 61-70题 这是动态规划合集啊?受宠若惊
- 每周教育关注 | 紧箍咒?《研究生导师指导行为准则》发布
- 带你了解一下蛋白质化学修饰技术!(PEG-β-1,3-GAβ葡聚糖酶/ RNaseA/SAK葡激酶)
- JVM之Metaspace解密
- 关于mybatis的报错 attempted to return null from a method with a primitive return type (int)
- JY901串口数据接收与处理(Python)
- 学习前端需要知道的知识
- QC2.0,QC3.0快充解决方案对比 HL6601与FP6601Q实测 PD协议芯片