0% found this document useful (0 votes)
260 views3 pages

Target Indicator

The document describes a technical indicator called the Step Generalized Double DEMA (ATR based) indicator. It uses a generalized double exponential moving average with adjustments based on average true range to determine buy and sell signals. The indicator can be customized using various parameters for settings like periods, smoothing, and signal thresholds.

Uploaded by

ujjwal wahadar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
260 views3 pages

Target Indicator

The document describes a technical indicator called the Step Generalized Double DEMA (ATR based) indicator. It uses a generalized double exponential moving average with adjustments based on average true range to determine buy and sell signals. The indicator can be customized using various parameters for settings like periods, smoothing, and signal thresholds.

Uploaded by

ujjwal wahadar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

// This source code is subject to the terms of the Mozilla Public License 2.

0 at
https://mozilla.org/MPL/2.0/
// © loxx

//@version=5
indicator("Step Generalized Double DEMA (ATR based) [Loxx]",
shorttitle="SGDDEMAATRB [Loxx]",
overlay = true,
timeframe="",
timeframe_gaps = true)

import loxx/loxxexpandedsourcetypes/4

greencolor = #2DD204
redcolor = #D2042D

gdema(float price, float period, float volumeFactor)=>


float vol = (volumeFactor > 0) ? (volumeFactor > 1) ? 1 : volumeFactor : 0.01
float volpl = vol + 1
float alpha = 2.0 / (1.0 + (period > 1 ? period : 1))
float winst1 = 0., float winst2 = 0., float winst3 = 0., float winst4 = 0.

winst1 := nz(winst1[1]) + alpha * (price - nz(winst1[1]))


winst2 := nz(winst2[1]) + alpha * (winst1 - nz(winst2[1]))
winst3 := nz(winst3[1]) + alpha * ((winst1 * volpl - winst2 * vol) -
nz(winst3[1]))
winst4 := nz(winst4[1]) + alpha * (winst3 - nz(winst4[1]))
winst = winst3 * volpl - winst4 * vol
winst

smthtype = input.string("Kaufman", "Heiken-Ashi Better Smoothing", options =


["AMA", "T3", "Kaufman"], group= "Source Settings")
srcoption = input.string("Close", "Source", group= "Source Settings",
options =
["Close", "Open", "High", "Low", "Median", "Typical", "Weighted", "Average",
"Average Median Body", "Trend Biased", "Trend Biased (Extreme)",
"HA Close", "HA Open", "HA High", "HA Low", "HA Median", "HA Typical", "HA
Weighted", "HA Average", "HA Average Median Body", "HA Trend Biased", "HA Trend
Biased (Extreme)",
"HAB Close", "HAB Open", "HAB High", "HAB Low", "HAB Median", "HAB Typical",
"HAB Weighted", "HAB Average", "HAB Average Median Body", "HAB Trend Biased", "HAB
Trend Biased (Extreme)"])

per = input.int(14, "Double DEMA period", group = "Basic Settings")


vf = input.float(.7, "Double DEMA volume factor", step = 0.1, minval = 0.1, group =
"Basic Settings")

mult = input.float(20, "Step Size in % of ATR", group = "Basic Settings")


atrper = input.int(50, "ATR Period", group = "Basic Settings")

showSigs = input.bool(true, "Show signals?", group= "UI Options")


colorbars = input.bool(true, "Color bars?", group = "UI Options")

kfl=input.float(0.666, title="* Kaufman's Adaptive MA (KAMA) Only - Fast End",


group = "Moving Average Inputs")
ksl=input.float(0.0645, title="* Kaufman's Adaptive MA (KAMA) Only - Slow End",
group = "Moving Average Inputs")
amafl = input.int(2, title="* Adaptive Moving Average (AMA) Only - Fast", group =
"Moving Average Inputs")
amasl = input.int(30, title="* Adaptive Moving Average (AMA) Only - Slow", group =
"Moving Average Inputs")

haclose = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period,


close)
haopen = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period,
open)
hahigh = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period,
high)
halow = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period,
low)
hamedian = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period,
hl2)
hatypical = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period,
hlc3)
haweighted = request.security(ticker.heikinashi(syminfo.tickerid),
timeframe.period, hlcc4)
haaverage = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period,
ohlc4)

float src = switch srcoption


