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
bolsatrilera Hi Nicolas, I have this version of the True Balance Power ,created by eykpunter on Tradingvi...
bolsatrilera and the code : REM TRUE BALANCE OF POWER // código original de eykpunter para la plataform...
JanWd Tried the code, nice concept, seems to work quit well for US/EUR 2hrs, Other markets seems n...
JR1976 Simple and nice code , congrats !!! Seems work well with TIme frame 1 h
phanz Hi all, Sorry revisiting an old post. This algo is simple, and simplicity is the ultimate ...
Steven Bahia Hi Nicolas - great indicator - is there a way to place a alert when the Oscillator crosses ...
Nicolas Alerts can't be programmed, you have to set them yourself with the Alert tool of the platfor...
Steven Bahia just to add to this would there be a way to establish a entry price from the Oscillator
juanj And the point of violation is the close of the candle that violates the line by generating a...
juanj For the latest version of the strategy or to follow updates and developments see the thread ...
phanz i backtested it with 10K units of EURUSD 1 hour i get an equity curve that is going one way ...
Wing Not yet but I plan to.
Leo Have a look in this Forum, I got something interesting for you... https://www.prorealcode.co...
Dávid Gyalus Dear Wing, As I am a daytrader, and one of my best friend is a programmer we think your a...
EchnatonX Hallo Im Demomodus bei IG habe ich das Problem, dass oft keine Orders ausgeführt werden kön...
Jan EchnatonX, nice late answer of me: Make the stop loss a percentage of the close, like 100/...
guleny Hello I made some optimization to make it better. But there are 5 transacttion which incr...
stratobast Good afternoon everyone. Thanks Doctrading for your work. I have an issue while using this ...
stratobast My bad guys. I understood what was the problem. The indicator uses highs and lows for the Re...
samwarduk Has anyone tried this on Bitcoin GBP1? The results look amazing but every time mine trie...
Kris75 Hi Bolsatrilera, I love this indicator! Thanks; => did you develop a strategy around...
Doctrading AH ok, I think the ca3 is the same : ca3 = pB[1] < 0.2 and pB < 0.2 Best regards,
chromosome21 Hello everybody, First, thank you so much for all your advices, I'm a begginer in trading a...
bertrandpinoy bonjour j ai un probleme avec ce code modifié, apparement PRT ne veut pas...avez vous une so...
rispardin no entiendo como funciana este indicador, por favor alguien podria explicar como utilizarlo???
AVT No se trata de un solo indicador, pero cada linea muestra otra información, de abajo hacia ...
IV Mcm Your indicator is interesting, I evaluated its relevance with the squeeze to detect the phas...
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...

Top