SF14Re | Supertrend“超级趋势线”指标魔改升级(源码)

松鼠Quant
2025-06-09


图片
量化策略开发,高质量社群,交易思路分享等相关内容

工具推荐

· 参数筛选工具

·Ai帮你编写策略

· 订单流图表

· 加入2025俱乐部

· Ai投研助手课程


『正文』

ˇ

简文:   

什么是超级趋势指标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=4study("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 = nafloat pl = naph := 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 = nacenter := center[1]float lastpp = ph ? ph : pl ? pl : naif lastpp    if na(center)        center := lastppelse        center := (center * 2 + lastpp) / 3Up = center - (Factor * atr(Pd))Dn = center + (Factor * atr(Pd))float TUp = nafloat TDown = naTrend = 0TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : UpTDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : DnTrend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)Trailingsl = Trend == 1 ? TUp : TDownlinecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : naplot(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] == -1ssignal = Trend == -1 and Trend[1] == 1plotshape(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 = nafloat support = nasupport := 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')

信号图:


图片
图片


        SF14策略将国外的supertrend转编译到国内平台,ST指标对趋势有很好的跟踪效果,在此基础上对它进行了进行了优化升级,使其更加适应国内商品的变化特征,经过优化升级的supertrend效果极佳。


  1. 智能通道调整:基于ATR指标动态调整交易通道宽度

  2. 超级趋势确认:结合趋势方向判断提高信号质量

  3. 严格风险管理:采用渐进式跟踪止损机制

  4. 自适应机制:能自动适应不同品种和不同市场环境


数学原理

基础价格中轴

图片

动态通道边界

图片

通道方向确认

图片


























// 计算超级趋势线Numeric Fun_SuperTrend(Numeric factor, Numeric atrPeriod, Numeric Enable_Display = 1){    HL2 = (H + L) /2;
    LowerBand = HL2 - (Multiplier * ATR);    UpperBand = HL2 + (Multiplier * ATR);       
    // LowerBand只上升不下降,直到收盘价下破LowerBand    LowerBand = IIF(LowerBand > LowerBand[1] or C[1] < LowerBand[1], LowerBand, LowerBand[1]);    // UpperBand只下降不上升,直到收盘价上破UpperBand    UpperBand = IIF(UpperBand < UpperBand[1] or C[1] > UpperBand[1], UpperBand, UpperBand[1]);
    // 趋势方向判断    if(CurrentBar < atrPeriod -1)    {        Direction = 0;    }Else    If(Direction <= 0)    {        If (close > UpperBand)        {            Direction = 1;        }    }   }

策略优势分析

  1. 自适应市场环境:通过ATR指标动态调整通道宽度,适应不同波动率市场

  2. 双重确认机制

  • 超级趋势方向确认

  • 价格突破动态通道确认

  1. 渐进式风险控制

  • 初始止损:基于通道反向突破

  • 跟踪止损:随持仓时间逐步收紧(liQKA从1递减至0.5)

  1. 参数灵活性

  • Periods(50):ATR计算周期

  • Multiplier(20):通道宽度系数

  • N(3):突破确认系数

  • TrailingStopRate(80):控制止损幅度(40-100可调)


图片
图片
图片
图片
图片
AO:
图片
AP:
图片
CF:
图片
CU:
图片
EB:
图片
JM:
图片

防迷路


           图片

微   信|小松鼠-松鼠Quant

微信号|viquant01

历史源码SF14》

加入2025量化俱乐部

分享