이 전략은 볼띠 지표 설계에 기반하며, 가격이 볼띠를 뚫고 하향으로 갈 때, 그에 따른 더하거나 더 적은 작업을 수행한다. 이 전략은 뚫린 행동을 포착하여 수익을 얻는다.
구체적으로, 이 전략은 먼저 길이로 된 중도 SMA를 계산하고, 멀티배 표준 차로 계산된 상하의 궤도를 계산한다. 종전 가격이 아래에서 위로 하하 궤도를 돌파했을 때, 더 많은 입장을 취하고, 위에서 아래로 올라가는 궤도를 돌파했을 때, 공백 입장을 취한다. 동시에 정지 시간 제한 거래 구역을 설정한다. 매일 개장하기 전에 강제 평지 입장을 취한다.
이 전략은 가격이 상하 궤도를 돌파한 후의 확장 상황을 포착하기 위해 시도한다. 상하 궤도를 돌파할 때 다자력 강화, 상하 궤도를 돌파할 때 공자력 강화, 거래는 같은 방향으로 유리하다.
입시 조건을 최적화하고, 손실을 막는 전략을 추가하고, 트렌드 필터를 도입함으로써 위와 같은 위험을 줄일 수 있습니다.
이 전략은 볼띠를 기반으로 한 돌파 전략으로, 돌파가 펼쳐지는 시장을 포착하여 이익을 얻는다. 장점은 아이디어가 간단하고 구현하기 쉽다는 것이다. 단점은 곡선 시기의 오해에 쉽게 빠지게 되는 것이다.
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy("Noro's Bollinger Strategy v1.0", shorttitle = "Bollinger str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
length = input(20, minval=1)
mult = input(1.0, minval=0.001, maxval=50)
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")
source = close
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
up = close < lower
dn = close > upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
strategy.close_all()