Strategi Perdagangan Persilangan Tren


Tanggal Pembuatan: 2023-10-07 09:56:30 Akhirnya memodifikasi: 2023-10-07 09:56:30
menyalin: 0 Jumlah klik: 637
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini menggunakan prinsip persilangan rata-rata bergerak untuk menilai arah tren melalui persilangan garis cepat dan lambat untuk mengirimkan sinyal beli dan jual. Strategi ini sederhana dan dapat diandalkan, cocok untuk investor yang mencari keuntungan yang stabil.

Prinsip

Strategi ini menggunakan dua rata-rata bergerak, masing-masing adalah rata-rata 7 hari sebagai garis cepat dan rata-rata bulan sebagai garis lambat. Garis cepat dapat menangkap perubahan harga lebih cepat, garis lambat menghapus kebisingan, dan menentukan arah tren. Ketika garis cepat menerobos garis lambat dari arah bawah, anggap sebagai sinyal bullish, lakukan lebih banyak; ketika garis cepat turun dari arah atas dan menerobos garis lambat, anggap sebagai sinyal bearish, lakukan kosong.

Secara khusus, strategi ini menghasilkan sinyal beli dengan menghitung rata-rata bergerak sederhana 7 hari dan rata-rata bergerak sederhana Mei dan menggambarnya pada grafik harga. Ketika garis 7 hari memotong garis Mei dari bawah, sinyal beli dihasilkan; Ketika garis 7 hari jatuh dari atas, sinyal jual dihasilkan. Strategi ini juga membuat tanda visual pada saat sinyal dihasilkan.

Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Teori ini didasarkan pada prinsip sederhana dan dapat diandalkan, yang dikenal dengan nama Moving Average Crossover Principle.

  2. Dengan hanya menggunakan dua rata-rata bergerak, pilihan parameter sederhana dan mudah diterapkan.

  3. Garis cepat dan lambat digunakan untuk mengidentifikasi tren dan memfilter kebisingan pasar.

  4. Dengan menggunakan garis rata-rata periode yang berbeda, dapat menangkap perubahan tren pada skala waktu yang berbeda.

  5. Implementasi yang sederhana, kode yang mudah dipahami, dan logika yang jelas.

  6. Tanda-tanda visual menunjukkan petunjuk yang jelas dan intuitif, dan keputusan operasional lebih jelas.

Risiko

Strategi ini juga memiliki beberapa risiko:

  1. Hanya berdasarkan operasi crossover linear, mudah untuk menghasilkan sinyal pemicu yang salah.

  2. Tidak dapat menilai kekuatan atau kelemahan tren secara efektif, dan mungkin sering mengalami penghentian pada saat gempa.

  3. Periode rata-rata tetap tidak dapat beradaptasi dengan perubahan pasar, perlu mengoptimalkan parameter.

  4. Tidak dapat menentukan tempat pembelian dan penjualan, ada risiko tertentu untuk operasi di pasar.

  5. Berdasarkan teori yang lebih sederhana, efeknya mungkin diskon, ruang untuk keuntungan terbatas.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Menambahkan indikator lain untuk menentukan titik jual beli, seperti indikator KDJ untuk menilai overbought dan oversold.

  2. Menambahkan mekanisme stop loss, seperti pelacakan stop loss, untuk menghindari peningkatan kerugian.

  3. Optimalkan parameter siklus rata-rata agar dapat beradaptasi dengan siklus yang berbeda.

  4. Meningkatkan penyaringan lalu lintas untuk menghindari penembusan palsu.

  5. Evaluasi tren yang kuat dan lemah, seperti perhitungan garis rata-rata, operasi intensitas yang berbeda.

  6. Dengan analisis siklus waktu yang lebih luas, kita dapat melihat apakah tren ini akan terus berlanjut.

Meringkaskan

Strategi ini didasarkan pada prinsip lintas rata-rata bergerak, mudah dan dapat diandalkan untuk mengidentifikasi tren bullish dan bearish. Kelebihannya adalah mudah dan mudah dioperasikan, kekurangannya adalah ada risiko mengikuti tren secara membabi buta.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dadashkadir

//@version=4
strategy("Mount MaV - Day MaV CrossOver Strgty", shorttitle="Yusram Str.", overlay=true)
src = input(title= "Kaynak", type=input.source, defval=close)
mav = input(title="Hareketli Ortlama Tipi", defval="SMA", options=["SMA", "EMA", "WMA"])
Gbar = input(title="Günlük Bar Sayısı", defval=7, minval=1, maxval=999)
Abar = input(title="Aylık Bar Sayısı", defval=5, minval=1, maxval=999)
//displacement = input(20, minval=1, title="Displacement")
getMA(src, length) =>
    ma = 0.0
    if mav == "SMA"
        ma := sma(src, length)
        ma

    if mav == "EMA"
        ma := ema(src, length)
        ma

    if mav == "WMA"
        ma := wma(src, length)
        ma
    ma
long = "M" //Aylık
ln = security(syminfo.ticker, long, src)
lnma = getMA(ln, Abar)
gnma = getMA(src, Gbar)
col1= gnma>gnma[1]
col3= gnma<gnma[1]
colorM = col1 ? color.green : col3 ? color.navy : color.yellow
l1 = plot(lnma, title="MhO", trackprice = true, style=plot.style_line, color=color.red, linewidth=3)
l2 = plot(gnma, title="DhO", trackprice = true, style=plot.style_line, color=colorM, linewidth=3)
fill(l1, l2, color = lnma < gnma ? color.green : color.red, title="Gölgelendirme", transp=90)
zamanaralik = input (2020, title="Backtest Başlangıç Tarihi")
al  = crossover (gnma, lnma) and zamanaralik <= year
sat = crossover (lnma, gnma) and zamanaralik <= year
plotshape(al,  title = "Giriş",  text = 'Al',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sat, title = "Çıkış", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

FromDay    = input(defval = 1, title = "Str. Başlama Tarihi Gün", minval = 1, maxval = 31)
FromMonth  = input(defval = 1, title = "Str. Başlama Tarihi Ay", minval = 1, maxval = 12)
FromYear   = input(defval = 2015, title = "Str. Başlama Tarihi Yıl", minval = 2005)
ToDay      = input(defval = 1, title = "Str. Bitiş Tarihi Gün", minval = 1, maxval = 31)
ToMonth    = input(defval = 1, title = "Str. Bitiş Tarihi Ay", minval = 1, maxval = 12)
ToYear     = input(defval = 9999, title = "Str. Bitiş Tarihi Yıl", minval = 2006)
Start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)
Finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)
Timerange() =>
    time >= Start and time <= Finish ? true : false
if al
    strategy.entry("Al", strategy.long, when=Timerange())
if sat
    strategy.entry("Sat", strategy.short, when=Timerange())