
이 전략은 부린 띠 지표에 기초하여 거래 신호를 판단하고, 스톱 로드 방식을 사용하여 포지션 관리를 한다. 전략은 부린 띠의 오르락 내리락의 돌파 상황을 모니터링하며, 가격이 부린 띠를 오르락 돌파할 때 더 많이 하고, 하락 돌파할 때 공백을 하고, 반향 돌파할 때 손해 평평 포지션을 사용한다.
이 전략은 브린 벨트 지표의 중도, 상도, 하도선을 사용합니다. 중도선은 일정 기간 동안의 가격의 평균값을 계산하는 것으로, 상도선은 중도선과 표준 차이의 두 배이고, 하도선은 중도선과 표준 차이의 두 배를 빼는 것입니다.
코드는 먼저 브린 띠의 중간, 상단, 하단 궤도를 계산한다. 다음, 가격이 상단 또는 하단 궤도를 돌파했는지 판단한다. 상단 궤도를 돌파하면 더 많이 하고, 하단 궤도를 돌파하면 공백하게 한다. 동시에, 가격이 상단 또는 하단 궤도를 돌파하는 방향으로 역으로 돌파하면 손해 평평점을 사용한다.
이 전략의 논리는 다음과 같습니다.
이런 식으로, 주가가 큰 변동이 있을 때 트렌드를 잡을 수 있고, 동시에 스톱로스로 손실을 제한할 수 있다.
조합 지표 조합, 적절히 조정된 스톱 유닛 등의 방법으로 최적화할 수 있다.
이 전략은 브린 벨트 지표에 기초하여 비교적 간단한 트렌드 추적 전략을 설계했습니다. 가격의 돌파구가 발생했을 때 신속하게 포지션을 형성할 수 있으며, 동시에 스톱로스를 사용하여 위험을 제어 할 수 있습니다. 그러나 가격 요인을 고려하는 것 만으로는 잘못된 판단이 발생할 수 있으며, 너무 민감한 스톱로스는 거래 빈도를 증가시킬 수 있습니다. 우리는 파라미터 최적화, 지표 조합, 스톱로스 조정 등의 방법으로이 전략을 더 개선 할 수 있습니다.
/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ROBO_Trading
//@version=5
strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1)
//Settings
long = input(true)
short = input(true)
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
source = input(close)
showbb = input(true, title = "Show Bollinger Bands")
showof = input(true, title = "Show Offset")
startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1")
finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1")
//Bollinger Bands
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
//Show indicator
offset = showof ? 1 : 0
colorBasis = showbb ? color.gray : na
colorUpper = showbb ? color.blue : na
colorLower = showbb ? color.blue : na
colorBands = showbb ? color.blue : na
p0 = plot(basis, "Basis", color = colorBasis, offset = offset)
p1 = plot(upper, "Upper", color = colorUpper, offset = offset)
p2 = plot(lower, "Lower", color = colorLower, offset = offset)
fill(p1, p2, title = "Background", color = colorBands, transp = 90)
//Trading
truetime = true
if basis > 0 and truetime
if long
strategy.entry("Long", strategy.long, stop = upper, when = truetime)
if short
strategy.entry("Short", strategy.short, stop = lower, when = truetime)
if long == false
strategy.exit("Exit", "Short", stop = upper)
if short == false
strategy.exit("Exit", "Long", stop = lower)
if time > finalTime
strategy.close_all()