Strategi Perdagangan Rata-rata Pergerakan Multi-Kerangka Waktu


Tanggal Pembuatan: 2023-09-21 20:45:38 Akhirnya memodifikasi: 2023-09-21 20:45:38
menyalin: 3 Jumlah klik: 1241
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini menggunakan crossover dari moving averages dari beberapa frame waktu untuk menilai sinyal perdagangan. Strategi ini dapat melihat moving averages dari frame waktu yang lebih lama pada frame waktu saat ini untuk menemukan arah tren yang lebih besar. Strategi ini termasuk dalam strategi pelacakan tren dari frame waktu yang berbeda.

Prinsip Strategi

Strategi ini menggunakan dua rata-rata bergerak, yang dihitung pada periode saat ini dan periode yang lebih tinggi.

Misalnya, menghitung garis 20 dan 50 pada grafik 15 menit:

  • Garis 20 dihitung berdasarkan garis K 15 menit saat ini
  • Garis 50 dihitung berdasarkan Garis K

Ketika 15 menit di atas garis 20 hari melintasi garis 50 hari, lakukan lebih banyak; ketika 15 menit di bawah garis 20 hari melintasi garis 50 hari, kosongkan.

Ini memungkinkan untuk mengamati tren siklus yang lebih panjang pada siklus saat ini. Strategi ini juga memungkinkan untuk menyesuaikan panjang siklus rata-rata bergerak.

Tanda titik dapat juga ditampilkan untuk mengingatkan transaksi.

Keunggulan Strategis

  • Analisis kerangka waktu menemukan tren yang lebih besar
  • Garis periode tinggi lebih stabil, menghindari terlalu banyak sinyal palsu
  • Garis siklus rendah lebih sensitif dan cepat menangkap perubahan tren
  • Dapat mengkonfigurasi multi-grup periodik rata-rata untuk kombinasi
  • Petunjuk transaksi dengan tanda titik yang jelas

Risiko Strategis

  • Multi-timeframe synthesis meningkatkan kompleksitas strategi
  • Masih ada risiko sinyal palsu dari garis periodik rendah
  • Sistem garis rata secara keseluruhan tertinggal dan mungkin melewatkan titik masuk terbaik
  • Hanya menggunakan sistem linear, filter terbatas
  • Kombinasi parameter siklus yang harus dioptimalkan, varietas yang berbeda tidak selalu sama

Langkah-langkah berikut dapat mengurangi risiko:

  • Menyimpan rata-rata periode yang lebih tinggi dan lebih panjang untuk memastikan penilaian tren utama yang benar

  • Menambahkan sinyal penyaringan lebih lanjut dari indikator teknis lainnya

  • Optimalkan parameter siklus rata-rata ke kombinasi optimal

  • Persyaratan masuk yang lebih longgar, seperti menambahkan bentuk K-line

Arah optimasi

Strategi ini dapat ditingkatkan dalam beberapa hal:

  1. Uji lebih banyak kombinasi siklus linear, optimasi parameter

Kombinasi siklus yang berbeda akan memiliki kombinasi yang paling cocok untuk varietas yang berbeda

  1. Tambahkan kondisi konfirmasi kedua saat menyilang

Misalnya, memeriksa MACD saat berselisih

  1. Optimalkan Stop Loss, Hindari Stop Loss Terlalu Dini

Anda dapat memutuskan apakah Anda akan keluar berdasarkan bukti tambahan di PostForm 123.

  1. Filter untuk siklus pendek dan siklus panjang

Siklus pendek menggunakan kondisi penyaringan yang lebih ketat, siklus panjang menggunakan kondisi yang lebih longgar

  1. Pertimbangkan kombinasi parameter yang berbeda untuk setiap periode waktu

Perbedaan karakteristik pasar dari periode waktu yang berbeda, dapat melakukan optimasi parameter

Meringkaskan

Strategi ini menilai arah tren dengan melihat persimpangan garis rata-rata beberapa kerangka waktu untuk menemukan tren tingkat yang lebih besar. Ini dapat secara efektif menghilangkan kebisingan jangka pendek, Focus123123 lebih besar dari irama. Tetapi ada juga kesulitan pengaturan siklus, keterlambatan penilaian tren, dll.

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

