Strategi ini masuk dan keluar dari perdagangan dengan harga yang bergeser untuk mengikuti tren.
Menghitung harga pergeseran berdasarkan persentase penutupan sebelumnya.
Harga yang bergeser ke bawah adalah garis beli, harga yang bergeser ke atas adalah garis jual.
Masuk long ketika harga mencapai garis beli.
Keluar saat harga mencapai garis jual.
Strategi ini mencapai mengambil keuntungan otomatis melalui tingkat masuk / keluar yang bergeser. Peningkatan lebih lanjut melalui optimasi parameter dan peningkatan logika dapat meningkatkan kinerja. Tetapi risiko whipsaw perlu dikelola. Secara keseluruhan pendekatan yang sederhana dan praktis untuk mengikuti tren perdagangan.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 4d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2019 //@version=3 strategy(title = "Noro's ShiftEx Strategy v2.0", shorttitle = "ShiftEx 2.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings buy = input(-10.0, title = "Buy, src-%") sell = input(0.0, title = "Sell, src+%") buysrc = input(low, title = "Source for buy") sellsrc = input(ohlc4, title = "Source for sell") offset = input(true) 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") //Levels bar = close > open ? 1 : close < open ? -1 : 0 mult = 1 / syminfo.mintick lb = bar == -1 ? buysrc + ((buysrc / 100) * (buy * 1)) : buysrc + ((buysrc / 100) * (buy * 2)) levelbuy = round(lb * mult) / mult ls = sellsrc + ((sellsrc / 100) * sell) levelsell = round(ls * mult) / mult //Lines os = offset ? 1 : 0 plot(levelbuy, offset = os, linewidth = 2, color = lime, title = "Buy") plot(levelsell, offset = os, linewidth = 2, color = blue, title = "Sell") //Trading if low[1] > 0 strategy.entry("long", strategy.long, limit = levelbuy, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) strategy.entry("close", strategy.short, 0, limit = levelsell, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))