Strategi Crossover Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2024-03-11 12:06:22
Tag:

img

Ringkasan Strategi

Strategi crossover purata bergerak berganda adalah strategi trend-mengikuti klasik. Strategi ini menggunakan dua purata bergerak dengan tempoh yang berbeza untuk menangkap trend pasaran. Apabila purata bergerak pantas melintasi di atas purata bergerak perlahan, ia menghasilkan isyarat panjang. Apabila purata bergerak pantas melintasi di bawah purata bergerak perlahan, ia menghasilkan isyarat pendek. Idea teras strategi ini adalah bahawa purata bergerak pantas lebih sensitif terhadap perubahan harga dan dapat bertindak balas dengan lebih cepat terhadap perubahan dalam trend pasaran, sementara purata bergerak perlahan mencerminkan trend jangka panjang pasaran. Dengan menganalisis persilangan kedua purata bergerak, kita dapat menentukan titik perubahan trend pasaran dan membuat perdagangan dengan sewajarnya.

Prinsip Strategi

Dalam kod strategi ini, dua purata bergerak digunakan: purata bergerak pantas (default 14 tempoh) dan purata bergerak perlahan (default 28 tempoh).

Logik utama strategi adalah seperti berikut:

  1. Mengira nilai purata bergerak pantas dan purata bergerak perlahan
  2. Jika purata bergerak pantas melintasi di atas purata bergerak perlahan, ia menghasilkan isyarat panjang dan membuka kedudukan panjang
  3. Jika purata bergerak pantas melintasi di bawah purata bergerak perlahan dan shorting dibenarkan (allowShorting=true), ia menghasilkan isyarat pendek dan membuka kedudukan pendek
  4. Jika purata bergerak pantas melintasi di bawah purata bergerak perlahan dan shorting tidak dibenarkan (allowShorting=false), ia menutup kedudukan panjang

Melalui logik ini, strategi boleh mengesan trend utama pasaran, memegang kedudukan panjang dalam trend menaik dan kedudukan pendek atau tidak ada kedudukan dalam trend menurun.

Kelebihan Strategi

  1. Logik yang mudah dan jelas, mudah difahami dan dilaksanakan
  2. Sesuai untuk pasaran trend, boleh menangkap dengan berkesan trend pasaran jangka sederhana dan panjang
  3. Parameter yang boleh diselaraskan, sesuai untuk pasaran dan instrumen dagangan yang berbeza
  4. Boleh memilih secara fleksibel sama ada untuk membenarkan pemotongan pendek berdasarkan ciri pasaran dan pilihan peribadi
  5. Purata bergerak adalah penunjuk analisis teknikal klasik yang digunakan secara meluas dan disahkan

Risiko Strategi

  1. Di pasaran terikat julat, persilangan purata bergerak yang kerap boleh membawa kepada perdagangan yang kerap dan meningkatkan kos transaksi
  2. Jika purata bergerak pantas dipilih terlalu pendek atau purata bergerak perlahan dipilih terlalu lama, ia boleh menyebabkan kelewatan isyarat dan kehilangan peluang perdagangan terbaik
  3. Apabila trend pasaran berbalik, strategi mungkin mengalami kerugian berturut-turut
  4. Parameter purata bergerak tempoh tetap mungkin tidak disesuaikan dengan perubahan dinamik di pasaran

Untuk menangani risiko ini, langkah-langkah berikut boleh diambil:

  1. Mengoptimumkan parameter purata bergerak tempoh berdasarkan ciri-ciri pasaran dan memilih panjang yang sesuai untuk purata bergerak pantas dan perlahan
  2. Dalam pasaran terhad julat, pertimbangkan untuk menambah keadaan penapisan seperti penapisan ATR atau penapisan sudut silang purata bergerak
  3. Menetapkan paras stop loss dan mengambil keuntungan yang munasabah untuk mengawal risiko perdagangan tunggal
  4. Melakukan pengujian dan penilaian semula secara berkala, dan menyesuaikan parameter strategi mengikut perubahan pasaran

Pengoptimuman Strategi

  1. Memperkenalkan lebih banyak penunjuk teknikal seperti MACD dan RSI untuk membina strategi pelbagai faktor dan meningkatkan ketepatan isyarat
  2. Mengoptimumkan pengurusan kedudukan, seperti mempertimbangkan faktor seperti ATR atau turun naik untuk menyesuaikan saiz kedudukan secara dinamik
  3. Untuk pasaran terikat julat, pertimbangkan untuk memperkenalkan penunjuk penentuan trend seperti ADX untuk mengelakkan perdagangan yang kerap
  4. Gunakan pembelajaran mesin atau algoritma pengoptimuman untuk mencari kombinasi parameter optimum secara automatik

Pengoptimuman ini boleh meningkatkan daya adaptasi dan kestabilan strategi untuk menyesuaikan diri dengan keadaan pasaran yang berbeza. Walau bagaimanapun, perlu juga diperhatikan bahawa pengoptimuman berlebihan boleh menyebabkan terlalu banyak strategi dan prestasi yang buruk dalam perdagangan langsung. Pengesahan lanjut pada data luar sampel diperlukan.

Ringkasan

Strategi crossover purata bergerak berganda adalah strategi trend-mengikuti klasik yang menjana isyarat perdagangan melalui persilangan dua purata bergerak dengan tempoh yang berbeza. Ia mempunyai logik yang mudah, mudah dilaksanakan, dan sesuai untuk pasaran trend. Walau bagaimanapun, di pasaran terhad, ia mungkin mengalami perdagangan yang kerap dan kerugian berturut-turut. Oleh itu, apabila menggunakan strategi ini, adalah perlu untuk mengoptimumkan parameter purata bergerak berdasarkan ciri pasaran dan menetapkan paras stop-loss dan mengambil keuntungan yang munasabah. Di samping itu, fleksibiliti dan kestabilan strategi boleh ditingkatkan dengan memperkenalkan lebih banyak penunjuk teknikal, mengoptimumkan pengurusan kedudukan, penentuan trend, dll. Walau bagaimanapun, pengoptimuman berlebihan boleh menyebabkan terlalu banyak dan harus dirawat dengan berhati-hati. Secara keseluruhan, Strategi crossover purata bergerak berganda adalah strategi klasik yang bernilai belajar dan penyelidikan. Melalui pengoptimuman dan peningkatan berterusan, ia boleh menjadi alat perdagangan yang berkesan.


/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
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/
// © z4011

//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) 

float fastMA = switch fastMAType
    "Simple" => ta.sma(close, fastMALength)
    "Exponential" => ta.ema(close, fastMALength)
    "Weighted" => ta.wma(close, fastMALength)
    "Relative" => ta.rma(close, fastMALength)

plot(fastMA, color = color.aqua, linewidth = 2)

float slowMA = switch slowMAType
    "Simple" => ta.sma(close, slowMALength)
    "Exponential" => ta.ema(close, slowMALength)
    "Weighted" => ta.wma(close, slowMALength)
    "Relative" => ta.rma(close, slowMALength)

plot(slowMA, color = color.blue, linewidth = 2)


longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
    strategy.entry("Short", strategy.short)

closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
    strategy.close("Long", "Close")


Lebih lanjut