STARC Bands Reversal Script

← All 56 scripts

  • Reversal
  • On price
  • Beginner

Marks a bullish or bearish candle that closes back inside the STARC Bands after the previous close was outside them. The bands show where price is stretched in ATR terms.

  • File iqow-starc-bands-reversal.lua
  • Version 1.0.0
  • Size 141 lines · 5 KB
  • Timeframes 1-minute to 15-minute candles
  • License MIT
STARC Bands 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 previous close was below the lower STARC band, and this candle is bullish and closes back above the lower band and below the upper band.

LOWER marker

The previous close was above the upper STARC band, and this candle is bearish and closes back below the upper band and above the lower band.

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 yellow lines are the STARC Bands, a 6-period average with bands 2 x ATR(15) above and below it. A green HIGHER triangle appears when price was closing below the lower band and the next candle is a bullish candle back inside; a red LOWER triangle is the mirror case.

Indicators used

  • STARC Bands (SMA 6, ATR 15, x2)

Same view with built-in indicators: Add STARC Bands (moving average 6, ATR period 15, multiplier 2).

Default settings

SMA period6
ATR period15
ATR multiplier2

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

Key points

  1. STARC Bands are a short moving average with bands a multiple of ATR above and below it.
  2. A close below the lower band shows price stretched down.
  3. We wait for the next candle to close back inside the bands and be bullish.
  4. The upper band mirrors this with a bearish candle.
  5. Markers confirm on a completed candle.
  6. Practise on the Practice balance and check how it behaves in strong trends.

Limitations. In a strong trend price can keep closing outside the bands, and a return inside can be brief. The article lists a moving average period of 5 to 10 and a typical multiplier of 2; the entry candle rule is this library's adaptation. 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: 8acb4ab3d54351b5658156db1eb36bbcba346269d9858c3589c909e976391289

-- SPDX-License-Identifier: MIT
-- IQOptionWiki QCS Library
-- IQOW STARC Bands Reversal v1.0.0
--
-- STARC Bands (Stoller Average Range Channel) are a simple moving average
-- with bands a multiple of ATR above and below it. A close outside a band
-- shows price stretched; a close back inside with a reversal candle marks
-- the first sign of a return towards the average.
--
-- HIGHER: the previous close was below the lower band, this candle closes
--         back inside the bands and is bullish.
-- LOWER:  the previous close was above the upper band, this candle closes
--         back inside the bands and is bearish.
--
-- 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 STARC Bands Reversal",
    short_name = "IQOW STARC",
    overlay = true
}

input_group {
    "1. STARC Bands",
    ma_period = input (6, "SMA period", input.integer, 2, 100),
    atr_period = input (15, "ATR period", input.integer, 2, 100),
    band_multiplier = input (2, "ATR multiplier", input.double, 0.5, 6, 0.1, false)
}

input_group {
    "Display and advice",
    bands_visible = input { default = true, type = input.plot_visibility },
    middle_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",
    band_color = input { default = "#DBCF0D", type = input.color },
    middle_color = input { default = rgba(219, 207, 13, 0.6), type = input.color },
    band_fill_color = input { default = rgba(219, 207, 13, 0.05), 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 }
}

-- Bands as in the official library: SMA of close +/- multiplier x ATR.
middle_band = sma (close, ma_period)
atr_value = rma (tr, atr_period)
upper_band = middle_band + band_multiplier * atr_value
lower_band = middle_band - band_multiplier * atr_value

local upper_now = get_value (upper_band, nil)
local lower_now = get_value (lower_band, nil)
local upper_previous = get_value (upper_band [1], nil)
local lower_previous = get_value (lower_band [1], nil)
local close_now = get_value (close, nil)
local close_previous = get_value (close [1], nil)
local open_now = get_value (open, nil)

-- The ATR needs its full period of candles before the bands mean anything.
local data_is_ready =
    get_value (close [atr_period], nil) ~= nil and
    upper_now ~= nil and lower_now ~= nil and
    upper_previous ~= nil and lower_previous ~= nil and
    close_now ~= nil and close_previous ~= nil and open_now ~= nil

local closes_inside = data_is_ready and close_now > lower_now and close_now < upper_now

higher_setup = conditional (
    closes_inside and close_previous < lower_previous and close_now > open_now
)

lower_setup = conditional (
    closes_inside and close_previous > upper_previous and close_now < open_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 bands_visible then
    fill (upper_band, lower_band, "STARC area", band_fill_color)
    plot (upper_band, "Upper STARC", band_color, line_width)
    plot (lower_band, "Lower STARC", band_color, line_width)
end

if middle_visible then
    plot (middle_band, "STARC middle", middle_color, line_width)
end

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

    plot_shape (
        confirmed_lower,
        "STARC 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 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 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.