Tren Bull/Bear Crossover Trading Strategi

Penulis:ChaoZhang, Tanggal: 2023-10-07 09:56:30
Tag:

Gambaran umum

Strategi ini menggunakan prinsip crossover rata-rata bergerak untuk menentukan arah tren dan menghasilkan sinyal beli dan jual.

Prinsip

Strategi ini menggunakan dua rata-rata bergerak, MA 7 hari sebagai garis cepat dan MA 5 bulan sebagai garis lambat. Garis cepat menangkap perubahan harga dengan cepat sementara garis lambat menyaring kebisingan dan menentukan arah tren. Ketika garis cepat melanggar di atas garis lambat dari bawah, itu dianggap sinyal bullish untuk pergi panjang. Ketika garis cepat melanggar garis lambat dari atas, itu dianggap sebagai sinyal bearish untuk pergi pendek.

Secara khusus, strategi ini menghitung rata-rata bergerak sederhana 7 hari (SMA) dan SMA 5 bulan, memetakan mereka pada grafik harga. Ketika garis 7 hari melintasi di atas garis 5 bulan dari bawah, sinyal beli dihasilkan. Ketika garis 7 hari melintasi di bawah garis 5 bulan dari atas, sinyal jual dipicu. Strategi ini juga memvisualisasikan periode sinyal.

Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Dasar teoritis yang sederhana dan dapat diandalkan, berdasarkan prinsip crossover rata-rata bergerak yang dikenal luas.

  2. Hanya dua rata-rata bergerak yang digunakan, dengan pemilihan parameter yang sederhana dan penerapan yang mudah.

  3. Jalur cepat dan lambat bekerja sama secara efektif untuk mengidentifikasi tren dan menyaring kebisingan pasar.

  4. Kerangka waktu yang berbeda ditangkap melalui MAs periode yang berbeda, mendeteksi perubahan tren pada beberapa skala.

  5. Implementasi sederhana dengan logika yang jelas dan mudah dipahami.

  6. Sinyal yang ditampilkan jelas dan intuitif untuk memutuskan perdagangan.

Risiko

Ada juga beberapa risiko:

  1. Cenderung sinyal palsu hanya mengandalkan MA persilangan.

  2. Tidak dapat menilai kekuatan tren secara efektif, menyebabkan sering stop loss di pasar berkisar.

  3. Periode MA tetap tidak dapat beradaptasi dengan perubahan pasar, yang membutuhkan optimasi parameter.

  4. Tingkat masuk dan keluar tidak jelas, dengan beberapa risiko whipsaw.

  5. Dasar teoritis yang sederhana dapat membahayakan kinerja dan potensi keuntungan.

Peningkatan

Strategi ini dapat ditingkatkan dalam hal berikut:

  1. Tambahkan indikator lain untuk menentukan tingkat masuk dan keluar, seperti KDJ untuk overbought/oversold.

  2. Melaksanakan mekanisme stop loss seperti trailing stop untuk membatasi kerugian.

  3. Mengoptimalkan periode MA untuk beradaptasi dengan siklus pasar yang berbeda.

  4. Tambahkan filter volume untuk menghindari kebocoran palsu.

  5. Evaluasi kekuatan tren, misalnya kemiringan MA, untuk skala ukuran posisi.

  6. Masukkan beberapa kerangka waktu untuk kontinuitas tren yang lebih baik.

Kesimpulan

Strategi ini mengidentifikasi tren bull/bear secara sederhana dan dapat diandalkan berdasarkan teori crossover MA. Pro adalah kesederhanaan dan kemudahan penggunaan, sementara kontra adalah risiko yang melekat dengan tren. Parameter penyesuaian halus, menambahkan indikator tambahan dll dapat meningkatkan kinerja strategi. Investor dapat memilih untuk menggunakannya berdasarkan nafsu risiko mereka.


/*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())


Lebih banyak