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 • 313 days ago #

    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 • 311 days ago #

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

  2. Stenozar • 310 days ago #

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

    • Iván • 310 days ago #

      Allora crei un nuovo post. Lo aspetterò.

    • Stenozar • 306 days ago #

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

    • Iván • 303 days ago #

      perfect!

avatar
Register or

Likes

avatar avatar avatar avatar avatar avatar avatar avatar avatar
Related users ' posts
Iván
11 months ago
Iván Si lo descargas e importas en tu PRT verás que se han creado las variables para luego config...
WhyAskOZ Hi, Ivan As always you are doing great coding. The code works on my PRT, however the issu...
Iván You can delete in the last line (return) the configuration for color. Delete coloured(xx,xx,...
Bernard13 (Je réécris mon commentaire -français- en français car certains mots ne correspondaient pas ...
Iván 1000 indicateurs !!! brutaux
Iván Gracias! Para el screener sólo tienes que copiar el indicador y poner como condición de búsq...
Lean Muchas gracias Iván, ya lo he podido crear.
bertoluce Hello Ivan, thank you very much for the indicator. An observation: would it be possible (and...
Doddge Hola Iván, ¿sería posible crear un screener que indique cuándo las velas coloreadas del indi...
RTR Ivan thank you for the pro-screener. I a trying to understand how to write the signals from ...
Iván Hi, Lines 62 and 63. These lines define buy and sell conditions.
Iván
1 year ago
oliTR Yes, I am sure it should work perfectly, but I found very strange vehavior like this one: ...
oliTR well, it seems that the issue came from my backTest period which was not long enough. sorry
oliTR Dear Ivan, why, in line 86, there is "currentsuperTrend[i]" and not "currentsuperTrend" only?
Iván Hi You should delete from the indicator code all drawing functions and all variables not us...
Iván I've created a screener to show [longcondition or shortcondition]
Chrisinobi Hallo Ivan, Danke das ist Perfekt !! Kannst du bitte in der Screener-Bibliothek die itf. hoc...
MaoRai54 Thanks, now it's OK. in your first code at line 15-16 it's missing.
Madrosat Hello Ivan Did you try a strategy with this indicator
Iván Hi. No I didn't. This is a code translation requested by an user a few days ago.
Iván
1 year ago
cjr30 Simplemente modifica las lineas 19 y 21 por las siguientes: drawtext("▲",barindex,low-0.1*a...
groelandes Gracias!!
WhyAskOZ i copied the code into strategy and it gives error on line 21 and 23. it says " Line 1: ...
Iván
1 year ago
Madrosat Hello Ivan You have interesting topics on indicators , smart supertrend, optimised trend t...
Iván Hi! thanks. All of these codes are translations requested in the forum. I've on mind to back...
Raspete01 Buenos días Iván, estoy intentando llevar el código eliminando los colores y pasando un Back...
Iván
1 year ago
winnie37 Hi Ivan, if i want to use it, and call the oscillator value (in grey, green or red), how to...
Iván The oscillator is smoothtype. In inputs there is de lag to configure the output
ARLEQUIN49 Hello Ivan, Would it be possible to convert the code of this QQE MOD indicator which accomp...
ARLEQUIN49 here is the code: //@version=4 //By Glaz, Modified // study("QQE MOD") RSI_Period = i...
Iván Hi, Yes I can translate it but please, create a new topic for it.
Fgats quelques explications en Français ici : Some explanations in French here : https://www.p...
Nicolas Merci pour cette contribution, j'apprécie ! :)
Fgats Merci Nicolas pour ces encouragements et merci aussi pour le commentaire en Anglais accompa...
pdrh Bonjour WE ARE SOCIETY,Vous optimisez toujours votre Algo chaque
WE ARE SOCIETY Bonjour, je l'optimise et l'améliore chaque semaine en évitant au maximum les interdictions ...
dammon c'est un bien beau code que tu nous sors là. il m'a fallu du temps pour bien tout comprendre...
Alai-n I really like it when you develop ideas around price movement! I am much less a fan of all t...
elcortijoverde Muy buen trabajo.Intuitivo y claro.Gracias por tu dedicación y aportación.
FXtonio Nicolas.... MERCI 1 millions de fois, cet indicateur gagne dans 75% des cas en scalping m1 ...
davy42 bonjour, à quel moment apparait le fleche, à l'ouverture ou la fermeture de la bougie? merci
Freezer Bonjour, est-il possible d'ajouter une alarme sonore sur PRT à l'apparition des flèches ? Br...
Nicolas
2 years ago
B-Xtrender
B-Xtrender
8
Indicators
616248 Bonjour Nicolas, Peux tu nous expliquer le principe de fonctionnement ? Ou nous mettre un...
Nicolas Le lien vers l'article IFTA de l'auteur est dans le post déjà :)
P. Marlowe Very poweful indeed. It deserves close attention. I really appreciate very much IFTA backgro...
JS
2 years ago
Trendilo
Trendilo
1
Indicators
Coded1 very interesting indicator, thanks JS

Top