Fisher Transform Reversal Script

← All 70 scripts

iqow-fisher-transform-reversal.lua 5 KB · Free, MIT license

Also get the markers file

On assets priced above about 100 (such as JPY pairs) this script's panel can hide its markers, so import the markers file too: it draws them on the price chart.

For the IQ Option web traderoom. Quadcode does not draw HIGHER and LOWER markers on mobile.

Add it to IQ Option in 3 steps

  1. Get the file. Press Get the script. Your browser saves a .lua file.
  2. Import it in IQ Option. Open the web traderoom on the Practice balance. Click the wave icon at the bottom left of the chart, open the Scripts tab, press Import script and pick the file.
  3. Add it to the chart. The code opens in an editor. Click the plus button under it (Add to chart). Save is only needed after you edit the code.

Risk. Trading can lose money. A marker is a chart observation, not a prediction, and this script is checked on test data, not proven in live trading. Try it on the Practice balance first.

  • Reversal
  • Own panel
  • Intermediate

Marks a Fisher Transform cross of its trigger line while the indicator is in an extreme zone. This is the extreme-then-cross confirmation the related article describes.

  • File iqow-fisher-transform-reversal.lua
  • Version 1.0.0
  • Size 129 lines · 5 KB
  • Timeframes 1-minute to 15-minute candles
  • License MIT

In the indicator panel the markers are drawn at the candle's price, so on assets priced above about 100 (for example JPY pairs) they fall outside the panel. Load fisher-transform-reversal-markers to see the same markers on the price chart.

Fisher Transform Reversal drawn on synthetic candles
How the script draws, shown on synthetic candles generated for testing. It is an illustration of the markers and lines, not real market data or a result.

The rules

HIGHER marker

The Fisher Transform(10) crosses above its trigger line (its previous value) while it is at or below -1.5.

LOWER marker

The Fisher Transform(10) crosses below its trigger line while it is at or above +1.5.

A marker appears after the next candle opens and is drawn on the candle that completed the setup. It is a chart observation, not an instruction to trade.

How to read it

The green line is the Fisher Transform and the red line is its trigger, one candle behind. A green HIGHER triangle at the bottom marks an upward cross below -1.5; a red LOWER triangle at the top marks a downward cross above +1.5.

Indicators used

  • Ehlers Fisher Transform (10)

Same view with built-in indicators: Add Ehler's Fisher Transform (period 10) from the Trend indicators and look at the EF and EF Trigger lines.

Default settings

Period10
Extreme level1.5

Every value is an input in the script settings. Platform advice is off by default.

Key points

  1. The Fisher Transform reshapes price so turning points stand out.
  2. It has two lines: the Fisher line and a trigger, which is the Fisher value one candle earlier.
  3. The article says extreme readings can last a long time, so we wait for a change of direction.
  4. A cross upward while the line is below minus 1.5 is marked HIGHER.
  5. A cross downward while the line is above plus 1.5 is marked LOWER.
  6. Extreme levels differ by instrument, so adjust the level input and test on a Practice balance.

Limitations. The article notes that extremes depend on the instrument and change over time, and the indicator can stay extreme for long periods, so 1.5 is only a starting level. Because the trigger is the previous value, the cross is the same as the first turn of direction and can happen often in noisy markets. Test on the Practice balance before risking real funds.

Learn the strategy: read the full guide on IQOptionWiki →

Complete source code

The download and this preview resolve to the same reviewed file. SHA-256: 8304698b1f4c83dee212dcd31a5699dabee0b94b945722ee15b0b9e9bebf3dbe

-- SPDX-License-Identifier: MIT
-- IQOptionWiki QCS Library
-- IQOW Fisher Transform Reversal v1.0.0
--
-- Ehlers Fisher Transform turns price into a series that swings clearly at
-- turning points. The trigger line is the Fisher value one candle earlier. A
-- cross of the two lines inside an extreme zone is read as a possible turn,
-- the confirmation the related article describes. Formula follows the official
-- QCS Ehlers Fisher Transform; the value is clamped to avoid division by zero.
--
-- HIGHER: Fisher crosses above its trigger while below -1.5.
-- LOWER:  Fisher crosses below its trigger while above +1.5.
--
-- Markers use the previous completed candle: they appear after the next candle
-- opens and are shifted back one bar onto the candle that qualified.
-- Educational chart tool only. It does not place trades, choose an expiry,
-- predict outcomes, or guarantee results. Test on a Practice balance first.

instrument {
    name = "IQOW Fisher Transform Reversal",
    short_name = "IQOW FISHER",
    overlay = false
}

input_group {
    "1. Fisher Transform",
    fisher_period = input (10, "Period", input.integer, 3, 100),
    extreme_level = input (1.5, "Extreme level (+/-)", input.double, 0.5, 4, 0.1, false)
}

input_group {
    "Display and advice",
    lines_visible = input { default = true, type = input.plot_visibility },
    signals_visible = input { default = true, type = input.plot_visibility },
    advice_enabled = input { default = false, name = "Enable platform advice", type = input.boolean }
}

