Strategi mengikut arah aliran berdasarkan purata bergerak


Tarikh penciptaan: 2024-01-22 17:26:04 Akhirnya diubah suai: 2024-01-22 17:26:04
Salin: 0 Bilangan klik: 575
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan purata bergerak

Gambaran keseluruhan

Strategi ini menggunakan purata bergerak cepat dan purata bergerak perlahan untuk membina isyarat perdagangan, untuk mengenal pasti dan mengesan trend. Ia menghasilkan isyarat beli apabila ia melintasi garis perlahan di atas garis pantas; ia menghasilkan isyarat jual apabila ia melintasi garis perlahan di bawah garis pantas.

Prinsip Strategi

Strategi ini menggunakan Exponential Moving Average dalam dua tempoh yang berbeza sebagai asas untuk membuat keputusan perdagangan. Parameter purata bergerak cepat ditetapkan pada 30 hari untuk menangkap perubahan harga yang lebih pendek; parameter purata bergerak perlahan ditetapkan pada 100 hari untuk menentukan arah trend garis panjang dalam harga.

Apabila garisan pantas dari bawah melintasi garisan perlahan, ia menunjukkan bahawa pasaran memasuki trend naik, menghasilkan isyarat beli; apabila garisan pantas dari atas melintasi garisan perlahan, ia menunjukkan bahawa pasaran memasuki trend turun, menghasilkan isyarat jual.

Kelebihan Strategik

Strategi ini mempunyai kelebihan berikut:

  1. Pembinaan berasaskan garis rata dapat menghapuskan bunyi pasaran jangka pendek dengan berkesan.
  2. Menggunakan strategi dua garis sejajar, anda boleh menentukan arah trend dengan jelas.
  3. Untuk mencapai parameter yang dioptimumkan, kitaran rata-rata perlahan boleh disesuaikan.
  4. Ia dilengkapi dengan ciri-ciri untuk mengesan trend garis tengah dan jangka pendek.
  5. Peraturan-peraturan yang mudah difahami, mudah difahami dan sesuai untuk pemula.

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Apabila harga berlaku penyusunan melintang, mudah untuk menghasilkan isyarat perdagangan yang salah. Anda boleh mengurangkan risiko dengan mengoptimumkan parameter garis rata.
  2. Keadaan luar biasa yang tidak dapat dinilai dan diuruskan dengan berkesan dalam perubahan harga yang kuat. Anda boleh menetapkan stop loss untuk mengawal risiko.
  3. Sistem garis rata itu sendiri mempunyai ketinggalan dan mungkin terlepas titik perubahan harga. Ia boleh dioptimumkan dengan gabungan petunjuk lain.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Optimumkan parameter kitaran garis purata untuk meningkatkan keberkesanan keuntungan.
  2. Menambah kriteria lain untuk menentukan indikator, seperti indikator jumlah dagangan, dan sebagainya, untuk mengelakkan penembusan palsu.
  3. Tambah strategi hentikan kerugian dan kawal kerugian tunggal.
  4. Menggabungkan indikator trend, menilai kekuatan trend, dan mengelakkan pembalikan trend.
  5. Tambah fungsi pengoptimuman parameter untuk menjadikan strategi lebih umum.

ringkaskan

Strategi ini berdasarkan sistem keputusan perdagangan binaan dua garis rata, menilai trend pasaran melalui hubungan harga garis rata cepat dan garis rata lambat, menghasilkan isyarat yang mudah dan jelas. Strategi ini menapis sebahagian bunyi bising, dapat berjalan lancar, sesuai untuk perdagangan trend garis panjang dan tengah. Tetapi ada juga beberapa kelemahan, dengan melakukan pengoptimuman pelbagai indikator dan kawalan risiko, strategi ini dapat dioptimumkan menjadi lebih umum dan efisien.

Kod sumber strategi
/*backtest
start: 2023-01-21 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 30, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 100, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 0, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 0, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 0, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.58)