0% found this document useful (0 votes)
2K views3 pages

EasyAlgo V20

Uploaded by

h76bfj6yrq
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)
2K views3 pages

EasyAlgo V20

Uploaded by

h76bfj6yrq
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

//@version=5

indicator("EasyAlgo 2.0", overlay=true, precision=0, explicit_plot_zorder=true,


max_labels_count=500)

//---------------- EasyAlgo 2.0 | https://www.easyalgo.io --------------------//


// Get user input
emaCloud = input.bool(true, "EMA Cloud?")
volCloud = input.bool(false, "Volatility Cloud?")
volBands = input.bool(false, "Volatility Bands?")
volSen = input.float(1.5, "Volatility Sensitivity (1-5 (Half Allowed))", 0.5,
5, 0.5)
signals = input.bool(true, "Buy/Sell Signals?")
levels = input.bool(false, "TP/SL Levels?")
suppRes = input.bool(false, "Support/Resistance?")
atrLen = input.int(14, "ATR Length", 1)
atrRisk = input.int(2, "ATR/ Risk", 1)
candlesT = input.bool(true, "Trending Candles")
volBandsSen = input.int(5, "Vol Bands Sensitivity (Default: 5.0)", 1)
useEma = input.bool(true, "Use Exponential MA?")
barsLR = input.int(35, "S/R Looking Period", 1)
// Get Components
ema1 = ta.ema(ohlc4, int(5*volSen*2))
ema2 = ta.ema(ohlc4, int(9*volSen*2))
ema3 = ta.ema(ohlc4, int(13*volSen*2))
ema4 = ta.ema(ohlc4, int(34*volSen*2))
ema5 = ta.ema(ohlc4, int(50*volSen*2))
f_kc(src, len, mult) =>
float basis = useEma ? ta.ema(src, len) : ta.sma(src, len)
float span = useEma ? ta.ema(ta.tr, len) : ta.sma(ta.tr, len)
[basis + span * mult, basis - span * mult]
[upperKC1, lowerKC1] = f_kc(close, 35, 0.5236 * volBandsSen)
[upperKC2, lowerKC2] = f_kc(close, 35, 0.6854 * volBandsSen)
[upperKC3, lowerKC3] = f_kc(close, 35, 0.8472 * volBandsSen)
bull = ema3 >= ema3[1] and ema1 >= ema2 and ema1[1] < ema2[1]
bear = ema3 <= ema3[1] and ema1 <= ema2 and ema1[1] > ema2[1]
trigger = bull ? 1 : 0
atrBand = ta.atr(atrLen) * atrRisk
atrStop = trigger == 1 ? low - atrBand : high + atrBand
barsL = barsLR
barsR = barsLR
pivotHigh = fixnan(ta.pivothigh(barsL, barsR)[1])
pivotLow = fixnan(ta.pivotlow(barsL, barsR)[1])
// Colors
green = #00CC00 , green5 = volCloud ? color.new(#00CC00, 95) :
na, green12_5 = volCloud ? color.new(#00CC00, 87.5) : na, green20 = emaCloud ?
color.new(#00CC00, 80) : na
red = #CC0000 , red5 = volCloud ? color.new(#CC0000, 95) :
na, red12_5 = volCloud ? color.new(#CC0000, 87.5) : na, red20 = emaCloud?
color.new(#CC0000, 80) : na
orange = #FF9800 , orange50 = emaCloud ? color.new(orange, 50) :
na
gray = volBands ? #787B86 : na, gray40 = volBands ? color.new(gray, 60) : na,
gray5 = volBands ? color.new(gray, 95) : na, gray20 = volBands ?
color.new(gray, 80) : na
// Plots
p1 = plot(ema1, "", orange50, editable=false)
p2 = plot(ema2, "", orange50, editable=false)
p3 = plot(ema3, "", orange50, editable=false)
p4 = plot(ema4, "", na, editable=false)
p5 = plot(ema5, "", na, editable=false)
fill(p4, p5, ema4 >= ema5 ? green5 : red5)
fill(p3, p4, ema3 >= ema4 ? green12_5 : red12_5)
fill(p2, p3, ema3 >= ema3[1] ? green20 : red20)
fill(p1, p2, ema1 >= ema3 ? green20 : red20)
barcolor(candlesT ? (ema3 >= ema3[1] ? green : red) : na)
b1 = plot(upperKC1, "", gray40, editable=false)
b2 = plot(upperKC2, "", gray40, editable=false)
b3 = plot(upperKC3, "", gray40, editable=false)
b4 = plot(lowerKC1, "", gray40, editable=false)
b5 = plot(lowerKC2, "", gray40, editable=false)
b6 = plot(lowerKC3, "", gray40, editable=false)
fill(b1, b2, gray5)
fill(b2, b3, gray20)
fill(b4, b5, gray5)
fill(b5, b6, gray20)
plot(pivotHigh, "Resistance", not suppRes or ta.change(pivotHigh) ? na : red, 3,
offset=-(barsR + 1), editable=false)
plot(pivotLow, "Support", not suppRes or ta.change(pivotLow) ? na : green, 3,
offset=-(barsR + 1), editable=false)
y1 = low - (ta.atr(30) * 1.6)
y2 = high + (ta.atr(30) * 1.6)
buy = signals and bull ? label.new(bar_index, y1, ema4 >= ema5 ? "FIRM BUY" :
"BUY", xloc.bar_index, yloc.price, #00CC00, label.style_label_up, #141923,
size.normal) : na
sell = signals and bear ? label.new(bar_index, y2, ema4 <= ema5 ? "FIRM SELL" :
"SELL", xloc.bar_index, yloc.price, #CC0000, label.style_label_down, color.white,
size.normal) : na
lastTrade(src) => ta.valuewhen((ema3 >= ema3[1] and ema1 >= ema2 and ema1[1] <
ema2[1]) or (ema3 <= ema3[1] and ema1 <= ema2 and ema1[1] > ema2[1]), src, 0)
entry = levels ? label.new(time, close, "ENTRY " + str.tostring(lastTrade(close),
"#.##"), xloc.bar_time, yloc.price, color.gray, label.style_label_left,
color.white, size.normal) : na
label.set_y(entry, lastTrade(close))
label.delete(entry[1])
stop_y = lastTrade(atrStop)
stop = levels ? label.new(time, close, "SL " + str.tostring(stop_y, "#.##"),
xloc.bar_time, yloc.price, #CC0000, label.style_label_left, color.white,
size.normal) : na
label.set_y(stop, stop_y)
label.delete(stop[1])
tp1_y = (lastTrade(close)-lastTrade(atrStop))*1 + lastTrade(close)
tp1 = levels ? label.new(time, close, "1:1 TP " + str.tostring(tp1_y, "#.##"),
xloc.bar_time, yloc.price, #00CC00, label.style_label_left, color.white,
size.normal) : na
label.set_y(tp1, tp1_y)
label.delete(tp1[1])
tp2_y = (lastTrade(close)-lastTrade(atrStop))*2 + lastTrade(close)
tp2 = levels ? label.new(time, close, "2:1 TP " + str.tostring(tp2_y, "#.##"),
xloc.bar_time, yloc.price, #00CC00, label.style_label_left, color.white,
size.normal) : na
label.set_y(tp2, tp2_y)
label.delete(tp2[1])
tp3_y = (lastTrade(close)-lastTrade(atrStop))*3 + lastTrade(close)
tp3 = levels ? label.new(time, close, "3:1 TP " + str.tostring(tp3_y, "#.##"),
xloc.bar_time, yloc.price, #00CC00, label.style_label_left, color.white,
size.normal) : na
label.set_y(tp3, tp3_y)
label.delete(tp3[1])
// Alerts
alertcondition(bull, "Buy", "EasyAlgo 2.0\nBuy {{ticker}} @ {{close}}")
alertcondition(bull and ema4 >= ema5, "Firm Buy", "EasyAlgo 2.0\nFirm Buy
{{ticker}} @ {{close}}")
alertcondition(bear and ema4 <= ema5, "Firm Sell", "EasyAlgo 2.0\nFirm Sell
{{ticker}} @ {{close}}")
alertcondition(bear, "Sell", "EasyAlgo 2.0\nSell {{ticker}} @ {{close}}")

You might also like