Strategi ini menggabungkan crossover purata bergerak, indeks kekuatan relatif (RSI), dan jumlah dagangan yang diperkuat dengan ketara untuk mengambil kedudukan panjang / pendek selepas mengesan peratusan tertentu penarikan balik harga pada lonjakan jumlah yang tinggi.
Perpindahan purata bergerak cepat dan perlahan memberikan isyarat awal perubahan arah trend. Penunjuk RSI menilai keadaan overbought / oversold untuk mengelakkan senario ini untuk isyarat kemasukan yang lebih kuat. Peningkatan jumlah yang ketara berbanding purata isyarat pergerakan harga yang berpotensi menarik perhatian pasaran. Puncak jumlah ini memperkuat kekuatan isyarat kemasukan. Selepas lonjakan jumlah dan kenaikan harga, pesanan kemasukan dicetuskan apabila harga dan jumlah telah menarik balik peratusan tertentu, menunjukkan pembetulan atau pembalikan yang berpotensi. Tiga pesanan TP bertahap digunakan untuk merealisasikan keuntungan. Setiap tahap TP menutup sebahagian kedudukan apabila mencapai sasaran keuntungan yang telah ditentukan. Ciri berhenti jejak pilihan tersedia untuk TP. Sebaik sahaja harga mencapai sasaran TP, berhenti bergerak mengikuti kedudukan untuk menangkap lebih banyak keuntungan jika harga terus menguntungkan.
Prinsip yang sama berlaku untuk isyarat masuk dan keluar pendek.
Kelebihan utama strategi ini:
Perpindahan MAs cepat/lambat digabungkan dengan RSI membentuk isyarat kemasukan yang kuat, mengelakkan kawasan overbought/oversold untuk meningkatkan peluang menang.
Puncak jumlah memastikan perubahan harga yang besar ditangkap untuk penubuhan kedudukan, menguatkan kekuatan isyarat.
Mekanisme tarik balik harga/volume meningkatkan ketepatan masa kemasukan untuk menangkap peluang pembalikan atau kenaikan.
TP tiga peringkat menggunakan trend kenaikan harga untuk mengunci keuntungan berdasarkan toleransi risiko.
Hentian pengangkutan pilihan membolehkan fleksibiliti untuk membolehkan pemeliharaan modal sambil mengekalkan peluang untuk keuntungan yang lebih tinggi bergantung kepada turun naik pasaran.
Berlaku untuk kedua-dua perdagangan panjang dan pendek, keuntungan boleh direalisasikan di kedua-dua pasaran uptrend atau downtrend, meningkatkan utiliti.
Walaupun reka bentuk yang teliti, perdagangan produk kewangan membawa risiko.
MA crossover tidak selalu menentukan trend dengan tepat. Isyarat yang salah mungkin berlaku jika parameter MA yang tidak sesuai digunakan.
Penentuan tempoh RSI yang tidak betul boleh menyebabkan kegagalan untuk mengelakkan kawasan overbought / oversold.
Peningkatan jumlah tidak semestinya sesuai dengan perubahan harga yang signifikan.
Penarikan harga/volume yang berlebihan atau tidak mencukupi mempengaruhi masa kemasukan.
Tahap mengambil keuntungan yang telah ditetapkan tidak dapat menjamin pelaksanaan pesanan TP sepenuhnya.
Stop loss yang terlalu luas boleh keluar dari kedudukan sebelum masa yang kehilangan keuntungan yang lebih besar.
Risiko ini memerlukan pengoptimuman kod, penyesuaian parameter, dan ujian belakang yang ketat untuk memastikan kebolehpercayaan strategi.
Peningkatan lanjut:
Tambah penunjuk lain seperti Bollinger Bands atau KD untuk membantu keputusan kemasukan, meningkatkan ketepatan.
Menggabungkan model pembelajaran mesin seperti LSTM untuk menubuhkan MA dinamik yang menyesuaikan parameter secara automatik dengan keadaan pasaran terkini, meningkatkan tangkapan trend.
Membina stop loss / mengambil keuntungan dinamik berdasarkan turun naik pasaran untuk menyesuaikan tahap secara automatik.
Menggunakan analisis kointegrasi untuk memilih faktor pulback yang optimum setiap pergerakan harga di seluruh pasaran berbanding korelasi stok individu, mendapatkan masa kemasukan yang optimum.
Menggunakan model pelbagai faktor dengan analisis sentimen, perlombongan peraturan persatuan dan lain-lain untuk memilih saham dengan korelasi perubahan harga / jumlah tertinggi untuk melaksanakan strategi untuk peningkatan prestasi yang luar biasa.
Ini adalah strategi yang sangat baik untuk peniaga jangka menengah hingga jangka pendek selepas peningkatan. Dengan fungsi yang semakin kukuh dan pintar yang dibina pada pengoptimuman, ia mempunyai kelebihan praktikal yang besar untuk perdagangan langsung sambil berusaha untuk memberikan pulangan yang mengalahkan pasaran dengan risiko yang dikawal dengan tegas. Sebagai strategi kuantitatif yang semakin maju, ia menjadi contoh perdagangan yang stabil dan berhati-hati.
/*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)