
Dual Moving Average Breakout Strategy adalah strategi perdagangan kuantitatif yang didasarkan pada rata-rata bergerak cepat dan rata-rata bergerak lambat. Ini menggunakan rata-rata bergerak indeks (EMA) dari dua periode yang berbeda sebagai sinyal perdagangan.
Logika inti dari strategi ini adalah menggunakan rata-rata bergerak cepat dan rata-rata bergerak lambat untuk membentuk sinyal perdagangan. Strategi ini mendefinisikan siklus rata-rata bergerak cepat selama 12 hari dan siklus rata-rata bergerak lambat selama 26 hari. Metode perhitungan adalah sebagai berikut:
Strategi ini digunakan untuk menilai tren pasar dan menghasilkan sinyal perdagangan melalui persilangan rata-rata bergerak cepat dan rata-rata bergerak lambat.
Strategi penembusan garis rata bergerak ganda memiliki keuntungan sebagai berikut:
Strategi penembusan dua garis rata-rata bergerak juga memiliki beberapa risiko:
Solusi:
Strategi penembusan garis rata bergerak ganda dapat dioptimalkan dengan:
Strategi penembusan garis rata bergerak ganda adalah strategi perdagangan kuantitatif yang sederhana dan praktis. Ini memiliki keunggulan seperti logika strategi yang sederhana, mudah diterapkan, dan ada juga masalah adaptasi pasar tertentu. Kita dapat menjadikannya sistem perdagangan yang menguntungkan secara stabil melalui metode pengoptimalan parameter, penyaringan sinyal, dan pengendalian risiko. Secara keseluruhan, strategi garis rata bergerak ganda adalah prototipe strategi yang sangat baik yang layak untuk dipelajari dan diterapkan oleh pedagang kuantitatif.
/*backtest
start: 2023-01-17 00:00:00
end: 2024-01-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("CDC Action Zone V.2", overlay=true)
// CDC ActionZone V2 29 Sep 2016
// CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market
// 11 Nov 2016 : Ported to Trading View with minor UI enhancement
LSB = input(title="Long/Short", defval="Long only", options=["Long only", "Short only" , "Both"])
src = input(title="Data Array",type=input.source,defval=ohlc4)
prd1=input(title="Short MA period", type=input.integer,defval=12)
prd2=input(title="Long MA period",type=input.integer,defval=26)
AP = ema(src,2)
Fast = ema(AP,prd1)
Slow = ema(AP,prd2)
Bullish = Fast>Slow
Bearish = Fast<Slow
Green = Bullish and AP>Fast
Red = Bearish and AP<Fast
Yellow = Bullish and AP<Fast
Blue = Bearish and AP>Fast
Buy = Bullish and Bearish[1]
Sell = Bearish and Bullish[1]
alertcondition(Buy,"Buy Signal","Buy")
alertcondition(Sell,"Sell Signal","Sell")
//Plot
l1=plot(Fast,"Fast", linewidth=1,color=color.red)
l2=plot(Slow,"Slow", linewidth=2,color=color.blue)
bcolor = Green ? color.lime : Red ? color.red : Yellow ? color.yellow : Blue ? color.blue : na
barcolor(color=bcolor)
fill(l1,l2,bcolor)
// === INPUT BACKTEST RANGE ===
FromYear = input(defval = 2000, title = "From Year", minval = 1920)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 1921)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
if LSB == "Long only" and Buy and window()
strategy.entry("L",true)
if LSB == "Long only" and Sell and window()
strategy.close("L",qty_percent=100,comment="TP Long")
if LSB == "Both" and Buy and window()
strategy.entry("L",true)
if LSB == "Both" and Sell and window()
strategy.entry("S",false)
if LSB == "Short only" and Sell and window()
strategy.entry("S",false)
if LSB == "Short only" and Buy and window()
strategy.close("S",qty_percent=100,comment="TP Short")