Strategi ini menggabungkan crossover rata-rata bergerak, indeks kekuatan relatif (RSI), dan volume perdagangan yang diperkuat secara signifikan untuk mengambil posisi panjang / pendek setelah mendeteksi persentase tertentu dari pullback dalam harga pada lonjakan volume tinggi.
Crossover dari rata-rata bergerak cepat dan lambat memberikan sinyal awal perubahan arah tren. Indikator RSI menilai kondisi overbought/oversold untuk menghindari skenario ini untuk sinyal masuk yang lebih kuat. Peningkatan volume yang signifikan dibandingkan volume rata-rata menandakan pergerakan harga potensial yang menarik perhatian pasar. Puncakan volume ini memperkuat kekuatan sinyal masuk. Setelah lonjakan volume dan kenaikan harga, pesanan masuk dipicu ketika harga dan volume telah menarik persentase tertentu, menunjukkan koreksi atau pembalikan potensial. Tiga pesanan TP bertahap digunakan untuk mewujudkan keuntungan. Setiap level TP menutup sebagian posisi ketika mencapai target keuntungan yang telah ditentukan sebelumnya. Fitur stop trailing opsional tersedia untuk TP. Setelah harga mencapai target TP, stop trailing mengikuti posisi untuk menangkap lebih banyak keuntungan jika harga tetap menguntungkan.
Prinsip yang sama berlaku untuk sinyal masuk dan keluar pendek.
Keuntungan utama dari strategi ini:
Crossover dari MAs cepat/lambat dikombinasikan dengan RSI membentuk sinyal masuk yang kuat, menghindari area overbought/oversold untuk meningkatkan peluang menang.
Puncakan volume memastikan perubahan harga besar ditangkap untuk pembentukan posisi, memperkuat kekuatan sinyal.
Mekanisme penarikan harga/volume meningkatkan presisi waktu masuk untuk menangkap peluang pembalikan atau kenaikan.
TP tiga tingkat memanfaatkan tren kenaikan harga untuk mengunci keuntungan berdasarkan toleransi risiko.
Opsional trailing stop memungkinkan fleksibilitas untuk memungkinkan konservasi modal sambil mempertahankan kesempatan untuk keuntungan yang lebih tinggi tergantung pada volatilitas pasar.
Berlaku untuk perdagangan panjang dan pendek, keuntungan dapat direalisasikan di pasar naik atau turun, meningkatkan utilitas.
Meskipun dirancang dengan hati-hati, perdagangan produk keuangan manapun membawa risiko.
MA crossover tidak selalu secara akurat menentukan tren. sinyal yang salah dapat terjadi jika parameter MA yang tidak tepat digunakan.
Pengaturan periode RSI yang tidak tepat dapat menyebabkan kegagalan untuk menghindari area overbought/oversold.
Peningkatan volume tidak selalu sesuai dengan perubahan harga yang signifikan.
Penarikan harga/volume yang berlebihan atau tidak memadai mempengaruhi waktu masuk.
Tingkat mengambil keuntungan yang telah ditetapkan sebelumnya tidak dapat menjamin eksekusi pesanan TP penuh.
Stop loss yang terlalu luas dapat meninggalkan posisi sebelum waktunya sehingga kehilangan keuntungan yang lebih besar.
Risiko-risiko ini menuntut optimasi kode, penyesuaian parameter, dan backtesting yang ketat untuk memastikan keandalan strategi.
Peningkatan lebih lanjut:
Tambahkan indikator lain seperti Bollinger Bands atau KD untuk membantu keputusan masuk, meningkatkan akurasi.
Mengintegrasikan model pembelajaran mesin seperti LSTM untuk membangun MAs dinamis yang secara otomatis menyesuaikan parameter dengan kondisi pasar terbaru, meningkatkan penangkapan tren.
Membangun stop loss / profit taking dinamis berdasarkan volatilitas pasar untuk menyesuaikan tingkat secara otomatis.
Menggunakan analisis kointegrasi untuk secara optimal memilih faktor pullback per pergerakan harga di seluruh pasar versus korelasi saham individu, mendapatkan waktu masuk yang optimal.
Menggunakan model multifaktor dengan analisis sentimen, penambangan aturan asosiasi dll untuk memilih saham dengan korelasi perubahan harga / volume tertinggi untuk menerapkan strategi untuk peningkatan kinerja yang luar biasa.
Ini adalah strategi yang sangat baik untuk pedagang jangka menengah hingga jangka pendek setelah peningkatan. Dengan fungsi yang semakin kuat dan cerdas yang dibangun pada optimasi, ini memiliki manfaat praktis yang besar untuk perdagangan langsung sambil berusaha memberikan pengembalian yang mengalahkan pasar dengan risiko yang terkontrol dengan tegas.
/*backtest start: 2023-11-11 00:00:00 end: 2023-12-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Advanced Strategy with Volume and Price Retracement and Multi-Take Profit (USDT)", overlay=true) // Parametreler fastLength = input(12, minval=1, title="Fast Moving Average") slowLength = input(26, minval=1, title="Slow Moving Average") rsiPeriod = input(14, minval=1, title="RSI Period") volLength = input(20, minval=1, title="Volume MA Length") volMultiplier = input(2.0, title="Volume Spike Multiplier") trailOffset = input(1, title="Trailing Offset (%)") usdtPerTrade = input(50000, title="USDT per Trade") retraceFactor = input(0.8, title="Retracement Factor for Entry") takeProfit1 = input(1, title="Take Profit 1 (%)") takeProfit2 = input(2, title="Take Profit 2 (%)") takeProfit3 = input(3, title="Take Profit 3 (%)") trailForTP = input(true, title="Use Trailing Stop for Take Profits") // Hesaplamalar fastMA = sma(close, fastLength) slowMA = sma(close, slowLength) rsi = rsi(close, rsiPeriod) volMA = sma(volume, volLength) volumeSpike = volume > volMA * volMultiplier // Durum Değişkenleri ve Saklanan Değerler var float spikeVolume = na var float spikePrice = na var int direction = 0 // Alım/Satım Sinyalleri longCondition = crossover(fastMA, slowMA) and rsi < 70 shortCondition = crossunder(fastMA, slowMA) and rsi > 30 // Hacim Spike ve Fiyat Hareketinin Saklanması if (longCondition and volumeSpike) spikeVolume := volume spikePrice := close direction := 1 else if (shortCondition and volumeSpike) spikeVolume := volume spikePrice := close direction := -1 // Retracement Kontrolü ve Giriş Emirleri if (direction == 1 and volume < spikeVolume * retraceFactor and close < spikePrice * (1 - trailOffset / 100)) strategy.entry("Long", strategy.long, qty=usdtPerTrade / close) spikeVolume := na direction := 0 else if (direction == -1 and volume < spikeVolume * retraceFactor and close > spikePrice * (1 + trailOffset / 100)) strategy.entry("Short", strategy.short, qty=usdtPerTrade / close) spikeVolume := na direction := 0 // Take Profit Emirleri if strategy.position_size > 0 strategy.exit("TP1", "Long", limit=strategy.position_avg_price * (1 + takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na) strategy.exit("TP2", "Long", limit=strategy.position_avg_price * (1 + takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na) strategy.exit("TP3", "Long", limit=strategy.position_avg_price * (1 + takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na) if strategy.position_size < 0 strategy.exit("TP1", "Short", limit=strategy.position_avg_price * (1 - takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na) strategy.exit("TP2", "Short", limit=strategy.position_avg_price * (1 - takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na) strategy.exit("TP3", "Short", limit=strategy.position_avg_price * (1 - takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na) // Pozisyon çıkışları strategy.close("Long", when=shortCondition) strategy.close("Short", when=longCondition)