Chiến lược này hoạt động dựa trên sự phá vỡ của giá. Nó tính toán giá cao nhất và giá thấp nhất trong một chu kỳ nhất định và tạo ra tín hiệu giao dịch khi giá phá vỡ các giới hạn này.
Tính toán giá cao nhấtupex và giá thấp nhấtdnex trong chu kỳ N gần đây nhất.
Khi giá vượt quá uex, hãy làm nhiều hơn.
Khi giá thấp hơn dnex, hãy thả.
Các giao dịch có thể được cấu hình là giao dịch chỉ với số dư, chỉ với số dư hoặc giao dịch hai chiều.
Tỷ lệ sử dụng vốn có thể phân bổ.
Có thể cấu hình khoảng thời gian giao dịch.
Chiến lược này thực hiện theo xu hướng bằng cách nắm bắt các tín hiệu phá vỡ giá. Tối ưu hóa cơ chế xác minh phá vỡ và thiết lập tham số có thể tăng hiệu quả. Tuy nhiên, cần chú ý đến phòng ngừa phá vỡ giả và kiểm soát rủi ro.
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-20 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Brakeout Strategy v1.0", shorttitle = "Brakeout str 1.0", 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(4, defval = 4, minval = 1, maxval = 1000, title = "Length")
showlines = input(true, defval = true, title = "Show Lines?")
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")
//Extremums
upex = highest(high, len)
dnex = lowest(low, len)
col = showlines ? blue : na
plot(upex, color = col, linewidth = 2)
plot(dnex, color = col, linewidth = 2)
//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[len]))
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)), stop = upex + syminfo.mintick)
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)), stop = dnex - syminfo.mintick)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()