리버서블 볼링거 밴드 전략은 볼링거 밴드를 기반으로 하는 FOREX 거래 전략이다. JPY 쌍에서 가장 잘 작동한다. 가격이 볼링거 밴드 상부 또는 하부 한계를 넘을 때, 목표 가격이 마지막 10 개의 촛불의 가장 높거나 가장 낮은 지점으로 설정되는 역작업을 수행한다.
이 전략은 20일 간 간단한 이동평균과 그 표준편차의 2배에 기초하여 상위 및 하위 레일을 구축합니다. 현재 촛불의 폐쇄 가격이 하위 레일을 통과하면, 긴 거리로 이동합니다. 상위 레일을 통과하면, 짧은 거리로 이동합니다. 스톱 손실 가격은 마지막 10 촛불의 가장 낮은 가격으로 설정되며, 수익을 취하는 가격은 마지막 10 촛불의 가장 높은 가격으로 설정됩니다.
특히, 이전 촛불의 개막 가격이 하위 레일보다 낮고, 현재 촛불의 종료 가격도 하위 레일보다 낮다면, 긴 경로로 이동합니다. 스톱 로스 가격은 마지막 10 촛불의 가장 낮은 가격으로 설정되고, 수익을 취하는 가격은 마지막 10 촛불의 가장 높은 가격으로 설정됩니다.
반대로, 이전 촛불의 개막 가격이 상단열보다 높고, 현재 촛불의 종료 가격도 상단열보다 높다면, 단행합니다. 스톱 로스 가격은 마지막 10 촛불의 가장 높은 가격으로 설정되고, 수익을 취하는 가격은 마지막 10 촛불의 가장 낮은 가격으로 설정됩니다.
이 전략은 역전 거래의 특징을 가지고 있다. 가격이 볼링거 밴드를 통과할 때, 트렌드 반전이 일어나고 있음을 나타냅니다. 따라서 역전 작전이 수행됩니다. 좋은 위험-상금 비율을 얻기 위해 스톱 로스와 수익을 설정하는 것도 합리적입니다.
또한, 이 전략은 몇 가지 매개 변수를 가지고 있으며, 구현하기 쉽고 이해하기 쉽습니다. 그리고 JPY 쌍은 크게 변동합니다. 이것은 이 전략에 적합합니다.
이 전략의 가장 큰 위험은 트렌드의 전환점을 효과적으로 결정할 수 없다는 것입니다. 가격이 볼링거 밴드의 상부 및 하부 한계를 넘으면 원래 트렌드가 계속 될 수 있습니다. 이 시점에서 역시장 제작이 수행되면 손실을 일으킬 가능성이 있습니다.
또한, 최근 최고와 최저에 대한 스톱 로스 및 영업 취득 설정 또한 위험을 초래합니다. 시장에서 V 모양의 반전이 발생하면 스톱 로스는 직접적으로 깨질 수 있습니다. 영업 취득 설정 또한 정확하게 예측하지 못하고 시장 반전에서 이익을 완전히 누릴 수 없습니다.
위험을 제어하기 위해 거래당 손실을 줄이기 위해 합리적인 스톱 로스를 설정할 수 있습니다. 또한 수익을 잠금하고 수익을 취하는 위치를 적절히 조정하기 위해 이동 스톱 로스를 채택 할 수 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
잘못된 신호를 피하기 위해 필터 조건을 높일 수 있습니다. 트렌드 전환을 확인하기 위해 브레이크오웃이 발생하면 거래량이 확대되도록 거래 볼륨 필터를 설정할 수 있습니다.
매개 변수 설정을 최적화합니다. 최적의 매개 변수 조합을 찾기 위해 다른 매개 변수 설정을 결과에 미치는 영향을 테스트합니다.
구매 및 판매 신호를 RSI 및 다른 오시레이터와 같은 다른 지표로 확인하여 신호 신뢰성을 확인합니다.
기계 학습 및 다른 방법을 사용하여 동적으로 스톱 손실을 최적화하고 수익 위치를 취하여 전략을 더 적응적으로 만듭니다.
리버서블 볼링거 밴드 전략은 간단하고 실용적인 단기 거래 전략이다. 이 전략은 반전 가능한 운영과 통제 가능한 위험을 가지고 있으며, 내일 거래에 적합합니다. 그러나 매개 변수와 필터 조건은 잘못된 신호를 줄이고 효율성을 향상시키기 위해 추가 최적화가 필요합니다. 다른 기술적 지표와 동적 스톱 로스 및 수익을 취하면 이 전략의 성능은 여전히 개선할 여지가 있습니다.
/*backtest start: 2023-11-01 00:00:00 end: 2023-11-03 18:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Initial settings strategy("Bulle de bollinger", overlay = true) // Parameter Settings mdl = sma(close, 20) dev = stdev(close, 20) upr = mdl + 2*dev lwr = mdl - 2*dev // Plot plot(mdl, color = color.green) // Plot moving average p1 = plot(upr, color = color.red) // Plot Upper_band p2 = plot(lwr, color = color.green) // Plot lower band fill(p1, p2, color = color.blue) // Fill transparant color between the 2 plots // Strategy entry & close if open[1] < lwr[1] and close[1] < lwr[1] // Previous price lower than lower band and current close is higher than lower band stop_level = lowest(10) profit_level = highest(10) strategy.entry(id = 'bb_buy', long = true) strategy.exit("TP/SL", "bb_buy", stop=stop_level, limit=profit_level) if open[1] > upr[1] and close[1] > upr // Previous price is higher than higher band & current close is lower the higher band stop_level = highest(10) profit_level = lowest(10) strategy.entry(id = 'bb_sell', long = false) strategy.exit("TP/SL", "bb_sell", stop=stop_level, limit=profit_level)