当前位置:网站首页>股票策略02 | 技术择时+行业因子+市值轮动
股票策略02 | 技术择时+行业因子+市值轮动
2022-08-01 14:24:00 【松鼠宽客】
量化策略开发,高质量社群,交易思路分享等相关内容
『正文』
ˇ
大家好,这期我们来做一个技术择时的股票交易策略:
SuperTrend
什么是超级趋势指标SuperTrend Indicator?
超级趋势指标SuperTrend Indicator是一个在外汇交易中常用指标,它的设计者是Jason Robinson。它的主要用途是确定价格趋势,和进行趋势追踪。
超级趋势指标SuperTrend Indicator的计算公式:
在做多时:
超级趋势指标SuperTrend =(最高价+最低价)/2 – N*ATR(M)
在作图中,这个值只上移不下移,就是取近期的最高值。
在做空时:
超级趋势指标= (最高价+最低价)/2 + N*ATR(M)
在作图中,这个值只下移不上移,就是取近期的最低值。
在这个指标当中适用了均值(H+L)/2,和ATR真是波动幅度的概念。在设置它的参数时,要考虑两个值,N,M。一个用来计算ATR的倍数,一个用来计算ATR的周期数。例如,周期数可以是10日,倍数可以是3倍,这是这个指标的基本设置。对于不同的交易市场,和交易对象来说,这两个参数是可以优化的。它的计算方法与肯特纳通道Keltner Channels很相似。
超级趋势指标SuperTrend的主要用途:
1, 可以作为决定趋势的过滤器;在上升趋势时,做多;在下降趋势中,做空。
2, 可以作为趋势追踪止损。在做多有盈利时,当收盘价小于这个指标近期最高值时,卖出,这样可以锁定利润,又不会因为止盈而错过大趋势。当然,它的正确适用和它的参数设置有密切关系。
/ This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// LonesomeTheBlue
//@version=4
study("Pivot Point SuperTrend", overlay = true)
prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50)
Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1)
Pd=input(defval = 10, title = "ATR Period", minval=1)
showpivot = input(defval = false, title="Show Pivot Points")
showlabel = input(defval = true, title="Show Buy/Sell Labels")
showcl = input(defval = false, title="Show PP Center Line")
showsr = input(defval = false, title="Show Support/Resistance")
float ph = na
float pl = na
ph := pivothigh(prd, prd)
pl := pivotlow(prd, prd)
plotshape(ph and showpivot, text="H", style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd)
plotshape(pl and showpivot, text="L", style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd)
float center = na
center := center[1]
float lastpp = ph ? ph : pl ? pl : na
if lastpp
if na(center)
center := lastpp
else
center := (center * 2 + lastpp) / 3
Up = center - (Factor * atr(Pd))
Dn = center + (Factor * atr(Pd))
float TUp = na
float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown
linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor , linewidth = 2, title = "PP SuperTrend")
plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na, transp = 0)
bsignal = Trend == 1 and Trend[1] == -1
ssignal = Trend == -1 and Trend[1] == 1
plotshape(bsignal and showlabel ? Trailingsl : na, title="Buy", text="Buy", location = location.absolute, style = shape.labelup, size = size.tiny, color = color.lime, textcolor = color.black, transp = 0)
plotshape(ssignal and showlabel ? Trailingsl : na, title="Sell", text="Sell", location = location.absolute, style = shape.labeldown, size = size.tiny, color = color.red, textcolor = color.white, transp = 0)
float resistance = na
float support = na
support := pl ? pl : support[1]
resistance := ph ? ph : resistance[1]
plot(showsr and support ? support : na, color = showsr and support ? color.lime : na, style = plot.style_circles, offset = -prd)
plot(showsr and resistance ? resistance : na, color = showsr and resistance ? color.red : na, style = plot.style_circles, offset = -prd)
alertcondition(Trend == 1 and Trend[1] == -1, title='Buy Signal', message='Buy Signal')
alertcondition(Trend == -1 and Trend[1] == 1, title='Sell Signal', message='Sell Signal')
alertcondition(change(Trend), title='Trend Changed', message='Trend Changed')
SuperTrend 这个指标大家都不陌生,特别是松鼠宽客基于期货在SF系列里推出了SF14超级趋势线交易策略。我们决定将它转移到股票策略上看看效果如何。
第一步:
现在TBQ里完成算法和标的图形显示,沪深300指数:
OK,指标显示无误,我们切换IF期货,测试一下绩效。这里需要注意,我们需要把保证金比例调整至100%,让其与现货一样。
交易条件:
1.SuperTrend 决定方向(只做多)
2.窄轨通道择时进场
3.万金油出场
什么是窄轨通道?
就是你在近期的K线里计算一定波动幅度然后与日收盘价相结合构建的小通道,注意小通道的参数不能比SuperTrend 的大,否则就不是小通道了,失去了择时的意义,如下图:
小通道的意义是,当你在趋势开始时错过了最佳进场位置,后面还能有机会再次上车。
回测(只做多):
看起来看不错,我们把它移植到股票市场看一下吧。
沪深300股票池:
筛选市值排名前10的股票进行交易,SuperTrend>0同时窄通道择时进场。
似乎不如在TBQ里的好,因为我没有加万金油出场,也就是说没有止盈只有正反手。加上以后回测太慢了,所以这次没加,下期股票策略会完善这个模块。目前来看使用SuperTrend+窄通道择时后,效果还可以接受,加入止盈止损后降低一下回撤。
多行业轮动
首先,我们来看一下掘金默认的行情轮动模型,这个是策略中心的公开策略。测试时间:2014年1月-2022年7月。
默认的行业因子还是不错的,是一个不错的轮动模型。如果我们给它加上技术择时,会不会更好一点。
多行业轮动+SuperTrend
绩效对比:
多行业轮动
多行业轮动+SuperTrend
加入松鼠宽客俱乐部(VIP),获得期货+股票策略源码。
本策略仅作学习交流使用,实盘交易盈亏投资者个人负责。
边栏推荐
- Amperon IPO meeting: annual revenue of 500 million Tongchuang Weiye and China Mobile Innovation are shareholders
- Performance Optimization - Animation Optimization Notes
- 性能测试入门指南
- mysql查询两个字段值相同的记录
- opencv 保存图片imwrite
- 长江欧拉生态创新中心成立,武汉数字经济再添坚实底座
- ABC260 E - At Least One(双指针)
- ABC260 E - At Least One (Dual Pointer)
- openEuler 社区12位开发者荣获年度开源贡献之星
- D - Draw Your Cards(模拟)
猜你喜欢
Koreographer Professional Edition丨一款Unity音游插件教程
1161. 最大层内元素和
微信UI在线聊天源码 聊天系统PHP采用 PHP 编写的聊天软件,简直就是一个完整的迷你版微信
考研大事件!这6件事考研人必须知道!
超全!全国近90所大学考研报录比汇总!
Longkou united chemical registration: through 550 million revenue xiu-mei li control 92.5% stake
Gradle series - Gradle tests, Gradle life cycle, settings.gradle description, Gradle tasks (based on Groovy documentation 4.0.4) day2-3
十九届浙大城院程序设计竞赛 F.Sum of Numerators(数学/找规律)
docker部署mysql并修改其占用内存大小
Qt实战案例(56)——利用QProcess实现应用程序重启功能
随机推荐
win10+Qt5.15.2实现低功耗蓝牙控制
Performance Optimization - Rendering Optimization Notes
十九届浙大城院程序设计竞赛 F.Sum of Numerators(数学/找规律)
微信UI在线聊天源码 聊天系统PHP采用 PHP 编写的聊天软件,简直就是一个完整的迷你版微信
kubernetes之DaemonSet以及滚动更新
Gradle系列——Gradle测试,Gradle生命周期,settings.gradle说明,Gradle任务(基于Groovy文档4.0.4)day2-3
全球都热炸了,谷歌服务器已经崩掉了
qt 通用ui
考研大事件!这6件事考研人必须知道!
stm32l476芯片介绍(nvidia驱动无法找到兼容的图形硬件)
细读《阿里测试之道》
大神们,ODPS用的是MySQL吗?
软件测试之发现和解决bug
什么是混合元编程
【无标题】
openEuler 社区12位开发者荣获年度开源贡献之星
Wovent Bio IPO: Annual revenue of 480 million pension fund is a shareholder
又拿三个大奖?!多力就是要让你吃的更营养更健康
如何使用 Mashup 技术在 SAP Cloud for Customer 页面嵌入自定义 UI
动态模型中嵌入静态模型实践