이 전략은 RSI 지표를 통해 과매매 상황을 판단하고, 부린 밴드 지표의 가격 변동 통로와 협력하여 거래 신호를 형성한다. RSI 지표가 과매매 또는 과매매 현상을 보여주면서 가격이 부린 밴드 하향 궤도에 접근하거나 접촉할 때, 구매 및 판매 신호를 생성한다. 전략은 종합적인 추세 분석 및 변동 판단, 동적으로 기회를 찾는다.
이 전략은 다음과 같은 두 가지 지표에 따라 결정됩니다.
특정 주기 동안의 상대적으로 강한 지표 RSI를 계산하여, 초과 구매 또는 초과 판매 영역에 진입했는지 여부를 미리 설정된 매개 변수에 따라 판단합니다. 초과 구매 영역의 상한이 40으로 설정되어 있고, 초과 판매 영역의 하한이 45으로 설정되어 있습니다.
특정 주기 동안의 브린 띠를 계산하고, 그 상단 및 하단 궤도를 통해 가격 통로를 형성하여 가격 변동의 범위를 설명한다.
이 전략은 다음과 같은 거래 규칙을 제시합니다.
RSI가 45을 넘어서서 초과 지역으로 들어갔을 때, 그리고 가격이 브린을 넘어서서 하락하면 구매 신호가 발생합니다. RSI가 40을 넘어서서 초과 지역으로 들어가고, 가격이 브린을 넘어서면 판매 신호가 발생합니다.
이 전략은 RSI와 브린 밴드 지표를 결합하여 다음과 같은 장점을 가지고 있습니다.
RSI는 과매매를 판단하고, 브린은 가격의 방향성을 판단하며, 둘은 상호 보완적입니다.
브린 벨트 상하철도는 위험 관리에 도움이 되는 손해 중지 위치 위치로 사용될 수 있다.
매개 변수 설정이 간단하고, 실행 및 회귀가 쉽다.
RSI 파라미터를 최적화하여 최적의 오버 바이 오버 셀 범위를 결정합니다.
다양한 가격 입력을 선택할 수 있으며, 다양한 시장 환경에 적응할 수 있다.
이 전략에는 몇 가지 위험도 있습니다.
브린의 폭이 너무 넓어짐에 따라 상쇄 손실이 예상보다 낮아졌다.
RSI 파라미터가 잘못 설정되어 있고, 오버 바이 오버 소드 영역 판단 오류가 있습니다.
트렌드 전환점을 정확하게 판단할 수 없고, 신호를 놓칠 위험이 있다.
손실을 효과적으로 통제할 수 없고, 큰 시장 충격으로 인해 손실을 막을 수 있다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
RSI 파라미터를 최적화하여 최적의 오버 바이 오버 소드를 결정합니다.
부린 대역폭 파라미터를 최적화하여 스톱 레인지를 제어합니다.
트렌드 반전을 판단하는 다른 지표에 추가하여 신호를 놓치지 않도록하십시오.
기계학습 알고리즘을 적용하여 구매 시점을 결정합니다.
다른 시장 환경에 따라 다른 파라미터 조합을 사용
역동적인 손해 방지 장치를 추가
개발 매개 변수 자동 최적화 프로그램
요약하자면, 이 전략은 RSI와 부린 띠 지표의 조합을 통해 비교적 안정적인 거래 의사 결정 기반을 형성한다. 전략 논리는 간단하고 명확하며 위험 통제를 촉진하지만, 또한 약간의 최적화 공간이 있다. 매개 변수 최적화, 스톱 로즈 최적화, 알고리즘 도입 등의 방법으로 전략 효과를 더욱 강화하여 복잡한 시장 환경에 더 적합하게 만들 수 있다. 이 전략은 거래 시스템을 구축하는 데 대한 아이디어를 제공하며, 추가 연구와 응용에 가치가 있다.
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 2h
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/
// © Mdemoio
//@version=4
strategy("Madri", shorttitle="Madri", overlay=true)
// Version 1.1
///////////// RSI
RSIlength = input(2,title="A")
RSIoverSold = 45
RSIoverBought = 40
price = close
vrsi = rsi(price, RSIlength)
///////////// Bollinger Bands
BBlength = input(150, minval=1,title="B")
BBmult = 2// input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
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)
///////////// Colors
//switch1=input(true, title="Enable Bar Color?")
//switch2=input(true, title="Enable Background Color?")
//TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? 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="Buy")
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="Sell")
else
strategy.cancel(id="RSI_BB_S")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)