
Strategi crossover triangulation menggunakan crossover rata-rata bergerak dari periode waktu yang berbeda sebagai sinyal beli dan jual, dan merupakan strategi pelacakan tren. Strategi ini menggunakan tiga rata-rata bergerak, termasuk rata-rata bergerak jangka pendek, rata-rata bergerak menengah, dan rata-rata bergerak jangka panjang, dan berdasarkan persimpangan mereka membentuk sinyal perdagangan.
Strategi ini pertama-tama menghitung rata-rata bergerak jangka pendek (default 7 days), rata-rata bergerak jangka menengah (default 25 days), dan rata-rata bergerak jangka panjang (default 99 days), lalu menghasilkan sinyal perdagangan berdasarkan aturan berikut:
Sebuah sinyal beli dihasilkan ketika rata-rata bergerak jangka pendek melewati rata-rata bergerak jangka menengah.
Sinyal jual dihasilkan ketika pergerakan rata-rata jangka pendek melewati pergerakan rata-rata jangka menengah.
Sebuah sinyal beli cepat dihasilkan ketika rata-rata bergerak jangka pendek melewati rata-rata bergerak jangka panjang.
Sebuah sinyal jual cepat dihasilkan ketika pergerakan rata-rata jangka pendek melewati pergerakan rata-rata jangka panjang.
Strategi ini berpendapat bahwa di atas rata-rata bergerak jangka pendek melewati rata-rata bergerak jangka menengah menunjukkan tren pasar berubah menjadi naik, sehingga menghasilkan sinyal beli; dan di bawah rata-rata bergerak jangka pendek melewati rata-rata bergerak jangka menengah menunjukkan tren pasar berubah menjadi turun, sehingga menghasilkan sinyal jual. Demikian pula, persilangan rata-rata bergerak jangka pendek dengan rata-rata bergerak jangka panjang juga menghasilkan sinyal perdagangan yang cepat untuk menangkap perubahan tren dari garis yang lebih panjang.
Anda dapat mengoptimalkan dan mengurangi sinyal palsu dengan menyesuaikan siklus rata-rata bergerak atau menambahkan kondisi penyaringan. Anda juga dapat mengurangi siklus perdagangan cepat dan mengurangi frekuensi perdagangan.
Strategi crossover tiga garis rata secara keseluruhan relatif sederhana dan langsung, menentukan arah tren melalui persilangan garis rata dengan periode waktu yang berbeda, untuk menghasilkan sinyal perdagangan. Strategi ini mudah diimplementasikan, parameter disesuaikan dengan fleksibilitas, dapat menangkap perubahan tren. Tetapi ada juga masalah keterlambatan rata-rata bergerak, dan risiko terlalu banyak sinyal palsu.
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
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("Üç Hareketli Ortalama Str.", overlay=true, initial_capital=10000, commission_value=0.047, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, calc_on_order_fills=true)
kisa = input(title = "Kısa Vade - Gün", defval = 7, minval = 1)
orta = input(title = "Orta Vade - Gün", defval = 25, minval = 1)
uzun = input(title = "Uzun Vade - Gün", defval = 99, minval = 1)
sma7 = sma(close, kisa)
sma25 = sma(close, orta)
sma99 = sma(close, uzun)
alTrend = plot (sma7, color=#2323F1, linewidth=2, title="Har.Ort. Kısa Vade", transp=0)
satTrend = plot (sma25, color=#FF0C00, linewidth=3, title="Har.Ort. Orta Vade", transp=0)
ort99 = plot (sma99, color=#DFB001, linewidth=3, title="Har.Ort. Uzun Vade", transp=0)
zamanaralik = input (2020, title="Backtest Başlangıç Tarihi")
al = crossover (sma7, sma25) and zamanaralik <= year
sat = crossover (sma25, sma7) and zamanaralik <= year
hizlial = crossover (sma7, sma99) and zamanaralik <= year
hizlisat = crossover (sma99, sma7) and zamanaralik <= year
alkosul = sma7 >= sma25
satkosul = sma25 >= sma7
hizlialkosul = sma7 >= sma99
hizlisatkosul = sma99 >= sma7
plotshape(al, title = "Buy", text = 'Al', style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sat, title = "Sell", text = 'Sat', style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(hizlial, title = "Hızlı Al", text = 'Hızlı Al', style = shape.labelup, location = location.belowbar, color= color.blue, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(hizlisat, title = "Hızlı Sat", text = 'Hızlı Sat', style = shape.labeldown, location = location.abovebar, color= #6106D6 , textcolor = color.white, transp = 0, size = size.tiny)
fill (alTrend, satTrend, color = sma7 >= sma25? #4DFF00 : #FF0C00, transp=80, title="Al-Sat Aralığı")
//fill (ort99, satTrend, color = sma7 >= sma25? #6106D6 : color.blue, transp=80, title="Hızlı Al-Sat Aralığı")
if (al)
strategy.entry("LONG", strategy.long)
if (sat)
strategy.entry("SHORT", strategy.short)
//if (hizlial)
// strategy.entry("My Short Entry Id", strategy.long)
//if (hizlisat)
// strategy.entry("My Short Entry Id", strategy.short)