
이 전략은 양적 거래 쌍 지표 전략이라고 불린다. 이 전략은 부린 밴드 지표와 상대적으로 강한 지표 두 지표를 동시에 거래 신호로 사용하여 쌍 지표 필터링 된 거래 전략을 구현한다.
이 전략의 핵심 논리는 부린 밴드와 RSI 두 지표를 동시에 사용하여 시장의 과매매 상황을 판단하여 거래 신호를 필터링하는 것입니다.
구체적으로, 브린띠의 상반도와 하반도는 가격이 변동 범위 밖에 있는지 판단하여 시장이 과매매되거나 과매매되는지 판단할 수 있다. 상대적으로 강한 지표 RSI는 시장의 힘의 강점을 판단할 수 있다. RSI가 55보다 높으면 과매 신호이며, 45보다 낮으면 과매 신호이다.
이 전략은 부린 밴드 지표와 RSI 지표가 동시에 과매매 또는 과매매 신호를 표시할 때만 해당 구매 또는 판매 작업을 수행합니다. 이것은 일부 잘못된 신호를 필터링하여 전략의 안정성을 향상시킵니다.
이 전략의 가장 큰 장점은 이중 지표를 사용하여 필터링을 하는 데 있습니다. 이는 잘못된 거래를 줄이고 신호의 신뢰성을 높일 수 있습니다.
단일 부린 밴드 지표에 비해 이중 지표 전략은 가짜 신호의 가능성을 크게 줄일 수 있다. 단일 RSI 지표에 비해 부린 밴드를 사용하여 현재 흔들림 범위에 있지 않은지 판단하여 흔들림 시장에서 잘못된 신호를 방지 할 수 있다.
전체적으로 볼 때, 이중 지표 전략은 다양한 상황을 고려하여 더 잘 적응하고 안정적입니다.
이 전략의 주요 위험은 부린 대역변수 설정과 RSI 대역변수 설정이 적절하지 않을 수 있다는 것입니다. 부린 대역변수 설정이 너무 민감하면 과잉 신호가 발생할 수 있으며, RSI 대역변수 설정이 너무 느슨하면 효과가 약해집니다.
또한, 이중 지표 조합은 그 자체로 더 적은 신호를 의미합니다. 시장이 하나의 지표의 신호에만 부합하고 다른 지표가 촉발 수준에 도달하지 않으면 이 전략은 신호를 생성하지 않습니다. 따라서 단일 지표 전략에 비해 이 전략의 거래 빈도는 낮습니다.
해결 방법은 주로 더 적절한 파라미터를 설정하고 RSI와 브린 띠의 촉발 수평을 수정하는 것입니다. 거래 빈도가 너무 낮다면 파라미터 요구 사항을 줄이고 진입 기회를 높이는 것을 고려할 수 있습니다.
이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.
다양한 브린 벨트 변수와 RSI 변수 조합을 테스트하여 더 잘 어울리는 조합을 찾습니다. 기존의 변수는 모든 품종과 시간대에 완전히 적합하지 않을 수 있습니다.
현재 전략은 이러한 측면을 고려하지 않습니다.
포지션 관리 메커니즘을 추가한다. 동적 포지션을 사용하면 좋은 흐름이 있을 때 포지션을 증가시키고, 나쁜 흐름이 있을 때 손실을 줄일 수 있다.
역사적 데이터에 기반한 파라미터를 자동으로 조정할 수 있는 기능이 추가되었다.
이 전략은 쌍방향 지표 필터링 전략으로서, 전반적인 안정성과 적응성이 좋다. 가짜 신호 비율을 줄이는 동시에 거래 빈도도 감소시킨다. 지표 매개 변수를 최적화하고 보조 기능을 추가함으로써 전략의 수익 공간을 더욱 강화할 수 있다.
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-11 23:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Bollinger Bands + RSI, Double Strategy (by SlumdogTrader)", shorttitle="BolBand_RSI_Strat", overlay=true)
// SlumdogTrader's Bollinger Bands + RSI Double Strategy - Profit Trailer
//
// Version 1.0
// Script by SlumdogTrader on July Fri 13(!), 2018.
//
// This strategy uses a normalise Bollinger Bands + RSI.
//
// Bollinger Band triggers
// SELL - when the price is above the upper band.
// BUY - when the price is below the lower band.
//
// RSI triggers
// SELL - when the price is above 55.
// BUY - when the price is below 45.
//
// This simple strategy only triggers when
// both the BB and the RSI
// indicators, at the same time, are in
// a overbought or oversold condition.
//
// Visit my TradingView work at:
// https://www.tradingview.com/u/SlumdogTrader/
//
// Visit my website at:
// https://www.slumdogtrader.com
//
///////////// Bollinger Bands Settings
BBlength = input(20, minval=1,title="Bollinger Bands SMA Period Length")
BBmult = input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
price = input(close, title="Source")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=aqua,title="BBs SMA Basis Line")
p1 = plot(BBupper, color=silver,title="BBs Upper Line")
p2 = plot(BBlower, color=silver,title="BBs Lower Line")
fill(p1, p2)
///////////// RSI Settings
RSIlength = input( 16 ,title="RSI Period Length")
RSIvalue = input( 45 ,title="RSI Value Range")
RSIoverSold = 0 + RSIvalue
RSIoverBought = 100 - RSIvalue
vrsi = rsi(price, RSIlength)
///////////// Colour Settings
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) ? green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)
///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))
if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
strategy.entry("RSI_BB_L", strategy.long, stop=BBlower, comment="RSI_BB_L")
else
strategy.cancel(id="RSI_BB_L")
if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
strategy.entry("RSI_BB_S", strategy.short, stop=BBupper, comment="RSI_BB_S")
else
strategy.cancel(id="RSI_BB_S")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)