Super Trend Fisher Indicator

Super Trend Fisher Indicator

Discover the Super Trend Fisher Indicator: Analysis and Applications in ProRealTime

Introduction

The Super Trend Fisher indicator stands out as an advanced tool that combines several analytical methods to deliver clear and timely signals. This indicator is especially valued for its ability to adapt to different market conditions and its ease of integration into various trading strategies.

Description of the Super Trend Fisher Indicator

The Super Trend Fisher is a complex technical indicator that incorporates elements of the Detrended Price Oscillator, Fisher Transform, and the calculation of the Average True Range (ATR) to dynamically adjust trend levels. Its main goal is to identify the direction of the trend and signal possible reversals, using a methodology that adjusts its parameters in real-time to capture market volatility.

  • Detrended Price Oscillator (DPO): Measures the deviation of the price from its moving average, helping to identify short-term price cycles stripped of long-term trends.
  • Fisher Transform: Converts prices into a Gaussian distribution to produce clearer and timelier signals.
  • Average True Range (ATR): Used to calculate market volatility, the ATR helps adjust the SuperTrend thresholds to be more responsive during volatile market conditions.
  • SuperTrend: Combines direction of the trend and volatility, offering a clear visual summary of the current market situation.

Functioning of the Indicator

The Super Trend Fisher uses a combination of analytical techniques to provide an integrated and deeply contextual view of market behavior. Below is an explanation of how each component of the indicator is calculated:

  • Calculation of the Detrended Price Oscillator: The moving average is subtracted from the closing price, which helps eliminate long-term price variations and focus on short-term fluctuations.
  • Application of the Fisher Transform: This transform alters the distribution of price data to make overbought and oversold areas more identifiable and accessible for technical analysis.
  • Integration of the ATR: The ATR adjusts the limits of the SuperTrend according to market volatility, allowing the indicator to be effective under different market conditions.

Practical Applications

The Super Trend Fisher indicator is exceptionally useful for traders looking to quickly identify market trends and reversal points. Here are some ways to interpret the signals provided by this indicator:

  • Trend Identification: When the indicator moves above the zero level and changes color, it indicates a possible entry into an uptrend. Conversely, a movement below the zero level with a color change suggests a downtrend.
  • Buy and Sell Signals: A buy signal may be considered when the Super Trend Fisher changes from red to green and is above the zero line. Conversely, a sell signal is suggested when it changes from green to red and is located below the zero line.
  • Optimization of Entries and Exits: Combining the Super Trend Fisher with other momentum or volume indicators can help refine entries and exits, thereby improving risk management and the effectiveness of trading strategies.

Setup and Customization

Copy and paste the code provided in the programming section of the editor. Adjust the parameters period, length, len, stFactor, and stPeriod according to your specific needs to tailor the sensitivity and reactivity of the indicator.

  • Application and Analysis: Once the code is adjusted, apply the indicator to the chart. Observe how the indicator interacts with price movements and adjust settings if necessary to optimize signals.

Conclusions

The Super Trend Fisher indicator offers a robust combination of technical analysis and adaptability, making it a valuable tool for any trader. Its ability to integrate multiple analytical techniques into a single indicator allows for a richer and more nuanced interpretation of the markets. As with any trading tool, it is recommended to combine the Super Trend Fisher with proper risk management and a coherent trading strategy.

Share this

Risk disclosure:

No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.

