Strategi silang purata bergerak berganda

Penulis:ChaoZhang, Tarikh: 2024-01-04 15:03:14
Tag:

img

Ringkasan

Strategi ini menggunakan crossover purata bergerak mudah dan indikator julat sebenar purata untuk menjana isyarat beli dan jual. Ia tergolong dalam strategi trend berikut. Ia terutamanya menggunakan crossover purata bergerak 50 hari dan 100 hari untuk menentukan trend dan menetapkan stop loss berdasarkan ATR untuk mengawal risiko.

Logika Strategi

  1. Mengira purata bergerak mudah 50 hari SMA1 dan purata bergerak mudah 100 hari SMA2
  2. Apabila SMA1 melintasi SMA2, isyarat beli dihasilkan. Apabila SMA1 melintasi di bawah SMA2, isyarat jual dihasilkan.
  3. Mengira ATR 14 hari
  4. ATR didarabkan dengan faktor set digunakan sebagai titik stop loss
  5. Apabila isyarat beli dicetuskan, harga penutupan dikurangkan titik stop loss adalah titik jual stop loss. Apabila isyarat jual dicetuskan, harga penutupan ditambah titik stop loss adalah titik beli stop loss.

Ia dapat dilihat bahawa strategi ini terutamanya bergantung pada keupayaan menilai trend purata bergerak dan keupayaan kawalan risiko ATR. Logiknya mudah dan mudah difahami dan dilaksanakan.

Kelebihan

  1. Logik mudah dilaksanakan, sesuai untuk pemula
  2. Purata bergerak boleh dengan berkesan mengesan trend
  3. ATR stop loss boleh mengawal dengan berkesan kerugian daripada peristiwa black swan individu
  4. Parameter boleh disesuaikan dengan mudah untuk persekitaran pasaran yang berbeza

Risiko

  1. Banyak isyarat palsu boleh dicetuskan semasa pasaran yang terikat julat, kehilangan titik pembalikan
  2. ATR mungkin tidak bertindak balas dengan cukup sensitif terhadap pasaran yang berubah dengan cepat, yang membawa kepada kerugian yang lebih besar daripada yang dijangkakan
  3. Tetapan parameter dan pengganda ATR bergantung pada pengalaman. tetapan yang tidak betul boleh menjejaskan prestasi strategi
  4. purata bergerak berganda sendiri mempunyai kesan kelewatan, mungkin terlepas titik perubahan

Pengurusan Risiko:

  1. Memendekkan tempoh purata bergerak untuk menjadikan penunjuk lebih sensitif
  2. Sesuaikan pengganda ATR secara dinamik untuk kehilangan berhenti yang lebih fleksibel
  3. Tambah penunjuk lain untuk menapis isyarat palsu
  4. Bekerja berdasarkan penghakiman struktur jangka masa yang lebih besar

Arahan pengoptimuman

  1. Cuba jenis purata bergerak lain, seperti EMA yang menapis lebih baik
  2. Pertimbangkan kehilangan berhenti dinamik dengan Saluran Keltner dan lain-lain untuk menggantikan ATR
  3. Tambah penunjuk sokongan seperti kelantangan untuk menapis isyarat
  4. Mengenal pasti titik-titik trend utama dengan konsep seperti Elliott Waves, sokongan rintangan dan lain-lain.

Ringkasan

Ini adalah trend yang biasa mengikuti strategi, menggunakan purata bergerak untuk menentukan arah trend dan ATR berhenti kerugian untuk mengawal risiko. Logiknya mudah dan mudah difahami. Tetapi ia mempunyai beberapa risiko kelewatan dan isyarat palsu. Penambahbaikan boleh dibuat melalui penyesuaian parameter, pengoptimuman penunjuk, menggabungkan lebih banyak faktor dan lain-lain untuk menjadikan strategi lebih adaptif. Secara keseluruhan strategi ini sesuai untuk latihan pemula dan pengoptimuman, tetapi perlu berhati-hati apabila menerapkannya dalam perdagangan sebenar.


/*backtest
start: 2023-12-27 00:00:00
end: 2024-01-03 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA and ATR Strategy", overlay=true)

// Step 1. Define strategy settings
lengthSMA1 = input.int(50, title="50 SMA Length")
lengthSMA2 = input.int(100, title="100 SMA Length")
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.int(4, title="ATR Multiplier")

// Step 2. Calculate strategy values
sma1 = ta.sma(close, lengthSMA1)
sma2 = ta.sma(close, lengthSMA2)
atr = ta.atr(atrLength)

// Step 3. Output strategy data
plot(sma1, color=color.blue, title="50 SMA")
plot(sma2, color=color.red, title="100 SMA")

// Step 4. Determine trading conditions
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

longStopLoss = close - (atr * atrMultiplier)
shortStopLoss = close + (atr * atrMultiplier)

// Step 5. Execute trades based on conditions
if (longCondition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", stop=longStopLoss)

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Buy", "Sell", stop=shortStopLoss)


Lebih lanjut