OPEN-SOURCE SCRIPT

Long + Short + Signal

77
//version=6
indicator("Long + Short + Signal", overlay=true)
Buy = input.bool(false, "Buy ")
Sell = input.bool(false, "Sell ")
// ================= INPUTS =================
// ---- LONG ----
periodK_Long = 50
smoothK_Long = 3
periodD_Long = 3

// ---- SHORT ----
periodK_Short = 14
smoothK_Short = 3
periodD_Short = 3

// ================= FUNCTIONS =================
f_stoch_long(tf) =>
k = request.security(syminfo.tickerid, tf,
ta.sma(ta.stoch(close, high, low, periodK_Long), smoothK_Long))
d = request.security(syminfo.tickerid, tf,
ta.sma(k, periodD_Long))
k > 50 and d > 50 ? color.green : k < 40 and d < 40 ? color.red : color.gray

f_stoch_short(tf) =>
k = request.security(syminfo.tickerid, tf,
ta.sma(ta.stoch(close, high, low, periodK_Short), smoothK_Short))
d = request.security(syminfo.tickerid, tf,
ta.sma(k, periodD_Short))
k > 60 and d > 60 ? color.green : k < 40 and d < 40 ? color.red : color.gray

// ================= TABLE =================
// 2 rows × 8 columns
var table t = table.new(position.top_right, 8, 2, border_width=3)

if barstate.islast
// ===== HEADINGS (BIGGER) =====
table.cell(
t, 0, 0, "Short",
bgcolor=color.black,
text_color=color.white,
text_size=size.large,
text_halign=text.align_center
)

table.cell(
t, 0, 1, "Long",
bgcolor=color.black,
text_color=color.white,
text_size=size.large,
text_halign=text.align_center
)

// ===== LONG ROW =====
table.cell(t, 1, 0, "1m", bgcolor=f_stoch_short("1"), text_color=color.white, text_size=size.normal)
table.cell(t, 2, 0, "5m", bgcolor=f_stoch_short("5"), text_color=color.white, text_size=size.normal)
table.cell(t, 3, 0, "15m", bgcolor=f_stoch_short("15"), text_color=color.white, text_size=size.normal)
table.cell(t, 4, 0, "60m", bgcolor=f_stoch_short("60"), text_color=color.white, text_size=size.normal)
table.cell(t, 5, 0, "D", bgcolor=f_stoch_short("D"), text_color=color.white, text_size=size.normal)
table.cell(t, 6, 0, "W", bgcolor=f_stoch_short("W"), text_color=color.white, text_size=size.normal)
table.cell(t, 7, 0, "M", bgcolor=f_stoch_short("M"), text_color=color.white, text_size=size.normal)

// ===== SHORT ROW =====
table.cell(t, 1, 1, "1m", bgcolor=f_stoch_long("1"), text_color=color.white, text_size=size.normal)
table.cell(t, 2, 1, "5m", bgcolor=f_stoch_long("5"), text_color=color.white, text_size=size.normal)
table.cell(t, 3, 1, "15m", bgcolor=f_stoch_long("15"), text_color=color.white, text_size=size.normal)
table.cell(t, 4, 1, "60m", bgcolor=f_stoch_long("60"), text_color=color.white, text_size=size.normal)
table.cell(t, 5, 1, "D", bgcolor=f_stoch_long("D"), text_color=color.white, text_size=size.normal)
table.cell(t, 6, 1, "W", bgcolor=f_stoch_long("W"), text_color=color.white, text_size=size.normal)
table.cell(t, 7, 1, "M", bgcolor=f_stoch_long("M"), text_color=color.white, text_size=size.normal)



lengthK = 14
lengthD = 3
lengthEMA = 3

emaEma(source, length) => ta.ema(ta.ema(source, length), length)

highestHigh = ta.highest(lengthK)
lowestLow = ta.lowest(lengthK)
highestLowestRange = highestHigh - lowestLow
relativeRange = close - (highestHigh + lowestLow) / 2
smi = 200 * (emaEma(relativeRange, lengthD) / emaEma(highestLowestRange, lengthD))

// ===== BUY / SELL CONDITIONS =====
buyEntry = ta.crossover(smi, 50)
buyExit = ta.crossunder(smi, 50)

sellEntry = ta.crossunder(smi, -40)
sellExit = ta.crossover(smi, -40)

// ===== PLOTS =====
plotshape( Buy and buyEntry, title="BUY", style=shape.triangleup,location=location.belowbar, color=color.green,size=size.small, text="BUY")

plotshape( Buy and buyExit, title="EXIT BUY", style=shape.triangledown, location=location.abovebar, color=color.lime,size=size.tiny, text="EXIT")

plotshape( Sell and sellEntry,title="SELL", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="SELL")

plotshape( Sell and sellExit, title="EXIT SELL", style=shape.triangleup, location=location.belowbar, color=color.orange, size=size.tiny, text="EXIT")

shortest = ta.ema(close, 9)
shortEMA = ta.ema(close, 21)
longer = ta.ema(close, 50)
longest = ta.ema(close, 200)

plot(shortest, color=color.red, title="EMA 9")
plot(shortEMA, color=color.orange, title="EMA 21")
plot(longer, color=color.aqua, title="EMA 50")
plot(longest, color=color.blue, title="EMA 200")

Pernyataan Penyangkalan

Informasi dan publikasi ini tidak dimaksudkan, dan bukan merupakan, saran atau rekomendasi keuangan, investasi, trading, atau jenis lainnya yang diberikan atau didukung oleh TradingView. Baca selengkapnya di Ketentuan Penggunaan.