//@version=2

//Run script on a long interval gives better result for e.g. 1 Day
//Plots The Majority of Moving Averages
//Defaults to Current Chart Time Frame --- But Can Be Changed to Higher Or Lower Time Frames
//2nd MA Capability with Show Crosses Feature
//study(title="CM_Ultimate_MA_MTF", shorttitle="CM_Ultimate_MA_MTF", overlay=true)
strategy("Stratergy CM_Ultimate_MA_MTF", shorttitle = "Stratergy CM_Ultimate_MA_MTF", overlay = true) 
//,default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//inputs
src = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above",  defval="D")
len = input(20, title="Moving Average Length - LookBack Period")
atype = input(1,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA")
cc = input(true,title="Change Color Based On Direction?")
smoothe = input(2, minval=1, maxval=10, title="Color Smoothing - 1 = No Smoothing")
doma2 = input(false, title="Optional 2nd Moving Average")
len2 = input(50, title="Moving Average Length - Optional 2nd MA")
atype2 = input(1,minval=1,maxval=7,title="1=SMA, 2=EMA, 3=WMA, 4=HullMA, 5=VWMA, 6=RMA, 7=TEMA")
cc2 = input(true,title="Change Color Based On Direction 2nd MA?")
warn = input(false, title="***You Can Turn On The Show Dots Parameter Below Without Plotting 2nd MA to See Crosses***")
warn2 = input(false, title="***If Using Cross Feature W/O Plotting 2ndMA - Make Sure 2ndMA Parameters are Set Correctly***")
sd = input(false, title="Show Dots on Cross of Both MA's")


res = useCurrentRes ? timeframe.period : resCustom
//hull ma definition
hullma = wma(2*wma(src, len/2)-wma(src, len), round(sqrt(len)))
//TEMA definition
ema1 = ema(src, len)
ema2 = ema(ema1, len)
ema3 = ema(ema2, len)
tema = 3 * (ema1 - ema2) + ema3

avg = atype == 1 ? sma(src,len) : atype == 2 ? ema(src,len) : atype == 3 ? wma(src,len) : atype == 4 ? hullma : atype == 5 ? vwma(src, len) : atype == 6 ? rma(src,len) : tema
//2nd Ma - hull ma definition
hullma2 = wma(2*wma(src, len2/2)-wma(src, len2), round(sqrt(len2)))
//2nd MA TEMA definition
sema1 = ema(src, len2)
sema2 = ema(sema1, len2)
sema3 = ema(sema2, len2)
stema = 3 * (sema1 - sema2) + sema3

avg2 = atype2 == 1 ? sma(src,len2) : atype2 == 2 ? ema(src,len2) : atype2 == 3 ? wma(src,len2) : atype2 == 4 ? hullma2 : atype2 == 5 ? vwma(src, len2) : atype2 == 6 ? rma(src,len2) : tema

out = avg 
out_two = avg2

out1 = security(syminfo.tickerid, res, out)
out2 = security(syminfo.tickerid, res, out_two)

ma_up = out1 >= out1[smoothe]
ma_down = out1 < out1[smoothe]

col = cc ? ma_up ? lime : ma_down ? red : aqua : aqua
col2 = cc2 ? ma_up ? lime : ma_down ? red : aqua : aqua

circleYPosition = out2
chk=col==red?1:0

if (not na(chk))
    if (chk[1]==1 and chk==0)
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    else
        strategy.exit("RsiLE")

    if (chk[1]==0 and chk==1)
        strategy.entry("RsiSE", strategy.short, comment="RsiLE")
    else
        strategy.exit("RsiSE")
        
plot(out1, title="Multi-Timeframe Moving Avg", style=line, linewidth=4, color = col)
plot(doma2 and out2 ? out2 : na, title="2nd Multi-TimeFrame Moving Average", style=circles, linewidth=4, color=col2)
plot(sd and cross(out1, out2) ? circleYPosition : na,style=cross, linewidth=5, color=yellow)