Strategi ini adalah sistem dagangan intraday yang menggabungkan pelbagai penunjuk teknikal, terutamanya menggunakan persilangan EMA, keadaan overbought / oversold RSI, pengesahan jumlah, Bollinger Bands, dan corak candlestick untuk menentukan titik masuk.
Strategi ini berdasarkan prinsip-prinsip teras berikut:
EMA Crossover: Menggunakan persilangan purata bergerak eksponensial (EMA) yang cepat (9-period) dan perlahan (21-period) untuk mengenal pasti perubahan trend yang berpotensi.
Penapis RSI: mengesahkan kekuatan trend dengan memeriksa sama ada Indeks Kekuatan Relatif (RSI) terlalu banyak dibeli (> 70) atau terlalu banyak dijual (< 30).
Pengesahan Jumlah: Memerlukan jumlah melebihi ambang minimum yang ditetapkan untuk memastikan penyertaan pasaran yang mencukupi.
Bollinger Bands: Menggunakan Bollinger Bands untuk mengenal pasti turun naik harga dan tahap sokongan / rintangan yang berpotensi.
Corak candlestick: Menggabungkan corak bullish dan bearish untuk meningkatkan kebolehpercayaan isyarat kemasukan.
Pengurusan Risiko: Menggunakan nisbah risiko-balasan tetap 1: 2 dan stop loss berasaskan peratusan.
Isyarat perdagangan diaktifkan apabila syarat-syarat ini dipenuhi dan harga berada di bawah (untuk panjang) atau di atas (untuk pendek) garis tengah Bollinger Bands.
Pelbagai Pengesahan: Menggabungkan pelbagai penunjuk teknikal dan corak carta, meningkatkan kebolehpercayaan isyarat perdagangan.
Pengurusan Risiko Dinamik: Mengira tahap stop loss dan sasaran dalam masa nyata, menyesuaikan diri dengan keadaan pasaran yang berbeza.
Pengikut trend dan gabungan pembalikan: Mampu menangkap kedua-dua kesinambungan trend dan peluang pembalikan yang berpotensi.
Penyesuaian Volatiliti: Menggunakan Bollinger Bands untuk menyesuaikan kepekaan terhadap turun naik pasaran.
Fleksibiliti: Membolehkan pengguna menyesuaikan parameter berdasarkan pilihan peribadi dan ciri pasaran.
Overtrading: Boleh menghasilkan isyarat perdagangan yang berlebihan di pasaran yang sangat tidak menentu, meningkatkan kos transaksi.
Penembusan palsu: Rendah kepada isyarat palsu yang kerap di pasaran yang berbeza.
Risiko tergelincir: Harga pelaksanaan sebenar mungkin berbeza dengan harga isyarat dalam pasaran yang bergerak cepat.
Sensitiviti Parameter: Prestasi strategi mungkin sangat sensitif terhadap tetapan parameter, yang memerlukan pengoptimuman dan pengujian balik yang teliti.
Penyesuaian Parameter Dinamik: Pertimbangkan untuk menyesuaikan secara automatik tempoh EMA dan ambang RSI berdasarkan turun naik pasaran.
Penapis Kekuatan Trend: Memperkenalkan penunjuk seperti ADX untuk menilai kekuatan trend dan mengelakkan perdagangan dalam trend yang lemah.
Penapis Masa: Tambah penapis masa untuk mengelakkan perdagangan semasa tempoh turun naik yang rendah.
Mekanisme Stop Loss yang dipertingkatkan: Pertimbangkan untuk menggunakan trailing stop atau stop dinamik berasaskan ATR untuk pengurusan risiko yang lebih baik.
Penguncian Keuntungan: Melaksanakan pengambilan keuntungan separa dan penyesuaian stop loss apabila mencapai tahap sasaran tertentu.
Strategi perdagangan intraday ini menawarkan sistem perdagangan yang komprehensif dengan menggabungkan pelbagai penunjuk teknikal dan teknik pengurusan risiko. Kekuatannya terletak pada pelbagai pengesahan dan pengurusan risiko dinamik, tetapi ia juga menghadapi cabaran seperti overtrading dan sensitiviti parameter. Melalui pengoptimuman lanjut, seperti penyesuaian parameter dinamik dan mekanisme kehilangan berhenti yang lebih baik, strategi ini berpotensi menjadi sistem perdagangan yang lebih kukuh dan adaptif. Walau bagaimanapun, pengujian balik yang luas dan pengoptimuman parameter yang teliti masih diperlukan sebelum menerapkannya ke perdagangan langsung.
/*backtest start: 2019-12-23 08:00:00 end: 2024-10-12 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Intraday Strategy with Risk-Reward 1:2, Bollinger Bands, and Stop Loss", overlay=true) // Parameters fastLength = input(9, title="Fast EMA Length") slowLength = input(21, title="Slow EMA Length") rsiLength = input(14, title="RSI Length") overbought = input(70, title="RSI Overbought Level") oversold = input(30, title="RSI Oversold Level") minVolume = input(100000, title="Min Volume for Confirmation") bbLength = input(20, title="Bollinger Bands Length") bbStdDev = input.float(2.0, title="Bollinger Bands Standard Deviation") stopLossPercent = input.float(1, title="Stop Loss (%)", minval=0.1) // Stop Loss % riskRewardRatio = 2.0 // Fixed risk-reward ratio 1:2 // Indicators fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) rsi = ta.rsi(close, rsiLength) volumeCondition = volume > minVolume // Bollinger Bands bbBasis = ta.sma(close, bbLength) // Basis (middle line) is the SMA bbUpper = bbBasis + bbStdDev * ta.stdev(close, bbLength) // Upper band bbLower = bbBasis - bbStdDev * ta.stdev(close, bbLength) // Lower band // Bullish Engulfing Pattern bullishEngulfing = close > open and close[1] < open[1] and close > open[1] // Bearish Engulfing Pattern bearishEngulfing = close < open and close[1] > open[1] and close < open[1] // Entry Conditions bullishCrossover = ta.crossover(fastEMA, slowEMA) and rsi < oversold and volumeCondition bearishCrossover = ta.crossunder(fastEMA, slowEMA) and rsi > overbought and volumeCondition // Signal Conditions longCondition = (bullishCrossover or bullishEngulfing) and close < bbBasis // Buy below Bollinger Bands middle line shortCondition = (bearishCrossover or bearishEngulfing) and close > bbBasis // Sell above Bollinger Bands middle line // Stop Loss and Target Calculation for Long and Short Positions stopLossLong = close * (1 - stopLossPercent / 100) // Stop loss for long positions targetLong = close + (close - stopLossLong) * riskRewardRatio // Target for long positions (1:2 ratio) stopLossShort = close * (1 + stopLossPercent / 100) // Stop loss for short positions targetShort = close - (stopLossShort - close) * riskRewardRatio // Target for short positions (1:2 ratio) // Strategy Execution with Stop Loss and Target if (longCondition) strategy.entry("Long", strategy.long, stop=stopLossLong, limit=targetLong) if (shortCondition) strategy.entry("Short", strategy.short, stop=stopLossShort, limit=targetShort) // Plot Moving Averages for Visualization plot(fastEMA, color=color.blue, linewidth=1, title="Fast EMA") plot(slowEMA, color=color.red, linewidth=1, title="Slow EMA") // Plot Bollinger Bands with Color Fill plot(bbUpper, "BB Upper", color=color.gray, linewidth=1) plot(bbLower, "BB Lower", color=color.gray, linewidth=1) plot(bbBasis, "BB Basis", color=color.gray, linewidth=1) fill(plot(bbUpper), plot(bbLower), color=color.new(color.blue, 90), title="Bollinger Bands Area") // Plot Risk-Reward Levels plot(longCondition ? targetLong : na, color=color.green, linewidth=2, title="Long Target (1:2)", style=plot.style_circles) plot(shortCondition ? targetShort : na, color=color.red, linewidth=2, title="Short Target (1:2)", style=plot.style_circles) plot(longCondition ? stopLossLong : na, color=color.red, linewidth=2, title="Long Stop Loss", style=plot.style_cross) plot(shortCondition ? stopLossShort : na, color=color.green, linewidth=2, title="Short Stop Loss", style=plot.style_cross) // Plot Buy and Sell Signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, size=size.small, title="Buy Signal", text="BUY") plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, size=size.small, title="Sell Signal", text="SELL") // Clean Background Color for Trades bgcolor(longCondition ? color.new(color.green, 90) : na, title="Background Long", transp=90) bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Background Short", transp=90)