Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan corak harga dan penunjuk teknikal. Ia terutamanya mengenal pasti penembusan corak segitiga dan mengesahkan perdagangan menggunakan momentum RSI. Strategi ini menggunakan regresi linear untuk membina garis trend atas dan bawah, menentukan isyarat perdagangan melalui penembusan harga dan kedudukan RSI, mencapai gabungan organik analisis corak dan momentum.
Logik teras terdiri daripada dua komponen utama: pengiktirafan corak segitiga dan pengesahan momentum RSI. Pertama, ia menggunakan regresi linear untuk mengira tinggi dan rendah N-periode baru-baru ini, membina garis trend atas dan bawah untuk membentuk segitiga. Apabila harga pecah di atas garis trend atas dan RSI di atas 50, ia mencetuskan isyarat beli; apabila harga pecah di bawah garis trend bawah dan RSI di bawah 50, ia mencetuskan isyarat jual. Strategi ini mempunyai parameter yang boleh disesuaikan untuk panjang segitiga dan tempoh RSI, memberikan kesesuaian yang kuat.
Triangle Breakout dengan RSI Momentum Strategy adalah sistem perdagangan kuantitatif yang lengkap dan logiknya jelas. Melalui mekanisme pengesahan berganda corak dan momentum, ia secara berkesan meningkatkan kebolehpercayaan isyarat perdagangan. Walaupun terdapat risiko tertentu, strategi ini mempunyai nilai praktikal yang baik melalui pengoptimuman parameter yang munasabah dan langkah kawalan 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")