Strategi ini menggunakan purata bergerak dan julat sebenar purata untuk menentukan arah trend pasaran untuk perdagangan penjejakan trend.
Strategi ini menggunakan purata bergerak ma tempoh len dan 2 kali purata julat sebenar atr tempoh len untuk menentukan trend pasaran.
Apabila tahap rendah lebih besar daripada purata bergerak ditambah dengan julat sebenar purata (rendah > ma + atr), ia dinilai sebagai trend menaik. Apabila tinggi adalah kurang daripada purata bergerak tolak julat sebenar purata (tinggi < ma - atr), ia dinilai sebagai trend ke bawah.
Dalam kes-kes lain, keputusan sebelumnya dikekalkan.
Apabila trend menaik ditentukan, pergi panjang pada peratusan tertentu apabila dibenarkan untuk pergi panjang. Apabila trend menurun ditentukan, pergi pendek pada peratusan tertentu apabila dibenarkan untuk pergi pendek.
Syarat penutupan adalah untuk mencapai tarikh akhir dagangan yang ditetapkan.
Kelebihan strategi ini ialah:
Risiko utama yang dihadapi oleh strategi ini adalah:
Penyelesaian:
Strategi ini boleh dioptimumkan dari aspek berikut:
Idea keseluruhan strategi ini jelas dan mudah difahami. Ia menggunakan purata bergerak untuk menentukan arah trend dan menggunakan purata julat sebenar untuk menetapkan berhenti. Ia boleh dengan berkesan mengesan trend. Tetapi terdapat risiko tertentu, dan pengoptimuman lebih lanjut tetapan parameter dan penambahan penunjuk penilaian lain diperlukan. Secara umum, strategi ini menyediakan pendekatan yang layak untuk perdagangan pengesanan trend.
/*backtest start: 2024-01-04 00:00:00 end: 2024-01-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //2019 //Noro //@version=4 strategy(title = "Noro's MA+ATR Strategy", shorttitle = "MA+ATR str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") len = input(30, minval = 2, title = "MA Length") src = input(ohlc4, title = "MA Source") limitmode = input(false) fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //MA + BG atr = sma(tr, len) * 2 ma = sma(src, len) plot(ma, color = color.blue, linewidth = 4) trend = 0 trend := low > ma + atr ? 1 : high < ma - atr ? -1 : trend[1] col = trend == 1 ? color.lime : color.red bgcolor(col, transp = 70) //Trading lot = 0.0 lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if trend == 1 and limitmode == false strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if trend == -1 and limitmode == false strategy.entry("Short", strategy.short, needshort == false ? 0 : lot) if trend == 1 and limitmode strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if trend == -1 and limitmode strategy.entry("Short", strategy.short, needshort == false ? 0 : lot) // if time > timestamp(toyear, tomonth, today, 23, 59) // strategy.close_all()