You are on page 1of 4

//@version=4

study(title="MACD", shorttitle="MACD", resolution="")


// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval
= 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool,
defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool,
defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd,
signal_length)
hist = macd - signal
plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ?
(hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ?
col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
========================================================
//@version=4
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Ulcer Index script may be freely distributed under the MIT license.
study("Ulcer Index")

length = input(title="Length", type=input.integer, defval=14)


smoothLength = input(title="Smoothing Length", type=input.integer, defval=14)
breakout = input(title="Breakout Level", type=input.float, step=0.1, defval=1.5)
signalType = input(title="Signal Smoothing Type", defval="SMA",
options=["EMA", "SMA"])
signalLength = input(title="Signal Smoothing Length", type=input.integer,
defval=52)
src = input(title="Source", type=input.source, defval=close)
showSignal = input(title="Show Signal ?", type=input.bool, defval=true)
highlightCrossovers = input(title="Highlight Signal Crossovers ?",
type=input.bool, defval=true)
applyRibbonFilling = input(title="Apply Ribbon Filling ?", type=input.bool,
defval=true)

highest = highest(src, length)


drawdown = 100 * (src - highest) / highest
ulcer = sqrt(sma(pow(drawdown, 2), smoothLength))
signal = signalType == "SMA" ? sma(ulcer, signalLength) : ema(ulcer,
signalLength)
trendColor = ulcer > signal ? #0ebb23 : color.red
ulcerColor = applyRibbonFilling ? trendColor : (ulcer >= ulcer[1] ? #0ebb23 :
color.red)
signalColor = applyRibbonFilling ? trendColor : #1155cc

ulcerPlot = plot(ulcer, title="Ulcer", linewidth=2, color=ulcerColor, transp=0)


signalPlot = plot(showSignal ? signal : na, title="Signal", color=signalColor,
transp=0)

ribbonFillColor = applyRibbonFilling ? trendColor : na


fill(ulcerPlot, signalPlot, title="Ribbon", color=ribbonFillColor, transp=70)

plotshape(crossover(ulcer, signal) and highlightCrossovers ? signal : na,


title="Crossover", location=location.absolute, style=shape.circle, size=size.tiny,
color=color.green, transp=0)
plotshape(crossunder(ulcer, signal) and highlightCrossovers ? signal : na,
title="Crossunder", location=location.absolute, style=shape.circle, size=size.tiny,
color=color.red, transp=0)

hline(breakout, title="Breakout Level", linestyle=hline.style_dotted,


linewidth=2)
breakoutFillColor = ulcer > breakout ? #ff9800 : na
bgcolor(breakoutFillColor, transp=90)
================================================================
study(shorttitle="BB", title="Bollinger Bands", overlay=true, resolution="")
length = input(50, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#872323, offset = offset)
p1 = plot(upper, "Upper", color=color.teal, offset = offset)
p2 = plot(lower, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=#198787, transp=95)

//@version=4
//study(title="Moving Average", shorttitle="MA", overlay=true, resolution="")
len = input(200, minval=1, title="Length")
src2 = input(close, title="Source")
offset2 = input(title="Offset", type=input.integer, defval=0, minval=-500,
maxval=500)
out = sma(src2, len)
plot(out, color=color.blue, title="MA", offset=offset2)

len3 = input(20, minval=1, title="Length")


src3 = input(close, title="Source")
offset3 = input(title="Offset", type=input.integer, defval=0, minval=-500,
maxval=500)
out3 = ema(src3, len3)
plot(out3, title="EMA", color=color.black, offset=offset)

You might also like