Sumber dimuat naik... memuat...

Strategi silang purata bergerak berganda

Penulis:ChaoZhang, Tarikh: 2024-05-17 15:48:04
Tag:EMASMA

img

Ringkasan

Strategi crossover purata bergerak berganda adalah strategi perdagangan klasik yang mengikuti trend. Ia menggunakan dua purata bergerak: purata bergerak pantas dan purata bergerak perlahan. Apabila purata bergerak pantas melintasi di atas purata bergerak perlahan, ia dipanggil salib emas, yang menunjukkan peningkatan yang berpotensi, dan kedudukan panjang dibuka. Apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan, ia dipanggil salib kematian, yang menunjukkan penurunan yang berpotensi, dan kedudukan pendek dibuka.

Prinsip Strategi

Inti strategi ini adalah untuk menggunakan ciri-ciri trend purata bergerak dan isyarat silang untuk menentukan arah trend dan masa kemasukan. Pertama, tetapkan tempoh purata bergerak pantas (default 50) dan purata bergerak perlahan (default 200) melalui parameter, dan pilih untuk menggunakan SMA atau EMA. Kemudian mengira dua purata bergerak dan menentukan situasi silang mereka:

  1. Apabila purata bergerak pantas melintasi di atas purata bergerak perlahan (salib emas), buka kedudukan panjang jika tidak ada kedudukan semasa, dan tetapkan harga stop-loss (dihitung berdasarkan peratusan stop-loss).
  2. Apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan (palang kematian), buka kedudukan pendek jika tidak ada kedudukan semasa, dan tetapkan harga stop-loss.
  3. Jika ada kedudukan yang lama, tutup kedudukan apabila persilangan kematian berlaku.
  4. Jika terdapat kedudukan pendek yang sedia ada, tutup kedudukan apabila sebuah salib emas berlaku. Buka kedudukan berdasarkan isyarat persilangan purata bergerak dan tetapkan stop-loss untuk menangkap trend harga jangka sederhana hingga panjang dengan cara trend-mengikuti.

Kelebihan Strategi

  1. Logiknya mudah dan jelas, mudah difahami dan dilaksanakan, dan merupakan asas strategi trend-mengikuti.
  2. Dengan menggunakan persilangan dua purata bergerak dengan tempoh yang berbeza, ia dapat menentukan pembentukan dan pembalikan trend dengan lebih baik.
  3. Ia menyokong kedua-dua SMA dan EMA, yang boleh dipilih dengan fleksibel.
  4. Menetapkan stop-loss mengawal risiko kerugian hingga tahap tertentu.
  5. Sesuai untuk menangkap trend jangka menengah hingga panjang, gaya trend berikut.

Risiko Strategi

  1. Pilihan parameter yang tidak betul (seperti tempoh purata bergerak yang tidak sesuai) boleh menyebabkan isyarat yang kerap atau penilaian trend yang tertinggal.
  2. Pasaran yang berfluktuasi pantas boleh membawa kepada perdagangan yang kerap dan prestasi yang lemah.
  3. Apabila trend berbalik atau berakhir, mungkin terdapat pengeluaran yang lebih besar.
  4. Peratusan stop loss tetap mungkin tidak mengawal risiko dengan baik.

Arahan Pengoptimuman Strategi

  1. Mengoptimumkan parameter, termasuk tempoh purata bergerak, peratusan stop-loss, dan lain-lain, untuk meningkatkan kestabilan dan nisbah risiko-balasan.
  2. Pertimbangkan untuk memperkenalkan penunjuk yang berkaitan dengan turun naik seperti ATR untuk menyesuaikan kedudukan stop-loss secara dinamik.
  3. Memastikan trend sebelum membuka kedudukan dan bukannya segera membuka ketika persilangan, atau menambah penunjuk pengesahan trend lain untuk membantu penilaian dan meningkatkan ketepatan menangkap trend.
  4. Boleh ditingkatkan melalui strategi pengurusan wang seperti menambah atau mengurangkan kedudukan.
  5. Pertimbangkan untuk menggabungkan dengan isyarat lain untuk membentuk strategi pelbagai faktor.

Ringkasan

Strategi Crossover Purata Bergerak Berganda adalah strategi trend yang mudah dan klasik yang menentukan arah trend dan masa kemasukan / keluar berdasarkan persilangan dua purata bergerak dengan tempoh yang berbeza, sesuai untuk menangkap trend jangka menengah hingga panjang.


/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//==============================================================================
// A baseline strategy with a well known concept, golden cross & death cross.
// Support for both Simple & Exponential moving averages.
// Support for long & short stop losses as a percentage.:well
//==============================================================================
strategy("Basic Moving Average Crosses", overlay=true)

//------------------------------------------------------------------------------
// configuration
//------------------------------------------------------------------------------
maQuickLength = input(50, title="Quick MA Length") 
maSlowLength  = input(200, title="Quick MA Length") 
useSma        = input(true, title="Use SMA? If false, EMA is used.")

maQuick = useSma ? ta.sma(close, maQuickLength) : ta.ema(close, maQuickLength)
maSlow  = useSma ? ta.sma(close, maSlowLength) : ta.ema(close, maSlowLength)

stop_loss_percentage = input(2.0, title="Stop Loss (%)")

var float longStopLevel = na
var float shortStopLevel = na

bool isGoldenCross = ta.crossover(maQuick, maSlow)
bool isDeathCross  = ta.crossunder(maQuick, maSlow)

//------------------------------------------------------------------------------
// position opening logic
//------------------------------------------------------------------------------

if(strategy.position_size == 0)
    // Golden cross, enter a long position
    if(isGoldenCross)
        strategy.entry("Buy", strategy.long)
        longStopLevel := close - close * stop_loss_percentage/100.0
        strategy.exit("StopLossLong", "Buy", stop=longStopLevel)
    // Death cross, enter short position
    else if(isDeathCross)
        strategy.entry("Sell", strategy.short)
        shortStopLevel := close + close * stop_loss_percentage/100.0
        strategy.exit("StopLossShort", "Sell", stop=shortStopLevel)

//------------------------------------------------------------------------------
// position closing logic
//------------------------------------------------------------------------------
else
    // Close long position on death cross
    if(strategy.position_size > 0 and isDeathCross)
        strategy.close("Buy")
    
    // Close short position on golden cross
    else if(strategy.position_size < 0 and isGoldenCross)
        strategy.close("Sell")

//------------------------------------------------------------------------------
// ploting
//------------------------------------------------------------------------------
plot(maQuick, color=color.yellow)
plot(maSlow, color=color.blue)

Berkaitan

Lebih lanjut