OPEN-SOURCE SCRIPT

RSI 10 mã thể hiện 4 khung thời gian

//version=6
indicator("Multi-Timeframe RSI with Divergence Alerts in Table", overlay=true)

// Inputs
rsiLength = input.int(14, title="RSI Length")
source = input.source(close, title="Source")

// Inputs for custom symbols (10 pairs)
symbol1 = input.string("BTC/USDT", title="Symbol 1")
symbol2 = input.string("ETH/USDT", title="Symbol 2")
symbol3 = input.string("LTC/USDT", title="Symbol 3")
symbol4 = input.string("XRP/USDT", title="Symbol 4")
symbol5 = input.string("ADA/USDT", title="Symbol 5")
symbol6 = input.string("SOL/USDT", title="Symbol 6")
symbol7 = input.string("DOGE/USDT", title="Symbol 7")
symbol8 = input.string("MATIC/USDT", title="Symbol 8")
symbol9 = input.string("BNB/USDT", title="Symbol 9")
symbol10 = input.string("AVAX/USDT", title="Symbol 10")

// RSI Calculations for custom symbols
rsi(symbol, timeframe) =>
request.security(symbol, timeframe, ta.rsi(source, rsiLength))

// RSI Calculations for timeframes (H1, H4, D1, W) for the custom symbols
rsi1H1 = rsi(symbol1, "60")
rsi2H1 = rsi(symbol2, "60")
rsi3H1 = rsi(symbol3, "60")
rsi4H1 = rsi(symbol4, "60")
rsi5H1 = rsi(symbol5, "60")
rsi6H1 = rsi(symbol6, "60")
rsi7H1 = rsi(symbol7, "60")
rsi8H1 = rsi(symbol8, "60")
rsi9H1 = rsi(symbol9, "60")
rsi10H1 = rsi(symbol10, "60")

rsi1H4 = rsi(symbol1, "240")
rsi2H4 = rsi(symbol2, "240")
rsi3H4 = rsi(symbol3, "240")
rsi4H4 = rsi(symbol4, "240")
rsi5H4 = rsi(symbol5, "240")
rsi6H4 = rsi(symbol6, "240")
rsi7H4 = rsi(symbol7, "240")
rsi8H4 = rsi(symbol8, "240")
rsi9H4 = rsi(symbol9, "240")
rsi10H4 = rsi(symbol10, "240")

rsi1D1 = rsi(symbol1, "D")
rsi2D1 = rsi(symbol2, "D")
rsi3D1 = rsi(symbol3, "D")
rsi4D1 = rsi(symbol4, "D")
rsi5D1 = rsi(symbol5, "D")
rsi6D1 = rsi(symbol6, "D")
rsi7D1 = rsi(symbol7, "D")
rsi8D1 = rsi(symbol8, "D")
rsi9D1 = rsi(symbol9, "D")
rsi10D1 = rsi(symbol10, "D")

rsi1W = rsi(symbol1, "W")
rsi2W = rsi(symbol2, "W")
rsi3W = rsi(symbol3, "W")
rsi4W = rsi(symbol4, "W")
rsi5W = rsi(symbol5, "W")
rsi6W = rsi(symbol6, "W")
rsi7W = rsi(symbol7, "W")
rsi8W = rsi(symbol8, "W")
rsi9W = rsi(symbol9, "W")
rsi10W = rsi(symbol10, "W")

// Alert levels
upperLevel = 80
lowerLevel = 30

// Table creation (adjusted size to fit 10 symbols and 4 timeframes)
var table rsiTable = table.new(position.top_right, 15, 5, border_width=1) // Added 10 rows for symbols, and 4 columns for timeframes

// Functions for RSI status and color
fun_rsiStatus(rsiValue) =>
if (rsiValue > upperLevel)
"Overbought"
else if (rsiValue < lowerLevel)
"Oversold"
else
"Neutral"

fun_rsiColor(rsiValue) =>
if (rsiValue > upperLevel)
color.new(color.red, 0)
else if (rsiValue < lowerLevel)
color.new(color.green, 0)
else
color.new(color.gray, 50)

fun_textColor() =>
color.new(color.white, 0)

