
Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada kombinasi bentuk harga dan indikator teknis. Hal ini terutama dilakukan dengan mengidentifikasi terobosan dari bentuk segitiga, dan digabungkan dengan konfirmasi dinamika dari indikator RSI. Strategi ini menggunakan metode regresi linier untuk membangun garis tren ke atas dan ke bawah, untuk menentukan sinyal perdagangan melalui terobosan harga dan posisi RSI, yang memungkinkan kombinasi organik dari analisis bentuk dengan analisis dinamika.
Logika inti dari strategi ini terdiri dari dua bagian utama: pengenalan bentuk segitiga dan konfirmasi dinamika RSI. Pertama, menggunakan metode regresi linier untuk menghitung tinggi dan rendah dari N siklus terakhir, membangun garis tren ke atas dan ke bawah untuk membentuk segitiga. Ketika harga menembus garis tren ke atas dan RSI lebih besar dari 50, memicu sinyal multi; Ketika harga menembus garis tren ke bawah dan RSI lebih kecil dari 50, memicu sinyal kosong.
Triangle Breakthrough Combination RSI Dynamic Strategy adalah sistem perdagangan kuantitatif yang terstruktur, logis dan jelas. Melalui mekanisme konfirmasi ganda bentuk dan dinamika, meningkatkan keandalan sinyal perdagangan secara efektif. Meskipun ada risiko tertentu, strategi ini memiliki nilai praktik yang baik melalui pengoptimalan parameter yang masuk akal dan langkah-langkah kontrol risiko.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Triangle Breakout with RSI", overlay=true)
// Input parameters
len = input.int(15, title="Triangle Length")
rsiPeriod = input.int(14, title="RSI Period")
rsiThresholdBuy = input.int(50, title="RSI Threshold for Buy")
rsiThresholdSell = input.int(50, title="RSI Threshold for Sell")
// Calculate the RSI
rsi = ta.rsi(close, rsiPeriod)
// Calculate highest high and lowest low for triangle pattern
highLevel = ta.highest(high, len)
lowLevel = ta.lowest(low, len)
// Create trendlines for the triangle
upperTrend = ta.linreg(high, len, 0)
lowerTrend = ta.linreg(low, len, 0)
// Plot the trendlines on the chart
plot(upperTrend, color=color.green, linewidth=2, title="Upper Trendline")
plot(lowerTrend, color=color.red, linewidth=2, title="Lower Trendline")
// Detect breakout conditions
breakoutUp = close > upperTrend
breakoutDown = close < lowerTrend
// Confirm breakout with RSI
buyCondition = breakoutUp and rsi > rsiThresholdBuy
sellCondition = breakoutDown and rsi < rsiThresholdSell
// Plot breakout signals with confirmation from RSI
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, size=size.small)
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small)
// Strategy: Buy when triangle breaks upwards and RSI is above 50; Sell when triangle breaks downwards and RSI is below 50
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Plot RSI on the bottom pane
hline(50, "RSI 50 Level", color=color.gray, linestyle=hline.style_dotted)
plot(rsi, color=color.blue, linewidth=2, title="RSI")