Strategi rata-rata pergerakan dinamis multi-periode


Tanggal Pembuatan: 2023-10-27 16:07:16 Akhirnya memodifikasi: 2023-10-27 16:07:16
menyalin: 1 Jumlah klik: 647
1
fokus pada
1617
Pengikut

Strategi rata-rata pergerakan dinamis multi-periode

Strategi ini menghasilkan sinyal perdagangan dengan memilih berbagai jenis moving average secara dinamis dan menggabungkannya dengan beberapa periode waktu.

Prinsip Strategi

Strategi ini memungkinkan untuk memilih lima indikator rata-rata bergerak SMA, EMA, TEMA, WMA, dan HMA, dan mengatur durasi rata-rata rata-rata. Strategi ini akan memetakan berbagai jenis rata-rata sesuai dengan dinamika yang dipilih.

Secara khusus, strategi pertama-tama mendefinisikan periode pengembalian berdasarkan parameter masukan. Kemudian menghitung lima indikator rata-rata:

  • SMA
  • EMA Indeks Moving Average
  • TEMA Triple Moving Average
  • WMA Moving Average Berpengaruh
  • HMA Hull Moving Average

Pada pilihan, gambar garis rata-rata yang sesuai. Bila harga tutup lebih tinggi dari garis rata-rata, lakukan lebih banyak; Bila harga tutup lebih rendah dari garis rata-rata, kosongkan.

Strategi ini dapat menghasilkan sinyal perdagangan yang lebih andal dengan menggunakan kombinasi dari berbagai jenis garis rata-rata, yang dapat meluruskan data harga, memfilter kebisingan pasar, dan memungkinkan untuk menyesuaikan panjang siklus garis rata-rata, yang dapat diperdagangkan untuk tren dalam periode yang berbeda.

Keunggulan Strategis

  • Kombinasi menggunakan berbagai indikator rata-rata, reliabilitas yang lebih tinggi
  • Periode rata-rata yang dapat disesuaikan untuk operasi periode yang berbeda
  • Tipe linear dinamis, parameter optimasi yang fleksibel
  • Strategi pelacakan tren yang sederhana, intuitif, dan mudah diterapkan

Risiko Strategis

  • Pada saat ini, tren tren yang sedang berlangsung di Indonesia masih dalam kondisi yang tidak stabil.
  • Parameter tetap mudah overfit, efek disk mungkin lebih lemah dari pengukuran kembali
  • Fase multi-head aktif melakukan lebih banyak, fase kosong aktif kosong, mudah mempengaruhi efisiensi penggunaan dana

Mengurangi risiko dengan mengoptimalkan:

  • Menentukan waktu masuk yang lebih tepat, dikombinasikan dengan indikator lain untuk menilai tren
  • Parameter optimasi hard disk, menyesuaikan siklus rata-rata untuk menyesuaikan dengan lingkungan pasar yang berbeda
  • Mengoptimalkan manajemen posisi, menyesuaikan posisi sesuai dengan ukuran dana dan pengendalian risiko

Arah optimasi

Strategi ini dapat dioptimalkan dari beberapa arah:

  1. Menambahkan filter untuk indikator lain untuk menghasilkan sinyal perdagangan yang lebih stabil

Misalnya, Anda dapat menambahkan indikator kuantitatif, yang hanya menghasilkan sinyal perdagangan jika volume transaksi meningkat, dan memfilter beberapa terobosan palsu.

  1. Optimalkan Logika Keluar

Anda dapat mengatur saluran, hanya masuk ketika harga menembus saluran; mengatur garis stop loss, harga menyentuh garis stop loss dan kemudian merata. Hal ini dapat mengurangi kerugian yang tidak perlu.

  1. Periode rata-rata perubahan dinamis

Periode rata-rata rata-rata dapat disesuaikan sesuai dengan dinamika kondisi pasar, menggunakan rata-rata rata-rata jangka panjang ketika tren lebih jelas, menggunakan rata-rata rata-rata jangka pendek saat pencatatan.

  1. Strategi pengelolaan dana yang optimal

Ukuran posisi dapat disesuaikan sesuai dengan kondisi penarikan, mengurangi posisi saat penarikan, dan meningkatkan posisi secara moderat saat menghasilkan uang.

Meringkaskan

Strategi ini dengan menggunakan kombinasi berbagai indikator garis rata, dikombinasikan dengan beberapa periode waktu, membentuk efek pelacakan tren yang relatif stabil. Ada ruang yang luas untuk pengoptimalan strategi, dapat diperbaiki dari filter masuk, cara keluar, pengoptimalan parameter, dan lain-lain, sehingga strategi mendapatkan efek yang lebih baik di real-time.

Kode Sumber Strategi
/*backtest
start: 2022-10-20 00:00:00
end: 2023-10-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MA_strategy ", shorttitle="MA_strategy", overlay=true, initial_capital=100000)

qty = input(100000000, "Buy quantity")

testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")

testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,testStartMin)

testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false


ma1 = input( "SMA",title="Select MA", options=["SMA", "EMA","TEMA", "WMA","HMA"])


len1 = input(7, minval=1, title="Period")

s=sma(close,len1)

e=ema(close,len1)


xEMA1 = ema(close, len1)
xEMA2 = ema(xEMA1, len1)
xEMA3 = ema(xEMA2, len1)
t = 3 * xEMA1 - 3 * xEMA2 + xEMA3


f_hma(_src, _length)=>
    _return = wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))

h = f_hma(close, len1)

w = wma(close, len1)

ma = ma1 == "SMA"?s:ma1=="EMA"?e:ma1=="WMA"?w:ma1=="HMA"?h:ma1=="TEMA"?t:na

buy= close>ma
sell= close<ma

alertcondition(buy, title='buy', message='buy')
alertcondition(sell, title='sell', message='sell')

ordersize=floor(strategy.equity/close)

if testPeriod()
    strategy.entry("long",strategy.long,ordersize,when=buy)
    strategy.close("long", when = sell )