// Update Table headers
table.cell(rsiTable, 0, 0, "Symbol", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 1, "H1 RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 2, "H4 RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 3, "D1 RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))
table.cell(rsiTable, 0, 4, "Weekly RSI", text_color=fun_textColor(), bgcolor=color.new(color.gray, 70))

// Display RSI for each symbol and timeframe
// Symbol 1
table.cell(rsiTable, 1, 0, symbol1, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 1, 1, str.tostring(rsi1H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1H1))
table.cell(rsiTable, 1, 2, str.tostring(rsi1H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1H4))
table.cell(rsiTable, 1, 3, str.tostring(rsi1D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1D1))
table.cell(rsiTable, 1, 4, str.tostring(rsi1W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi1W))

// Symbol 2
table.cell(rsiTable, 2, 0, symbol2, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 2, 1, str.tostring(rsi2H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2H1))
table.cell(rsiTable, 2, 2, str.tostring(rsi2H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2H4))
table.cell(rsiTable, 2, 3, str.tostring(rsi2D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2D1))
table.cell(rsiTable, 2, 4, str.tostring(rsi2W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi2W))

// Repeat for other symbols (3 to 10)...
// Symbol 3
table.cell(rsiTable, 3, 0, symbol3, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 3, 1, str.tostring(rsi3H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3H1))
table.cell(rsiTable, 3, 2, str.tostring(rsi3H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3H4))
table.cell(rsiTable, 3, 3, str.tostring(rsi3D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3D1))
table.cell(rsiTable, 3, 4, str.tostring(rsi3W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi3W))

// Symbol 4
table.cell(rsiTable, 4, 0, symbol4, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 4, 1, str.tostring(rsi4H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4H1))
table.cell(rsiTable, 4, 2, str.tostring(rsi4H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4H4))
table.cell(rsiTable, 4, 3, str.tostring(rsi4D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4D1))
table.cell(rsiTable, 4, 4, str.tostring(rsi4W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi4W))

// Symbol 5
table.cell(rsiTable, 5, 0, symbol5, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 5, 1, str.tostring(rsi5H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5H1))
table.cell(rsiTable, 5, 2, str.tostring(rsi5H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5H4))
table.cell(rsiTable, 5, 3, str.tostring(rsi5D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5D1))
table.cell(rsiTable, 5, 4, str.tostring(rsi5W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi5W))

// Symbol 6
table.cell(rsiTable, 6, 0, symbol6, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 6, 1, str.tostring(rsi6H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6H1))
table.cell(rsiTable, 6, 2, str.tostring(rsi6H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6H4))
table.cell(rsiTable, 6, 3, str.tostring(rsi6D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6D1))
table.cell(rsiTable, 6, 4, str.tostring(rsi6W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi6W))

// Symbol 7
table.cell(rsiTable, 7, 0, symbol7, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 7, 1, str.tostring(rsi7H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7H1))
table.cell(rsiTable, 7, 2, str.tostring(rsi7H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7H4))
table.cell(rsiTable, 7, 3, str.tostring(rsi7D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7D1))
table.cell(rsiTable, 7, 4, str.tostring(rsi7W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi7W))

// Symbol 8
table.cell(rsiTable, 8, 0, symbol8, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 8, 1, str.tostring(rsi8H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8H1))
table.cell(rsiTable, 8, 2, str.tostring(rsi8H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8H4))
table.cell(rsiTable, 8, 3, str.tostring(rsi8D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8D1))
table.cell(rsiTable, 8, 4, str.tostring(rsi8W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi8W))

// Symbol 9
table.cell(rsiTable, 9, 0, symbol9, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 9, 1, str.tostring(rsi9H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9H1))
table.cell(rsiTable, 9, 2, str.tostring(rsi9H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9H4))
table.cell(rsiTable, 9, 3, str.tostring(rsi9D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9D1))
table.cell(rsiTable, 9, 4, str.tostring(rsi9W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi9W))

// Symbol 10
table.cell(rsiTable, 10, 0, symbol10, text_color=fun_textColor(), bgcolor=color.new(color.gray, 50))
table.cell(rsiTable, 10, 1, str.tostring(rsi10H1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10H1))
table.cell(rsiTable, 10, 2, str.tostring(rsi10H4, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10H4))
table.cell(rsiTable, 10, 3, str.tostring(rsi10D1, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10D1))
table.cell(rsiTable, 10, 4, str.tostring(rsi10W, "#.##"), text_color=color.new(color.white, 0), bgcolor=fun_rsiColor(rsi10W))
Candlestick analysisChart patternsCycles

Skrypt open-source

W prawdziwym duchu TradingView autor tego skryptu opublikował go jako open source, aby inwestorzy mogli go zrozumieć i zweryfikować. Pozdrowienia dla autora! Możesz go używać bezpłatnie, ale ponowne użycie tego kodu w publikacji podlega Zasadom Regulaminu. Możesz go oznaczyć jako ulubione, aby użyć go na wykresie.

Chcesz użyć tego skryptu na wykresie?

Wyłączenie odpowiedzialności