Strategi henti kerugian dinamik berbilang penunjuk berdasarkan pengesahan arah aliran

SMA MACD ADX Swing Low
Tarikh penciptaan: 2025-02-20 11:19:58 Akhirnya diubah suai: 2025-02-20 11:19:58
Salin: 2 Bilangan klik: 323
2
fokus pada
319
Pengikut

Strategi henti kerugian dinamik berbilang penunjuk berdasarkan pengesahan arah aliran Strategi henti kerugian dinamik berbilang penunjuk berdasarkan pengesahan arah aliran

Gambaran keseluruhan

Ini adalah strategi trend-tracking yang menggabungkan beberapa petunjuk teknikal, terutamanya melalui kerjasama tiga petunjuk SMA (Simple Moving Average), MACD (Moving Average Convergence Spread Indicator) dan ADX (Average Trend Indicator), yang diperdagangkan pada tahap mingguan. Strategi ini menggunakan mekanisme stop loss yang dinamik untuk mengoptimumkan pengurusan risiko dengan mengenal pasti titik rendah yang berayun (Swing Low) untuk mendapatkan kawalan kedudukan yang lebih tepat.

Prinsip Strategi

Logik utama strategi ini adalah berdasarkan kepada mekanisme triple-verify:

  1. Untuk menilai arah trend keseluruhan, harga di atas garis purata mewakili trend ke atas
  2. Menggunakan MACD ((9,18,9) untuk menangkap tenaga harga, meminta garis MACD berada di atas garis isyarat dan menjadi positif
  3. Menggunakan ADX ((14) untuk mengesahkan kekuatan trend, ADX lebih besar daripada 25 menunjukkan trend yang mencukupi
  4. Tambah kedudukan apabila memenuhi ketiga-tiga syarat di atas
  5. Tetapkan hentian dinamik dengan mengenal pasti titik rendah dan tutup apabila harga jatuh di bawah SMA

Kelebihan Strategik

  1. Memperolehi bukti salib berbilang metrik, mengurangkan kesan isyarat palsu
  2. Menggunakan perdagangan pada tahap garis pusingan untuk mengelakkan gangguan turun naik dalam hari
  3. Mekanisme Hentian Bergerak, menyesuaikan diri dengan titik hentian dengan menggoyangkan titik rendah
  4. Penapisan ADX lemah, meningkatkan kualiti transaksi
  5. Pengurusan risiko menyeluruh, termasuk perlindungan berganda untuk pembalikan trend dan menghentikan kerugian

Risiko Strategik

  1. Multiple indicators boleh menyebabkan isyarat terlewat, kehilangan peluang dalam pergerakan pantas
  2. Operasi peringkat garis lingkaran mungkin menghadapi penarikan balik yang lebih besar
  3. Pengiktirafan titik rendah berayun mungkin tidak stabil dalam lonjakan yang kuat
  4. Ia memerlukan masa yang lebih lama untuk mengumpulkan data harga yang mencukupi.
  5. Isyarat palsu yang sering berlaku dalam pasaran yang bergolak

Arah pengoptimuman strategi

  1. Pertimbangan untuk memperkenalkan parameter penunjuk penyesuaian yang boleh disesuaikan dengan pergerakan turun naik pasaran
  2. Meningkatkan kebolehpercayaan isyarat dengan meningkatkan kebolehpercayaan isyarat
  3. Pembangunan algoritma pengiktirafan Swing Low yang lebih pintar
  4. Menambahkan klasifikasi persekitaran pasaran, menggunakan parameter yang berbeza untuk keadaan pasaran yang berbeza
  5. Mengoptimumkan logik stop loss, pertimbangkan untuk memperkenalkan stop loss bergerak

ringkaskan

Strategi ini membina sistem pengesanan trend yang mantap melalui sinergi pelbagai petunjuk teknikal. Mekanisme berhenti dinamik menyediakan kawalan risiko yang baik, sesuai untuk mengesan trend jangka menengah dan panjang. Kelebihan utama strategi ini adalah kebolehpercayaan isyarat yang tinggi, pengurusan risiko yang sempurna, tetapi juga menghadapi cabaran seperti lag isyarat.

Kod sumber strategi
/*backtest
start: 2024-02-20 00:00:00
end: 2024-03-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Invest SMA|MACD|ADX Long Weekly Strategy (BtTL)", overlay=true)

// SMA Inputs
smaLength = input.int(30, title="SMA Länge")
// MACD Inputs
macdFastLength = input.int(9, title="MACD schnelle Periode")
macdSlowLength = input.int(18, title="MACD langsame Perside")
macdSignalLength = input.int(9, title="MACD Signal Smoothing")
//ADX Inputs
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Länge")

// SMA-Berechnung
smaValue = ta.sma(close, smaLength)
isAboveSMA = close > smaValue
isBelowSMA = close < smaValue

// MACD-Berechnung
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
isMACDBuy = macdLine > signalLine and macdLine > 0

// Swing-Low Berechnung (5-Kerzen)
isSwingLow = low[2] > low[1] and low[3] > low[1] and low[1] < low and low[1] < low[4]
var float lastSwingLow = na
var float secondLastSwingLow = na

// Wenn ein neuer Swing-Low gefunden wird
if (isSwingLow[1])
    secondLastSwingLow := lastSwingLow
    lastSwingLow := low[1]

//ADX ermitteln
[pDI,mDI,ADX] = ta.dmi(dilen, adxlen)
IsInTrend = ADX > 25

// Einstiegskondition mit MACD und SMA
longCondition = isAboveSMA and isMACDBuy and IsInTrend
if (longCondition)
    strategy.entry("Long", strategy.long)

// Ausstiegskondition am vorletzten Swing-Low
if (isBelowSMA and na(secondLastSwingLow) == false)
    strategy.exit("Exit", from_entry="Long", stop=secondLastSwingLow)

// Reset bei Position schließen
if(strategy.position_size <= 0)
    secondLastSwingLow := na
    lastSwingLow := na

// Plots
plot(smaValue, title="SMA 30", color=#063eda, linewidth=2)
plot(na(lastSwingLow) ? na : lastSwingLow, title="Last Swing Low", color=#ffb13b, linewidth=1, style=plot.style_circles)
plot(na(secondLastSwingLow) ? na : secondLastSwingLow, title="Second Last Swing Low", color=color.red, linewidth=1, style=plot.style_circles)