Strategi Pembalikan Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2023-10-24 10:56:08 Akhirnya memodifikasi: 2023-10-24 10:56:08
menyalin: 0 Jumlah klik: 589
1
fokus pada
1617
Pengikut

Strategi Pembalikan Rata-rata Pergerakan Ganda

Ringkasan

Strategi ini terutama menggunakan double moving average sebagai sinyal beli dan jual, untuk mendapatkan keuntungan ketika tren berbalik. Berbuat lebih banyak ketika melewati rata-rata bergerak jangka panjang di atas rata-rata bergerak jangka pendek, dan mengambil posisi kosong ketika melewati rata-rata bergerak jangka panjang di bawah rata-rata bergerak jangka pendek, adalah strategi tracking stop loss yang umum.

Prinsip Strategi

Strategi ini pertama-tama menetapkan dua rata-rata bergerak, yaitu rata-rata 20 hari yang lebih pendek, dan rata-rata 60 hari yang lebih panjang. Kemudian menilai persilangan rata-rata jangka pendek dan rata-rata jangka panjang untuk menentukan masuk.

Secara khusus, ketika garis rata-rata jangka pendek di atas garis rata-rata jangka panjang, ini menunjukkan bahwa saat ini sedang dalam tren naik, ini lebih banyak; ketika garis rata-rata jangka pendek di bawah garis rata-rata jangka panjang, ini menunjukkan bahwa saat ini sedang dalam tren turun, ini kosong.

Stop loss setelah melakukan shorting lebih banyak adalah stop trailing, yang dapat mengunci keuntungan maksimum berdasarkan harga tertinggi dan harga terendah.

Kode logis utama adalah sebagai berikut:

  1. Perhitungan 20 hari EMA dan 60 hari EMA
  2. Periksa apakah ada EMA 20 hari atau EMA 60 hari, dan jika ada, lakukan lebih banyak
  3. Periksa apakah 20 hari EMA melewati 60 hari EMA, jika tidak, kosongkan
  4. Setelah masuk ke posisi multi, stop loss dengan 3% dari harga tertinggi
  5. Setelah memasuki posisi shorting, stop loss dengan 3% dari harga minimum
  6. Pendapatan yang terus menerus pada Stop Loss Line

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Ini adalah ide yang sederhana, mudah dipahami, dan mudah diimplementasikan.
  2. Dengan menggunakan garis rata ganda, penyaringan palsu dapat dilakukan secara efektif.
  3. Menggunakan tracking stop loss, Anda dapat mengunci keuntungan maksimum.
  4. Pada saat perubahan tren, sinyal dapat ditangkap tepat waktu.
  5. Pengunduran diri dikendalikan dengan baik dan relatif stabil.

Analisis risiko

Strategi ini juga memiliki beberapa risiko:

  1. Bila tren tidak jelas, garis rata-rata ganda dapat sering berselisih, yang menyebabkan kerugian perdagangan yang sering terjadi.
  2. Penetapan yang tidak tepat pada stop loss dapat menyebabkan stop loss yang terlalu longgar atau terlalu radikal.
  3. Parameter yang ditetapkan jika panjang siklus tidak tepat, dapat menyebabkan kehilangan titik sinyal penting.
  4. Biaya transaksi yang lebih tinggi mempengaruhi ruang untung.

Ada beberapa cara untuk mengoptimalkan risiko:

  1. Sistem penyaringan digunakan untuk menghindari perdagangan buta jika tren tidak jelas.
  2. Optimalkan pengujian jangkauan hambatan, dan tentukan jangkauan hambatan yang sesuai.
  3. Penetapan parameter optimal ditemukan melalui pengukuran ulang dan penyesuaian parameter.
  4. Untuk mengurangi jumlah pemain yang membuka posisi, dan mengurangi biaya transaksi.

Optimalkan Pikiran

Strategi ini dapat dioptimalkan lebih lanjut dalam beberapa hal:

  1. Menambahkan penyaringan indikator lain, membentuk mekanisme masuk dengan kondisi ganda, menghindari terobosan palsu. Misalnya, penentuan indikator RSI dapat ditambahkan.

  2. Optimalkan parameter periodik dari moving average untuk menemukan kombinasi optimal. Anda dapat menguji parameter periodik yang berbeda dengan langkah demi langkah.

  3. Optimalkan Stop-Loss Range. Anda dapat menghitung Stop-Loss Range yang optimal dari data pengukuran ulang. Anda juga dapat mengatur Stop-Loss Range yang dinamis.

  4. Siapkan mekanisme re-entry. Setelah stop loss keluar, Anda dapat mengatur logika re-entry yang masuk akal, mengurangi jumlah transaksi.

  5. Menggabungkan indikator untuk menilai tren, menghentikan perdagangan jika tren tidak jelas, menghindari perdagangan yang tidak valid.

  6. Bergabung dengan mekanisme manajemen posisi untuk menyesuaikan posisi dan batas stop loss sesuai dengan situasi pasar.

Meringkaskan

Strategi pembalikan rata-rata bergerak ganda secara keseluruhan relatif sederhana dan praktis, dan merupakan metode yang umum dan efektif untuk menentukan titik balik tren melalui garis rata-rata ganda. Namun, ada risiko tertentu, perlu melakukan pengujian optimasi pada pengaturan parameter dan batas penghentian, dan menambahkan indikator penyaringan lainnya untuk digunakan bersama, agar strategi dapat dimanfaatkan secara maksimal. Jika telah dioptimalkan dengan cermat dan manajemen risiko yang ketat, strategi ini dapat menjadi strategi perdagangan pita gelombang yang stabil dan menguntungkan.

Kode 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)