
이 전략은 부린 반지 지표와 동력 지표를 결합하여 부린 반지 회귀와 동력 돌파를 달성하는 포지션 거래 전략에 기반합니다. 부린 반지 아래에서 가격이 중간선을 돌파 할 때 더 많이하고, 부린 반지 위에서 가격이 중간선을 돌파 할 때 공백을 만들고, 목표 상환률을 달성한 후 평준화 된 상쇄 손실을 추적합니다.
이 정책은 브린 대역 중선 sma를 평평선 지표로 사용하고, bandwidth는 argumentsmult를 통해*stdev 동적 조정. 가격이 아래에서 중선을 뚫을 때, 가격이 상행량을 얻는다는 것을 나타냅니다. 이 때 더 많이; 가격이 위에서 중선을 뚫을 때, 가격이 하행량을 얻는다는 것을 나타냅니다. 이 때 더 많은 공백을 뚫은 후 스톱 손실 파라미터를 설정하여 수익을 추적하고 위험을 제어합니다.
구체적으로, 브린 밴드의 계산은 length와 mult 두 개의 파라미터를 통해 완료, 길이 길이 중선의 주기를 결정,mult는 대역폭의 크기를 결정.enterLong와enterShort은 돌파의 시간을 판단,exitLong와exitShort은 출입 가격과 목표 스톱 손실 비율에 따라 스톱 손실 가격을 계산한다.
이 전략은 평균 회귀와 동력 지표를 결합하여 트렌드 시작 단계에서 더 큰 상황을 순차적으로 포착할 수 있습니다. 단순한 평균을 추적하는 것과 비교하여, 부린 대역폭에 기반한 동력 판단을 증가시켜서 일부 가짜 돌파구를 필터링 할 수 있습니다. 스톱 손실 설정은 직접 입시 가격에 기반하여 수동 개입이 필요하지 않습니다.
브린 중선 주기, 대역폭 변수, 그리고 스톱 스펙트럼을 조정하여 최적화 할 수 있으며, 이는 전략이 다른 시장 상황에 더 잘 적응하도록 합니다.
이 전략은 브린带回归 및 동력 지표의 장점을 통합하여 트렌드 시작 시 시 시동적으로 일부 시장을 포착할 수 있으며, 파라미터 조정을 통해 다른 단계의 시장에 적응할 수 있으며, 비교적 보편적인 돌파구 시스템이다. 스톱로스 설치는 가격 계산으로부터 직접적으로 인위적 개입을 줄일 수 있다. 이 전략에는 또한 더 많은 보조 판단 지표 등을 추가하는 것과 같은 개선의 여지가 있으며, 이는 후속 연구 및 최적화에서 더욱 개선될 것이다.
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("BURATINO", overlay=true)
// Входные параметры
length = input(20, minval=1, title="Length")
mult = input(2.0, minval=0.1, maxval=5, title="Multiplier")
target_percent = input(0.5, minval=0.1, title="Target Percent")
stop_loss_percent = input(95, minval=0.1, title="Stop Loss Percent")
// Расчет полос Боллинджера
basis = sma(close, length)
dev = mult * stdev(close, length)
upper = basis + dev
lower = basis - dev
// Переворот снизу вверх через среднюю линию Боллинджера для открытия лонга
enterLong = cross(close, basis) and close[1] < basis[1]
// Переворот сверху вниз через среднюю линию Боллинджера для открытия шорта
enterShort = cross(basis, close) and close[1] > basis[1]
// Закрытие лонга после роста цены на указанный процент или падения на указанный процент
exitLong = close >= strategy.position_avg_price * (1 + (target_percent / 100)) or close <= strategy.position_avg_price * (1 - (stop_loss_percent / 100))
// Закрытие шорта после падения цены на указанный процент или роста на указанный процент
exitShort = close <= strategy.position_avg_price * (1 - (target_percent / 100)) or close >= strategy.position_avg_price * (1 + (stop_loss_percent / 100))
// Управление позициями и ограничениями на открытие противоположных позиций
strategy.entry("Long", strategy.long, when = enterLong and strategy.position_size == 0)
strategy.entry("Short", strategy.short, when = enterShort and strategy.position_size == 0)
strategy.close("Long", when = exitLong)
strategy.close("Short", when = exitShort)
// Визуализация полос Боллинджера
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper")
plot(lower, color=color.green, title="Lower")