"Close" => loxxexpandedsourcetypes.rclose()
"Open" => loxxexpandedsourcetypes.ropen()
"High" => loxxexpandedsourcetypes.rhigh()
"Low" => loxxexpandedsourcetypes.rlow()
"Median" => loxxexpandedsourcetypes.rmedian()
"Typical" => loxxexpandedsourcetypes.rtypical()
"Weighted" => loxxexpandedsourcetypes.rweighted()
"Average" => loxxexpandedsourcetypes.raverage()
"Average Median Body" => loxxexpandedsourcetypes.ravemedbody()
"Trend Biased" => loxxexpandedsourcetypes.rtrendb()
"Trend Biased (Extreme)" => loxxexpandedsourcetypes.rtrendbext()
"HA Close" => loxxexpandedsourcetypes.haclose(haclose)
"HA Open" => loxxexpandedsourcetypes.haopen(haopen)
"HA High" => loxxexpandedsourcetypes.hahigh(hahigh)
"HA Low" => loxxexpandedsourcetypes.halow(halow)
"HA Median" => loxxexpandedsourcetypes.hamedian(hamedian)
"HA Typical" => loxxexpandedsourcetypes.hatypical(hatypical)
"HA Weighted" => loxxexpandedsourcetypes.haweighted(haweighted)
"HA Average" => loxxexpandedsourcetypes.haaverage(haaverage)
"HA Average Median Body" => loxxexpandedsourcetypes.haavemedbody(haclose,
haopen)
"HA Trend Biased" => loxxexpandedsourcetypes.hatrendb(haclose, haopen,
hahigh, halow)
"HA Trend Biased (Extreme)" => loxxexpandedsourcetypes.hatrendbext(haclose,
haopen, hahigh, halow)
"HAB Close" => loxxexpandedsourcetypes.habclose(smthtype, amafl, amasl, kfl,
ksl)
"HAB Open" => loxxexpandedsourcetypes.habopen(smthtype, amafl, amasl, kfl,
ksl)
"HAB High" => loxxexpandedsourcetypes.habhigh(smthtype, amafl, amasl, kfl,
ksl)
"HAB Low" => loxxexpandedsourcetypes.hablow(smthtype, amafl, amasl, kfl, ksl)
"HAB Median" => loxxexpandedsourcetypes.habmedian(smthtype, amafl, amasl,
kfl, ksl)
"HAB Typical" => loxxexpandedsourcetypes.habtypical(smthtype, amafl, amasl,
kfl, ksl)
"HAB Weighted" => loxxexpandedsourcetypes.habweighted(smthtype, amafl, amasl,
kfl, ksl)
"HAB Average" => loxxexpandedsourcetypes.habaverage(smthtype, amafl, amasl,
kfl, ksl)
"HAB Average Median Body" => loxxexpandedsourcetypes.habavemedbody(smthtype,
amafl, amasl, kfl, ksl)
"HAB Trend Biased" => loxxexpandedsourcetypes.habtrendb(smthtype, amafl,
amasl, kfl, ksl)
"HAB Trend Biased (Extreme)" =>
loxxexpandedsourcetypes.habtrendbext(smthtype, amafl, amasl, kfl, ksl)
=> haclose

multout = mult/100.0
atr = ta.atr(atrper)

val = gdema(src, per, vf)


stepSize = multout * atr

_diff = val - nz(val[1])

val := nz(val[1]) + ((_diff < stepSize and _diff > -stepSize) ? 0 : (_diff /
stepSize) * stepSize)

goLong_pre = ta.crossover(val, val[1])


goShort_pre = ta.crossunder(val, val[1])

contSwitch = 0
contSwitch := nz(contSwitch[1])
contSwitch := goLong_pre ? 1 : goShort_pre ? -1 : contSwitch

goLong = goLong_pre and ta.change(contSwitch)


goShort = goShort_pre and ta.change(contSwitch)

plot(val,"SGDDEMA", color = contSwitch == 1 ? greencolor : redcolor, linewidth =


3)

barcolor(colorbars ? contSwitch == 1 ? greencolor : redcolor : na)

plotshape(showSigs and goLong, title = "Sell", color = color.rgb(252, 75, 228),


textcolor = color.rgb(251, 73, 239), text = "Sell Target", style =
shape.triangleup, location = location.belowbar, size = size.tiny)
plotshape(showSigs and goShort, title = "Buy", color = color.rgb(108, 251, 64),
textcolor = color.rgb(89, 251, 64), text = "Buy Target", style =
shape.triangledown, location = location.abovebar, size = size.tiny)

alertcondition(goLong, title = "Long", message = "Step Generalized Double DEMA (ATR


based) [Loxx]: Uptrend\nSymbol: {{ticker}}\nPrice: {{close}}")
alertcondition(goShort, title = "Short", message = "Step Generalized Double DEMA
(ATR based) [Loxx]]: Downtrend\nSymbol: {{ticker}}\nPrice: {{close}}")

You might also like