Supertrend EMA 200 Script

← All 56 scripts

  • Trend
  • On price
  • Intermediate

Marks Supertrend direction flips only when the candle closes on the same side of the 200-period EMA. The EMA acts as a simple long-term bias filter for the Supertrend flip.

  • File iqow-supertrend-ema200.lua
  • Version 1.0.0
  • Size 142 lines · 5 KB
  • Timeframes 1-minute to 15-minute candles
  • License MIT
Supertrend EMA 200 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

Supertrend(10, 3) flips from down to up on a candle that closes above EMA 200; the marker confirms on the previous completed candle.

LOWER marker

Supertrend(10, 3) flips from up to down on a candle that closes below EMA 200; the marker confirms on the previous completed candle.

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 Supertrend line is green below price in an uptrend and red above price in a downtrend; the amber line is EMA 200. A green HIGHER triangle appears under the candle where the line turned green above the EMA, and a red LOWER triangle appears above the candle where it turned red below the EMA.

Indicators used

  • Supertrend (10, 3)
  • EMA (200)

Same view with built-in indicators: Add IQ Option's Supertrend (period 10, multiplier 3) and Exponential Moving Average (200).

Default settings

ATR period10
ATR multiplier3
EMA period200

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

Key points

  1. Supertrend draws a trailing line from the average true range: green under price in an uptrend, red above price in a downtrend.
  2. On its own it flips often, so we add a filter: the 200-period moving average.
  3. A HIGHER marker needs two things: the line just flipped to up, and the candle closes above EMA 200.
  4. A LOWER marker is the mirror: the line flipped to down, and the close is below EMA 200.
  5. Flips against the long-term side are ignored, which removes some noise but not all of it.
  6. Markers confirm on a completed candle; try them on a Practice balance first.

Limitations. Supertrend flips often in sideways markets, and the EMA 200 reacts slowly, so a flip can arrive late or be followed by an immediate reversal. EMA 200 needs 200 candles of history, so no markers appear on a freshly loaded short chart. The default ATR period is 10 (the official built-in indicator defaults to 7). Test on the Practice balance before risking real funds.

Learn the strategy: read the full guide on IQOptionWiki →

Install it in four steps

  1. Download and inspectDownload one .lua file and open it in a plain-text editor if you want to read it first. If you downloaded the ZIP, extract it.
  2. Open Chart Analysis → ScriptsIn the IQ Option traderoom, choose the Practice balance, open the chart analysis panel, select Scripts and choose Import script.
  3. Save and add to chartSelect the downloaded file, review the imported code, choose Save, then use the + control to add it to the chart.
  4. Change one input at a timeConfirm the default view first. Then adjust periods, levels or colours one setting at a time and note what changes.

Complete source code

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

-- SPDX-License-Identifier: MIT
-- IQOptionWiki QCS Library
-- IQOW Supertrend EMA 200 v1.0.0
--
-- Supertrend (ATR trailing line) shows when the short-term trend flips. An
-- EMA 200 filter keeps only the flips that agree with the longer-term side
-- of price. Supertrend uses the same formula as the official IQ Option one.
--
-- HIGHER: Supertrend flips from down to up on a candle that closes above EMA 200.
-- LOWER:  Supertrend flips from up to down on a candle that closes below EMA 200.
--
-- 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 Supertrend EMA 200",
    short_name = "IQOW ST EMA",
    overlay = true
}

input_group {
    "1. Supertrend",
    atr_period = input (10, "ATR period", input.integer, 1, 100),
    atr_multiplier = input (3, "ATR multiplier", input.double, 0.5, 10, 0.1, false)
}

input_group {
    "2. Trend filter",
    ema_period = input (200, "EMA period", input.integer, 2, 500)
}

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",
    supertrend_up_color = input { default = "#25E154", type = input.color },
    supertrend_down_color = input { default = "#FF6C58", type = input.color },
    ema_color = input { default = "#FFB020", 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 }
}

-- Supertrend, same recursion as the official library indicator.
band_offset = rma (tr, atr_period) * atr_multiplier
raw_up = hl2 - band_offset
raw_down = hl2 + band_offset

trail_up = iff (not na (trail_up) and close [1] > trail_up [1], max (raw_up, trail_up [1]), raw_up)
trail_down = iff (not na (trail_down) and close [1] < trail_down [1], min (raw_down, trail_down [1]), raw_down)

-- true = uptrend, false = downtrend; it keeps its last value between flips.
trend_is_up = iff (close > trail_down [1], true, iff (close < trail_up [1], false, nz (trend_is_up [1], true)))
supertrend_line = iff (trend_is_up, trail_up, trail_down)

ema_filter = ema (close, ema_period)

-- Current-bar scalars for the Lua rule logic.
local trend_now = get_value (trend_is_up, nil)
local trend_before = get_value (trend_is_up [1], nil)
local close_now = get_value (close, nil)
local ema_now = get_value (ema_filter, nil)
local trail_before = get_value (trail_up [1], nil)

-- EMA needs its full length of history before the filter means anything.
local data_is_ready =
    trend_now ~= nil and
    trend_before ~= nil and
    close_now ~= nil and
    trail_before ~= nil and
    get_value (ema_filter [ema_period], nil) ~= nil

-- Event: the trend flips on this candle, on the correct side of the EMA.
higher_setup = conditional (
    data_is_ready and trend_now and not trend_before and close_now > ema_now
)
lower_setup = conditional (
    data_is_ready and not trend_now and trend_before and close_now < ema_now
)

-- 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
    plot (supertrend_line, "Supertrend", get_value (trend_is_up, true) and supertrend_up_color or supertrend_down_color, line_width)
    plot (ema_filter, "EMA filter", ema_color, line_width)
end

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

    plot_shape (
        confirmed_lower,
        "ST EMA LOWER",
        shape_style.triangledown,
        shape_size.small,
        lower_color,
        shape_location.abovebar,
        -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 trend scripts

  • Trend
  • On price
  • Beginner

EMA50 CCI 100

Marks the first CCI break beyond +100 or -100 shortly after price crossed the EMA 50 and stayed on that side. The EMA sets the direction and CCI times the entry, at most once per EMA cross.

Indicators: EMA (50) · CCI (14, levels +/-100)

  • Trend
  • On price
  • Advanced

Fractal Alligator

Marks a close through the last confirmed fractal level when that level lies beyond the Alligator teeth. The Alligator gives the trend reference and the fractal gives the breakout level.

Indicators: Williams Fractals (5) · Alligator (13/8/5, shifted 8/5/3)

  • Trend
  • On price
  • Beginner

Heikin Ashi EMA

Marks the first bullish or bearish Heikin-Ashi candle after a run of two opposite candles, only when price closes on the matching side of EMA 50. Heikin-Ashi is calculated inside the script, so the chart can stay on regular candles.

Indicators: Heikin-Ashi candles (calculated) · EMA (50)

Download all 56 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.