ProRealTime ITF files and other attachments : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

  1. Stenozar • 04/29/2024 #

    Scusa Ivan, ho trovato un’altra versione di supertrend, Kalmana Hull Supertrand, che mi pare interessante ma non mi fa creare un nuovo topic, non so per quale motivo. Provo a incollare il codice qui, se tu potessi tradurlo. Grazie
    /////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
    // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
    // © BackQuant

    //@version=5
    indicator(
    title = “Kalman Hull Supertrend [BackQuant]”,
    shorttitle = “Kalman Hull ST [BackQuant]”,
    overlay=true,
    precision = 2,
    format = format.price,
    timeframe = “”,
    timeframe_gaps = true
    )

    // Define User Inputs
    series float pricesource = input.source(close, “Kalman Price Source”, group = “Calculation”)
    simple float measurementNoise = input.float(3.0, title=”Measurement Noise”, group = “Calculation”, tooltip = “Lookback Period/ Calculation Length”, step = 1.0)
    simple float processNoise = input.float(0.01, title=”Process Noise”, step = 0.01, group = “Calculation”)

    simple int atrPeriod = input.int(12, “ATR Period”, group = “Supertrend”, inline = “ST”)
    simple float factor = input.float(1.7, “Factor”, group = “Supertrend”, inline = “ST”, step = 0.01)

    simple bool showkalman = input.bool(true, “Show Supertrend on chart?”, group = “UI Settings”)
    simple bool paintCandles = input.bool(true, “Paint candles according to Trend?”, group = “UI Settings”)
    simple bool showlongshort = input.bool(true, “Show Long and Short Signals { + }”, group = “UI Settings”)

    color longColor = input.color(#33ff00, “Long Color”, group = “UI Settings”, inline = “Col”)
    color shortColor = input.color(#ff0000, “Short Color”, group = “UI Settings”, inline = “Col”)
    /////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
    // Kalman Price Filter Function
    N = 5
    var float[] stateEstimate = array.new_float(N, na)
    var float[] errorCovariance = array.new_float(N, 100.0)
    f_init(series float pricesource) =>
    if na(array.get(stateEstimate, 0))
    for i = 0 to N-1
    array.set(stateEstimate, i, pricesource)
    array.set(errorCovariance, i, 1.0)

    f_kalman(series float pricesource, float measurementNoise) =>
    // Prediction Step
    predictedStateEstimate = array.new_float(N)
    predictedErrorCovariance = array.new_float(N)
    for i = 0 to N-1
    array.set(predictedStateEstimate, i, array.get(stateEstimate, i)) // Simplified prediction
    array.set(predictedErrorCovariance, i, array.get(errorCovariance, i) + processNoise)

    kalmanGain = array.new_float(N)
    for i = 0 to N-1
    kg = array.get(predictedErrorCovariance, i) / (array.get(predictedErrorCovariance, i) + measurementNoise)
    array.set(kalmanGain, i, kg)
    array.set(stateEstimate, i, array.get(predictedStateEstimate, i) + kg * (pricesource – array.get(predictedStateEstimate, i)))
    array.set(errorCovariance, i, (1 – kg) * array.get(predictedErrorCovariance, i))

    array.get(stateEstimate, 0)

    f_init(pricesource)
    kalmanFilteredPrice = f_kalman(pricesource, measurementNoise)
    /////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
    // Hull Moving Average Function with Kalman instead of Weighted Moving Average
    KHMA(_src, _length) =>
    f_kalman(2 * f_kalman(_src, _length / 2) – f_kalman(_src, _length), math.round(math.sqrt(_length)))
    // Return
    kalmanHMA = KHMA(pricesource, measurementNoise)
    /////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
    // Supertrend Function
    supertrend(factor, atrPeriod, src) =>
    atr = ta.atr(atrPeriod)
    upperBand = src + factor * atr
    lowerBand = src – factor * atr
    prevLowerBand = nz(lowerBand[1])
    prevUpperBand = nz(upperBand[1])

    lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand
    upperBand := upperBand prevUpperBand ? upperBand : prevUpperBand
    int direction = na
    float superTrend = na
    prevSuperTrend = superTrend[1]
    if na(atr[1])
    direction := 1
    else if prevSuperTrend == prevUpperBand
    direction := close > upperBand ? -1 : 1
    else
    direction := close < lowerBand ? 1 : -1
    superTrend := direction == -1 ? lowerBand : upperBand
    [superTrend, direction]

    // Call Function with Inputs
    [superTrend, direction] = supertrend(factor, atrPeriod, kalmanHMA)
    /////////////////////////////////////////////////////////////// © BackQuant ///////////////////////////////////////////////////////////////
    // Conditional Trend
    SupertrendLong = ta.crossunder(direction, 0)
    SupertrendShort = ta.crossover(direction, 0)
    var Trend = 0
    if SupertrendLong and not SupertrendShort
    Trend := 1

    if SupertrendShort
    Trend := -1

    // Colouring
    var barColour = #ffffff
    if Trend == 1
    barColour := longColor
    if Trend == -1
    barColour := shortColor

    // Plotting
    plot(
    showkalman ? superTrend : na,
    "Kalman Hull ST",
    color = color.new(barColour, 40),
    linewidth = 4
    )

    barcolor(paintCandles ? barColour : na)

    // Long and Short Signals ()
    plotshape(
    showlongshort ? SupertrendLong : na,
    offset=0,
    title="Long",
    text="",
    style=shape.triangleup,
    location=location.belowbar,
    color=barColour,
    textcolor=barColour,
    size = size.tiny
    )
    plotshape(
    showlongshort ? SupertrendShort: na,
    offset=0,
    title="Short",
    text="",
    style=shape.triangledown,
    location=location.abovebar,
    color=barColour,
    textcolor=barColour,
    size = size.tiny
    )

    // Alert Conditions
    alertcondition(SupertrendLong, title="Kalman Hull ST Long", message="Kalman Hull ST Long {{exchange}}:{{ticker}}")
    alertcondition(SupertrendShort, title="Kalman Hull ST Short", message="Kalman Hull ST Short {{exchange}}:{{ticker}}")

    • Iván • 04/29/2024 #

      Ciao
      Certo, posso analizzare il codice per tradurlo, ma devi lanciare la richiesta da qui:
      https://www.prorealcode.com/free-code-conversion/

  2. Stenozar • 04/29/2024 #

    Ciao Ivan, ho provato ma non mi lascia caricare il post, non so per quale strano motivo…

    • Iván • 04/29/2024 #

      Allora crei un nuovo post. Lo aspetterò.

    • Stenozar • 04/29/2024 #

      Ciao Ivan, ho inserito il post con la richiesta di traduzione. Se puoi vedere, grazie!

    • Iván • 04/29/2024 #

      perfect!

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
Kris75 Hi Gabri I launched a very simple strategy based on the 3 bars trailing stop that you cre...
TimDeCat Hi. Has anyone coded a version that you could alter it to say 5 bar trailing stop? ie make ...
Nicolas Please open a new topic in forums so we can code it there, thanks.
finplus bonjour, il y a un problème à la fin du code avec elsif (close 0 then ... ne manque t il pas...
kj1988 Hello Nicolas, thank you for this useful indicator. Could you tell me how I can remove the...
Nicolas remove lines 101 to 103
GraHal Yes sorry, I set up a link to a screen shot on my google drive and then I got locked into th...
gabri Here's the thread https://www.prorealcode.com/topic/multiframe-rsi-of-rsi/
Bernard13 Bonjour Nicolas, Pourriez-vous m'indiquer si cet indicateur fonctionne avec la V11 ? Le di...
HeikinAshi Do you have an update of this indicator since you've created them, or is this still the actu...
mcha Thank you for this work. Do you try to transform/put this indicator on candlesticks and is ...
Jean-Pierre Poulain When I buy and when I sell ?
Nicolas The featured image of the post do not deserve the indicator you are right, I attached other ...
Nicolas It is described in the post already :) The BUY/SELL signals are quite similar of what you ca...
David Balance thanks for sharing this excellent indicator.  Here are some thoughts.  please ad...
reb Hello Marc your strat seems very intersting, will take a look Reb
897148 What exactly is meant by Total price? Is r1 =28 in your example the no of days for "Total P...
otty82  THX looks good!
century nice one , thank you
arvindrao01 Hey! Does anyone have a pinescript (tradingview) code for this?
imokdesign Hi Everybody, when I look at the strategy I felt the need to implement a Moneymanagement-Sy...
Inertia newlevel then multiplier=multiplier+1 oldlevel=newlevel newlevel=strategyprofit+startequi...
Inertia Hi Bjoern, I was playing around with your code this morning (EUR/USD 5'). Thank you to the...
CavalierDeCesDames Bonjour Nicolas, Thanks for your use full job. I tried this indicator on a shorter timefram...
Nicolas You are welcome. I'm glad you like it.
Bolbo It does not appear over the price indicator on V11. Thanks in advance.
bearbull As per PhilipSchultz question above, has anybody managed to add code for when it turns blue,...
Ybr35 Bonjour Nicolas, lorsque je lance l'indicateur, il m'est indiqué que je dois définir les var...
Nicolas L'idéal est de télécharger le fichier itf joint sur cette page et de l'importer dans la plat...
fabio407 Thanks, Nicolas. Very useful. Would you tell me where to find what result conveys the functi...
Nicolas This is not an instruction of the programming language but a variable from this indicator (l...
fabio407 OK. I didn't notice it. Many thanks, Nicolas!
albertocampagna Sei grande Nicolas :-)
SAcht Dear Nicolas, Great work, thank you very much!I would love to use the indicator in ProScree...
SAcht btw: The above-posted ProScreener is supposed to show stocks for which the center line has i...
victormork Hi, I would just like to share my own take on this strategy. I'm using 30 min on EURUSD but ...
mckubik Thanks. I will run a Test. 
poonsl2828 Hi! bjoern May i know what timing should i change for time zone (Singapore (GMT +8:00) ...
Nicolas Merci dans ce cas d'ouvrir un sujet dans le forum ProScreener svp.
Andrea Hi Nicolas, thx for your code. Please i need your help to understand this part of your code:...
Nicolas the MA200 is ascending since 20 periods.
Regan2020 Hi, has anybody update the above code to enable on a 15m or 5m TF?
gigi64 ik heb de code op mijn pro realtime gezet , en bij indicator staat hij erbij maar komt niet ...
gigi64 I have put the code on my pro realtime, and it is on the indicator, but it does not appear o...
supertiti Thanks you so much Lucassen
dreif123 hi, copied the above code, not working on 10.3 the system says "return can only be used at ...
LUCASSEN Hallo , i have no problem , and i have the same versie 10.3, maybe you can ask Nicolas, tha...
Nicolas Indeed, if you are not willing to loose, you will always win. Averaging down losers can carr...
David You're always safer going Long especially with averaging down on an index as the probability...
Oskar Bergvall  I noted Davids and Nicolas remarks. Could it be possible to make an indicator for contraria...
Krallenmann Hallo Nicolas, kannst du mir die Regeln für den Halftrend Indikator sagen? Aus dem Code kann...
davefransman Dear Nicolas, i want set a alert on the "HalfTrend "custom moving average" met Heikin Ashi w...
Nicolas Please post the question in a new forum topic, that would need custom coding I believe.

Top