input_group {
    "Colors",
    fisher_color = input { default = "#2CAC40", type = input.color },
    trigger_color = input { default = "#DB4931", type = input.color },
    level_color = input { default = rgba(255, 255, 255, 0.30), type = input.color },
    line_width = input { default = 1, type = input.line_width },
    higher_color = input { default = "#25E154", type = input.color },
    lower_color = input { default = "#FF6C58", type = input.color },
    signal_text_color = input { default = "#FFFFFF", type = input.color }
}

-- Fisher Transform (official formula): normalise hl2 to -1..1, smooth, then
-- apply the inverse hyperbolic tangent and smooth again.
highest_hl2 = highest (hl2, fisher_period)
lowest_hl2 = lowest (hl2, fisher_period)
normalized = 2 * (hl2 - lowest_hl2) / max (highest_hl2 - lowest_hl2, 1e-10) - 1
smoothed = ema (normalized, 5)
-- Clamp just inside +/-1 so log () stays finite on flat or extreme candles.
clamped = iff (smoothed > 0.999, 0.999, iff (smoothed < -0.999, -0.999, smoothed))
fisher = ema (log ((1 + clamped) / (1 - clamped)), 3)
fisher_trigger = fisher [1]

local fisher_now = get_value (fisher, nil)
local fisher_before = get_value (fisher [1], nil)
local fisher_before_that = get_value (fisher [2], nil)

local data_is_ready = fisher_now ~= nil and fisher_before ~= nil and fisher_before_that ~= nil

-- Cross event: Fisher moves through the trigger (the previous Fisher value).
local crosses_up = data_is_ready and fisher_before <= fisher_before_that and fisher_now > fisher_before
local crosses_down = data_is_ready and fisher_before >= fisher_before_that and fisher_now < fisher_before

higher_setup = conditional (crosses_up and fisher_now <= -extreme_level)
lower_setup = conditional (crosses_down and fisher_now >= extreme_level)

-- Confirm only a new setup on the previous completed candle.
confirmed_higher = conditional (
    get_value (higher_setup [1], false) and
    not get_value (higher_setup [2], false)
)

confirmed_lower = conditional (
    get_value (lower_setup [1], false) and
    not get_value (lower_setup [2], false)
)

if lines_visible then
    hline (extreme_level, "Upper extreme", level_color, 1)
    hline (0, "Zero", rgba (255, 255, 255, 0.15), 1)
    hline (-extreme_level, "Lower extreme", level_color, 1)
    plot (fisher_trigger, "Fisher trigger", trigger_color, line_width)
    plot (fisher, "Fisher", fisher_color, line_width)
end

if signals_visible then
    plot_shape (
        confirmed_higher,
        "FISHER HIGHER",
        shape_style.triangleup,
        shape_size.small,
        higher_color,
        shape_location.bottom,
        -1,
        "HIGHER",
        signal_text_color
    )

    plot_shape (
        confirmed_lower,
        "FISHER LOWER",
        shape_style.triangledown,
        shape_size.small,
        lower_color,
        shape_location.top,
        -1,
        "LOWER",
        signal_text_color
    )
end

-- QCS advice is a platform notification state only; it does not place trades.
if advice_enabled and
    get_value (confirmed_higher, false) and
    not get_value (confirmed_lower, false) then
    advise (advice.buy)
elseif advice_enabled and
    get_value (confirmed_lower, false) and
    not get_value (confirmed_higher, false) then
    advise (advice.sell)
else
    advise (advice.neutral)
end

More reversal scripts

  • Reversal
  • Own panel
  • Intermediate

Three Oscillators

Counts how many of three oscillators have just crossed back out of their extreme zone and marks the candle where at least two agree. It follows the article's trio setup, where all three is strongest and two of three is enough.

Indicators: RSI (14, 30/70) · CCI (20, +/-100) · Williams %R (14, -80/-20)

  • Reversal
  • On price
  • Beginner

Bollinger RSI Reversal

Marks the first candle that closes back inside the Bollinger Bands after a close outside a band with RSI in its oversold or overbought zone. The bands show how stretched price is and RSI adds a second view of the same stretch.

Indicators: Bollinger Bands (20, 2) · RSI (14, 30/70)

  • Reversal
  • Own panel
  • Beginner

DeMarker 30 70 Cross

Marks the candle where DeMarker closes back out of its oversold or overbought zone. The 30 and 70 levels are the ones used in the related guide.

Indicators: DeMarker (14, levels 30/70)

Download all 70 scripts as one ZIP · MIT License, provided “as is”, without warranty. IQOptionWiki is independent of the IQ Option platform operator. Nothing here is investment advice or a guarantee of results.

GENERAL RISK WARNING

The financial products offered by the company carry a high level of risk and can result in the loss of all your funds. You should never invest money that you cannot afford to lose.
Kindly note that this article does not provide any investment advice. The information presented regarding past events or potential future developments is solely an opinion and cannot be guaranteed as factual, including the provided examples. We caution readers accordingly.