//@version=5 indicator("Auto USDT vs USDC Spread", shorttitle="USDC Spread", overlay=false) // 1. ์๋ ์ค์ ์ต์
(๊ธฐ๋ณธ๊ฐ์ ๋น์๋๋ฉด ์๋ ํ์ ๋ชจ๋๋ก ์๋) manualSymbol = input.string("", title="์๋ ์
๋ ฅ (๋น์๋๋ฉด ์๋ ๋ณํ)") // 2. ํ์ฌ ์ฐจํธ์ ํฐ์ปค ์ด๋ฆ์์ "USDT"๋ฅผ "USDC"๋ก ์๋ ๊ธ์ ์นํ // ์: "BINANCE:SOLUSDT.P" -> "BINANCE:SOLUSDC.P" autoTargetSymbol = str.replace(syminfo.tickerid, "USDT", "USDC") // 3. ์๋ ์
๋ ฅ๊ฐ์ด ์์ผ๋ฉด ๊ทธ๊ฑธ ์ฐ๊ณ , ์์ผ๋ฉด ์๋ ์์ฑ๋ ์ฌ๋ณผ์ ์ฌ์ฉ targetSymbol = manualSymbol == "" ? autoTargetSymbol : manualSymbol // 4. ํ๊ฒ ์ฌ๋ณผ ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ // (์ฃผ์: USDC ํ์ด๊ฐ ์์ฅ๋์ง ์์ ์ฝ์ธ์ผ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋์ง ์๋๋ก ignore_invalid_symbol=true ์ค์ ) targetPrice = request.security(targetSymbol, timeframe.period, close, ignore_invalid_symbol=true) currentPrice = close spread = currentPrice - targetPrice // 5. ์์ ์ง์ (์์: ์ด๋ก, ์์: ๋นจ๊ฐ) spreadColor = spread >= 0 ? color.new(color.green, 40) : color.new(color.red, 40) lineColor = spread >= 0 ? color.green : color.red // 6. ์ฐจํธ ๊ทธ๋ฆฌ๊ธฐ hline(0, title="Zero Line", color=color.gray, linestyle=hline.style_dashed) plot(spread, title="Spread Histogram", style=plot.style_columns, color=spreadColor) plot(spread, title="Spread Line", color=lineColor, linewidth=1) // 7. ํ์ฌ ๋น๊ต ์ค์ธ ํฐ์ปค๋ฅผ ํ๋ฉด ์ฐ์ธก ํ๋จ์ ํ์ (ํธ์์ฑ ๊ธฐ๋ฅ) var table infoTable = table.new(position.bottom_right, 1, 1) if barstate.islast ย ย // USDC ํ์ด ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์๋ด ๋ฌธ๊ตฌ ์ถ๋ ฅ ย ย display_text = "๋น๊ต ๋์: " + targetSymbol + (na(targetPrice) ? "\n(USDC ํ์ด ์์)" : "") ย ย table.cell(infoTable, 0, 0, display_text, text_color=color.white, bgcolor=color.new(color.black, 60), text_size=size.small) |
์๋ฐ๋๋
ETHUSDT.P ๋ณด๊ณ ์์๋ ์๋์ผ๋ก ETHUSDC.P ์ฐพ์์ ๊ฐ๊ฒฉ์ฐจ์ด ๋ณด์ฌ์ฃผ๋ ์คํฌ๋ฆฝํธ์
๊ผฌ๋ฆฌ ๋ค๋ฅธ๊ฒ๋๋ฌธ์ ์ฐจํธ๋ USDT์ ๊ทธ๋ ค์ผ๊ฒ ๊ณ ๋งค๋งค๋ USDC๋กํ ๋ ๊ฐ๊ฒฉ ๋ค๋ฅธ๊ฑฐ ๊ณ์ฐํ๊ธฐ ๊ท์ฐฎ์์ ๋ง๋ค์ด๋ด
์ค ์ ๊ธฐํด - dc App
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๋๋จํฉ๋๋ค