
Strategi silang tiga hala menggunakan silang rata-rata bergerak dari tempoh masa yang berbeza sebagai isyarat membeli dan menjual, termasuk strategi mengikuti trend. Strategi ini menggunakan tiga rata-rata bergerak, termasuk rata-rata bergerak jangka pendek, rata-rata bergerak jangka menengah dan rata-rata bergerak jangka panjang, berdasarkan silang mereka membentuk isyarat perdagangan.
Strategi ini mulakan dengan mengira purata bergerak jangka pendek (default 7 hari), purata bergerak jangka pertengahan (default 25 hari) dan purata bergerak jangka panjang (default 99 hari), dan kemudian menghasilkan isyarat dagangan mengikut peraturan berikut:
Apabila purata bergerak jangka pendek melintasi purata bergerak jangka menengah, ia menghasilkan isyarat beli.
Sinyal jual dihasilkan apabila rata-rata bergerak jangka pendek di bawah rata-rata bergerak jangka menengah.
Apabila rata-rata bergerak jangka pendek diletakkan di atas rata-rata bergerak jangka panjang, ia menghasilkan isyarat beli cepat.
Apabila purata bergerak jangka pendek di bawah purata bergerak jangka panjang, ia menghasilkan isyarat jual cepat.
Strategi ini berpendapat bahawa di atas rata-rata bergerak jangka pendek yang melintasi rata-rata bergerak jangka menengah menunjukkan trend pasaran berubah menjadi naik, dan oleh itu menghasilkan isyarat membeli; dan di bawah rata-rata bergerak jangka pendek yang melintasi rata-rata bergerak jangka menengah menunjukkan trend pasaran berubah menjadi turun, dan oleh itu menghasilkan isyarat menjual. Begitu juga, persilangan rata-rata bergerak jangka pendek dengan rata-rata bergerak jangka panjang juga menghasilkan isyarat perdagangan yang cepat untuk menangkap perubahan trend garis panjang.
Anda boleh mengoptimumkan dan mengurangkan isyarat palsu dengan menyesuaikan kitaran purata bergerak atau menambah syarat penapisan. Anda juga boleh mengurangkan kitaran dagangan pantas dan mengurangkan kekerapan dagangan.
Strategi silang tiga garis rata secara keseluruhan lebih mudah dan langsung, menentukan arah trend melalui persilangan garis rata yang berbeza untuk menghasilkan isyarat perdagangan. Strategi ini mudah dilaksanakan, parameter disesuaikan dengan fleksibel, dan dapat menangkap perubahan trend. Tetapi ada juga masalah keterlambatan rata-rata bergerak, dan risiko terlalu banyak isyarat 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)