Chiến lược này đi vào và ra khỏi giao dịch ở mức giá thay đổi để theo xu hướng.
Tính toán giá chuyển đổi dựa trên tỷ lệ phần trăm đóng cửa trước đó.
Giá chuyển xuống là đường mua, giá chuyển lên là đường bán.
Nhập dài khi giá chạm vào đường mua.
Ra khi giá đạt đến đường bán.
Chiến lược này đạt được lợi nhuận theo dõi tự động thông qua các mức nhập / xuất chuyển. Những cải tiến hơn nữa thông qua tối ưu hóa tham số và cải tiến logic có thể cải thiện hiệu suất. Nhưng rủi ro whipsaw cần phải được quản lý. Nhìn chung một cách tiếp cận đơn giản và thực tế cho xu hướng sau giao dịch.
/*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)))