Strategi Penolakan Purata Bergerak Berdasarkan Penapis Indeks Arah Purata

ADX MA WMA
Tarikh penciptaan: 2024-05-17 10:35:58 Akhirnya diubah suai: 2024-05-17 10:35:58
Salin: 1 Bilangan klik: 644
1
fokus pada
1617
Pengikut

Strategi Penolakan Purata Bergerak Berdasarkan Penapis Indeks Arah Purata

Gambaran keseluruhan

Strategi ini menggunakan pelbagai purata bergerak ((MA) sebagai isyarat perdagangan utama, dan digabungkan dengan indeks arah purata ((ADX) sebagai penapis. Gagasan utama strategi ini adalah untuk mengenal pasti peluang yang berpotensi tinggi dan kosong dengan membandingkan hubungan antara MA cepat, MA lambat dan MA purata.

Prinsip Strategi

  1. Hitung MA pantas, MA perlahan dan MA purata.
  2. Dengan membandingkan hubungan harga penutupan dengan MA perlahan, tahap kepala dan kepala kosong yang berpotensi dapat dikenal pasti.
  3. Memastikan tahap overhead dan overhead kosong dengan membandingkan hubungan harga penutupan dengan MA pantas.
  4. Pengiraan ADX secara manual digunakan untuk mengukur kekuatan trend.
  5. Apabila MA pantas melintasi MA purata ke atas, ADX lebih besar daripada nilai ambang yang ditetapkan, dan tahap multi-kepala disahkan, menghasilkan isyarat masuk multi-kepala.
  6. Apabila MA pantas melintasi MA purata ke bawah, ADX lebih besar daripada nilai ambang yang ditetapkan, dan tahap kepala kosong disahkan, menghasilkan isyarat masuk kepala kosong.
  7. Apabila harga penutupan ke bawah melintasi MA perlahan, ia menghasilkan isyarat keluar multicap; apabila harga penutupan ke atas melintasi MA perlahan, ia menghasilkan isyarat keluar kosong.

Kelebihan Strategik

  1. Menggunakan pelbagai MA dapat menangkap perubahan trend dan dinamik pasaran secara lebih menyeluruh.
  2. Dengan membandingkan hubungan antara MA pantas, MA perlahan, dan MA purata, peluang perdagangan berpotensi dapat dikenal pasti.
  3. Menggunakan penunjuk ADX sebagai penapis, anda boleh mengelakkan terlalu banyak isyarat palsu dalam pasaran yang bergolak dan meningkatkan kebolehpercayaan isyarat perdagangan.
  4. Logik strategi jelas, mudah difahami dan dilaksanakan.

Risiko Strategik

  1. Strategi ini mungkin menghasilkan lebih banyak isyarat palsu, yang menyebabkan perdagangan dan kerugian yang kerap berlaku apabila trend tidak jelas atau pasaran bergolak.
  2. Strategi ini bergantung kepada penunjuk yang ketinggalan seperti MA dan ADX dan mungkin terlepas peluang untuk membentuk trend awal.
  3. Tetapan parameter strategi (seperti panjang MA dan nilai ADX) mempunyai kesan besar terhadap prestasi strategi dan perlu dioptimumkan mengikut pasaran dan varieti yang berbeza.

Arah pengoptimuman strategi

  1. Pertimbangkan untuk memperkenalkan petunjuk teknikal lain, seperti RSI, MACD dan lain-lain, untuk meningkatkan kebolehpercayaan dan kepelbagaian isyarat perdagangan.
  2. Untuk persekitaran pasaran yang berbeza, anda boleh menetapkan kombinasi parameter yang berbeza untuk menyesuaikan diri dengan perubahan pasaran.
  3. Memperkenalkan langkah-langkah pengurusan risiko, seperti penutupan kerugian dan pengurusan kedudukan, untuk mengawal potensi kerugian.
  4. Menggabungkan analisis asas, seperti data ekonomi, perubahan dasar, dan lain-lain untuk mendapatkan pandangan pasaran yang lebih menyeluruh.

ringkaskan

Strategi penolakan linear berdasarkan penapis indeks arah rata-rata menggunakan pelbagai petunjuk MA dan ADX untuk mengenal pasti peluang perdagangan yang berpotensi dan menapis isyarat perdagangan berkualiti rendah. Strategi ini logiknya jelas, mudah difahami dan dilaksanakan, tetapi dalam aplikasi praktikal memerlukan perhatian terhadap perubahan keadaan pasaran dan pengoptimuman yang digabungkan dengan petunjuk teknikal dan langkah-langkah pengurusan risiko yang lain.

Kod sumber strategi
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gavinc745

//@version=5
strategy("MA Rejection Strategy with ADX Filter", overlay=true)

// Input parameters
fastMALength = input.int(10, title="Fast MA Length", minval=1)
slowMALength = input.int(50, title="Slow MA Length", minval=1)
averageMALength = input.int(20, title="Average MA Length", minval=1)
adxLength = input.int(14, title="ADX Length", minval=1)
adxThreshold = input.int(20, title="ADX Threshold", minval=1)

// Calculate moving averages
fastMA = ta.wma(close, fastMALength)
slowMA = ta.wma(close, slowMALength)
averageMA = ta.wma(close, averageMALength)

// Calculate ADX manually
dmPlus = high - high[1]
dmMinus = low[1] - low
trueRange = ta.tr

dmPlusSmoothed = ta.wma(dmPlus > 0 and dmPlus > dmMinus ? dmPlus : 0, adxLength)
dmMinusSmoothed = ta.wma(dmMinus > 0 and dmMinus > dmPlus ? dmMinus : 0, adxLength)
trSmoothed = ta.wma(trueRange, adxLength)

diPlus = dmPlusSmoothed / trSmoothed * 100
diMinus = dmMinusSmoothed / trSmoothed * 100
adx = ta.wma(math.abs(diPlus - diMinus) / (diPlus + diMinus) * 100, adxLength)

// Identify potential levels
potentialLongLevel = low < slowMA and close > slowMA
potentialShortLevel = high > slowMA and close < slowMA

// Confirm levels
confirmedLongLevel = potentialLongLevel and close > fastMA
confirmedShortLevel = potentialShortLevel and close < fastMA

// Entry signals
longEntry = confirmedLongLevel and ta.crossover(fastMA, averageMA) and adx > adxThreshold
shortEntry = confirmedShortLevel and ta.crossunder(fastMA, averageMA) and adx > adxThreshold

// Exit signals
longExit = ta.crossunder(close, slowMA)
shortExit = ta.crossover(close, slowMA)

// Plot signals
plotshape(longEntry, title="Long Entry", location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green)
plotshape(shortEntry, title="Short Entry", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red)

// Plot moving averages and ADX
plot(fastMA, title="Fast MA", color=color.blue)
plot(slowMA, title="Slow MA", color=color.red)
plot(averageMA, title="Average MA", color=color.orange)
// plot(adx, title="ADX", color=color.purple)
// hline(adxThreshold, title="ADX Threshold", color=color.gray, linestyle=hline.style_dashed)

// Execute trades
if longEntry
    strategy.entry("Long", strategy.long)
else if longExit
    strategy.close("Long")

if shortEntry
    strategy.entry("Short", strategy.short)
else if shortExit
    strategy.close("Short")