Momentum Average Directional Movement Index Moving Average Crossover Strategy menggabungkan dua indikator teknis yang kuat, Moving Average (MA) dan Average Directional Index (ADX), untuk memberikan pedagang dengan presisi teknis yang ditingkatkan.
Strategi ini menghitung rata-rata bergerak tertimbang (WMA) untuk melacak momentum harga dan meratakan fluktuasi harga untuk menghasilkan sinyal tren. Pada saat yang sama, menghitung Indeks Arah Rata-rata (ADX) dan indeks gerakan arah positif / negatif (+/-DI) untuk menentukan keberadaan dan kekuatan tren. Ketika ADX di atas parameter yang ditentukan, tren dianggap ada. Ketika indeks gerakan arah positif lebih tinggi dari indeks gerakan arah negatif, itu adalah sinyal bullish.
Strategi ini menggunakan persilangan indikator MA dan ADX sebagai dasar untuk keputusan perdagangan. Ketika ADX berada di atas ambang batas dan DIdiff (DI + - DI-) lebih besar dari 0, ia pergi panjang. Ketika ADX berada di atas ambang batas dan DIdiff kurang dari 0, ia keluar posisi.
Menggabungkan keuntungan dari rata-rata bergerak dan indeks ADX, strategi ini dapat secara efektif mengidentifikasi keberadaan dan arah tren dan mengurangi sinyal palsu.
Selain itu, strategi ini adalah strategi kuantitatif sepenuhnya berdasarkan perhitungan parameter dengan hasil backtesting yang baik dan kinerja langsung yang stabil, membuatnya cocok untuk perdagangan algoritmik.
Strategi ini rentan terhadap risiko perdagangan selama fluktuasi pasar yang signifikan. Ketika harga bergerak dengan keras dan indikator tidak bereaksi, itu dapat membawa kerugian ke akun. Selain itu, pengaturan parameter yang tidak tepat juga dapat mempengaruhi kinerja strategi.
Kerugian dapat dikendalikan dengan stop loss. Pada saat yang sama parameter dapat dioptimalkan dan dikombinasikan dengan indikator lain untuk penyaringan untuk mengurangi sinyal palsu.
Aspek-aspek berikut dari strategi ini dapat dioptimalkan:
Menggabungkan dengan indikator lain untuk penyaringan, seperti Bollinger Bands, RSI dll untuk meningkatkan kualitas sinyal
Mengoptimalkan panjang parameter rata-rata bergerak dan ADX untuk menemukan kombinasi parameter optimal
Tambahkan mekanisme stop loss untuk mengendalikan kerugian tunggal
Uji periode penyimpanan yang berbeda untuk menemukan siklus penyimpanan yang optimal
Momentum Average Directional Movement Index Moving Average Crossover Strategy dapat secara efektif mengidentifikasi arah tren pasar dengan menghitung momentum harga dan kekuatan tren. Ini adalah strategi pelacakan tren yang dapat diandalkan. Strategi ini memiliki tingkat algoritma yang tinggi, backtesting yang stabil, dan kinerja langsung yang baik. Optimasi lebih lanjut dapat menyebabkan efisiensi strategi yang lebih baik.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // © Julien_Eche //@version=5 strategy("MA ADX Strategy", overlay=true, default_qty_type=strategy.percent_of_equity) start_date = input(timestamp("1975-01-01T00:00:00"), title="Start Date") end_date = input(timestamp("2099-01-01T00:00:00"), title="End Date") // Indicator Inputs group1 = "MA Parameters" lengthMA = input.int(50, title="MA Length", minval=1, group=group1) sourceMA = input(close, title="MA Source", group=group1) group2 = "ADX Parameters" diLength = input.int(14, title="DI Length", minval=1, group=group2) adxSmoothing = input.int(14, title="ADX Smoothing", minval=1, maxval=50, group=group2) adxMAActive = input.int(15, title="ADX MA Active", minval=1, group=group2) // Directional Movement calculations upwardMovement = ta.change(high) downwardMovement = -ta.change(low) trueRangeSmoothed = ta.rma(ta.atr(diLength), diLength) positiveDM = fixnan(100 * ta.rma(upwardMovement > downwardMovement and upwardMovement > 0 ? upwardMovement : 0, diLength) / trueRangeSmoothed) negativeDM = fixnan(100 * ta.rma(downwardMovement > upwardMovement and downwardMovement > 0 ? downwardMovement : 0, diLength) / trueRangeSmoothed) dmSum = positiveDM + negativeDM // Average Directional Index (ADX) calculation averageDX = 100 * ta.rma(math.abs(positiveDM - negativeDM) / math.max(dmSum, 1), adxSmoothing) // Line color determination lineColor = averageDX > adxMAActive and positiveDM > negativeDM ? color.teal : averageDX > adxMAActive and positiveDM < negativeDM ? color.red : color.gray // Moving Average (MA) calculation maResult = ta.wma(sourceMA, lengthMA) // Plotting the Moving Average with color plot(maResult, color=lineColor, title="MA", linewidth=3) // Strategy logic if (averageDX > adxMAActive and positiveDM > negativeDM) strategy.entry("Buy", strategy.long) if (averageDX > adxMAActive and positiveDM < negativeDM) strategy.close("Buy")