Strategi ini menggunakan prinsip crossover rata-rata bergerak untuk menentukan arah tren dan menghasilkan sinyal beli dan jual.
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.
Strategi ini memiliki keuntungan berikut:
Dasar teoritis yang sederhana dan dapat diandalkan, berdasarkan prinsip crossover rata-rata bergerak yang dikenal luas.
Hanya dua rata-rata bergerak yang digunakan, dengan pemilihan parameter yang sederhana dan penerapan yang mudah.
Jalur cepat dan lambat bekerja sama secara efektif untuk mengidentifikasi tren dan menyaring kebisingan pasar.
Kerangka waktu yang berbeda ditangkap melalui MAs periode yang berbeda, mendeteksi perubahan tren pada beberapa skala.
Implementasi sederhana dengan logika yang jelas dan mudah dipahami.
Sinyal yang ditampilkan jelas dan intuitif untuk memutuskan perdagangan.
Ada juga beberapa risiko:
Cenderung sinyal palsu hanya mengandalkan MA persilangan.
Tidak dapat menilai kekuatan tren secara efektif, menyebabkan sering stop loss di pasar berkisar.
Periode MA tetap tidak dapat beradaptasi dengan perubahan pasar, yang membutuhkan optimasi parameter.
Tingkat masuk dan keluar tidak jelas, dengan beberapa risiko whipsaw.
Dasar teoritis yang sederhana dapat membahayakan kinerja dan potensi keuntungan.
Strategi ini dapat ditingkatkan dalam hal berikut:
Tambahkan indikator lain untuk menentukan tingkat masuk dan keluar, seperti KDJ untuk overbought/oversold.
Melaksanakan mekanisme stop loss seperti trailing stop untuk membatasi kerugian.
Mengoptimalkan periode MA untuk beradaptasi dengan siklus pasar yang berbeda.
Tambahkan filter volume untuk menghindari kebocoran palsu.
Evaluasi kekuatan tren, misalnya kemiringan MA, untuk skala ukuran posisi.
Masukkan beberapa kerangka waktu untuk kontinuitas tren yang lebih baik.
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())