Strategi Pembalikan Purata Pergerakan Berganda


Tarikh penciptaan: 2023-10-24 10:56:08 Akhirnya diubah suai: 2023-10-24 10:56:08
Salin: 0 Bilangan klik: 589
1
fokus pada
1617
Pengikut

Strategi Pembalikan Purata Pergerakan Berganda

Gambaran keseluruhan

Strategi ini terutamanya menggunakan purata bergerak ganda sebagai tanda membeli dan menjual, untuk mendapat keuntungan apabila trend berbalik. Apabila bergerak pendek rata-rata bergerak lebih banyak apabila bergerak panjang rata-rata bergerak, apabila bergerak pendek rata-rata bergerak bawah apabila bergerak panjang rata-rata bergerak, adalah salah satu yang biasa strategi berhenti kehilangan.

Prinsip Strategi

Strategi ini mula-mula menetapkan dua purata bergerak, satu purata 20 hari yang lebih pendek, dan satu purata 60 hari yang lebih lama. Kemudian menilai persilangan purata jangka pendek dan purata jangka panjang untuk menentukan kemasukan.

Khususnya, apabila garis purata jangka pendek melintasi garis purata jangka panjang, ia menunjukkan bahawa ia sedang dalam trend menaik, dan ia lebih banyak; apabila garis purata jangka pendek melintasi garis purata jangka panjang, ia menunjukkan bahawa ia sedang dalam trend menurun, dan ia kosong.

Hentikan kerugian selepas melakukan lebih banyak shorting adalah dengan mengesan hentian, berdasarkan harga tertinggi dan harga terendah untuk trailing stop, anda boleh mengunci keuntungan maksimum.

Logik kod utama adalah seperti berikut:

  1. Hitung EMA 20 dan 60 hari
  2. Periksa EMA 20 hari untuk EMA 60 hari, jika ada, buat lebih
  3. Tentukan sama ada EMA 20 hari atau EMA 60 hari, dan jika ya, kosongkan
  4. Apabila anda memasuki kedudukan tambahan, anda boleh berhenti dengan 3% dari harga tertinggi sebagai garis kerugian.
  5. Selepas memasuki kedudukan shorting, stop loss dengan 3% daripada harga minimum
  6. Penyesuaian Hentian Kerosakan Berterusan Semasa memegang Kedudukan

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Ia mudah difahami dan mudah dilaksanakan.
  2. Garis rata dua kali digunakan untuk menyaring penembusan palsu.
  3. Menggunakan tracking stop loss untuk mengunci keuntungan maksimum.
  4. Ia boleh menangkap isyarat pada masa yang tepat apabila trend berubah.
  5. Pengunduran diri dikawal dengan baik dan agak stabil.

Analisis risiko

Strategi ini mempunyai beberapa risiko:

  1. Apabila trend tidak jelas, garis rata-rata berganda mungkin sering bersilang, menyebabkan kerugian perdagangan yang kerap.
  2. Penetapan yang tidak betul dalam julat kemusnahan boleh menyebabkan kemusnahan yang terlalu ringan atau terlalu radikal.
  3. Parameter yang ditetapkan jika jangka masa yang tidak betul, boleh menyebabkan kehilangan titik isyarat penting.
  4. Kos dagangan yang tinggi menjejaskan ruang keuntungan.

Untuk mengoptimumkan risiko, anda boleh:

  1. Apabila trend tidak jelas, gunakan sistem penapisan untuk mengelakkan perdagangan buta.
  2. Optimumkan penghadaman ujian dengan menetapkan penghadaman yang sesuai.
  3. Penetapan parameter yang optimum melalui pengukuran semula dan penyesuaian parameter.
  4. Mengurangkan jumlah pelabur dan mengurangkan kos transaksi.

Optimum idea

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Menambah penapisan indikator lain, membentuk mekanisme kemasukan berbilang syarat, mengelakkan pemecahan palsu. Sebagai contoh, penentuan indikator RSI boleh dimasukkan.

  2. Mengoptimumkan parameter kitaran pada garis purata bergerak untuk mencari kombinasi parameter yang terbaik. Anda boleh menguji parameter kitaran yang berbeza dengan langkah demi langkah.

  3. Mengoptimumkan Jarak Hentian. Jarak Hentian yang optimum boleh dikira melalui data pengukuran semula. Jarak Hentian yang dinamik juga boleh ditetapkan.

  4. Menetapkan mekanisme kemasukan semula. Selepas penarikan kerugian, logik kemasukan semula yang munasabah boleh ditetapkan untuk mengurangkan jumlah transaksi.

  5. Menggabungkan indikator penilaian trend, berhenti berdagang apabila trend tidak jelas, untuk mengelakkan perdagangan tidak sah.

  6. Menyertai mekanisme pengurusan kedudukan, menyesuaikan kedudukan dan had hentian mengikut keadaan pasaran yang dinamik.

ringkaskan

Strategi pembalikan rata-rata bergerak berganda ini agak mudah dan praktikal secara keseluruhan, dan merupakan kaedah yang biasa dan berkesan untuk menentukan titik peralihan trend melalui dua garis rata. Tetapi ada risiko tertentu, perlu melakukan ujian pengoptimuman pada parameter dan ruang berhenti, dan menggabungkan indikator penapisan lain untuk digunakan bersama, agar strategi dapat digunakan secara maksimal. Jika dioptimumkan dengan teliti dan pengurusan risiko yang ketat, strategi ini boleh menjadi strategi perdagangan jangka panjang yang stabil dan menguntungkan.

Kod sumber strategi
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.4", shorttitle = "Scalper str 1.4", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needbe = input(true, defval = true, title = "Bands Entry")
needct = input(false, defval = false, title = "Counter-trend entry")
needdb = input(true, defval = true, title = "Double Body")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band 1")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band 1")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = needdb == false ? ema(body, 30) : ema(body, 30) * 2
candle = high - low

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and bar == -1)) ? 1 : 0
dn7 = trend == 1 and ((bar == 1 and bar[1] == 1) or (close > hd and needbe == true)) and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and ((bar == -1 and bar[1] == -1) or (close < ld2 and needbe == true)) and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and bar == 1)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)