Strategi ini menggunakan rata-rata bergerak dan rentang rata-rata yang benar untuk menentukan arah tren pasar untuk perdagangan pelacakan tren.
Strategi ini menggunakan rata-rata bergerak ma periode len dan 2 kali rata-rata rentang nyata atr periode len untuk menentukan tren pasar.
Ketika rendah lebih besar dari rata-rata bergerak ditambah rentang rata-rata yang benar (rendah > ma + atr), itu dinilai sebagai tren naik. Ketika tinggi kurang dari rata-rata bergerak dikurangi rentang rata-rata yang benar (tinggi < ma - atr), itu dinilai sebagai tren menurun.
Dalam kasus lain, putusan sebelumnya dipertahankan.
Ketika tren naik ditentukan, pergi panjang pada persentase tertentu ketika diizinkan untuk pergi panjang. Ketika tren menurun ditentukan, pergi pendek pada persentase tertentu ketika diizinkan untuk pergi pendek.
Kondisi penutupan adalah untuk mencapai tanggal akhir perdagangan yang ditentukan.
Keuntungan dari strategi ini adalah:
Risiko utama yang dihadapi oleh strategi ini adalah:
Solusi:
Strategi dapat dioptimalkan dari aspek berikut:
Ide keseluruhan strategi ini jelas dan mudah dipahami. Ini menggunakan moving average untuk menentukan arah tren dan menggunakan average true range untuk mengatur stop. Ini dapat secara efektif melacak tren. Tetapi ada risiko tertentu, dan pengoptimalan lebih lanjut dari pengaturan parameter dan penambahan indikator penilaian lainnya diperlukan. Secara umum, strategi ini memberikan pendekatan yang layak untuk pelacakan perdagangan tren.
/*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()