이 전략은 장기 거래에 볼링거 밴드 (BB), 이동 평균 (MA), 상대 강도 지수 (RSI) 를 조합하여 단기 가격 움직임을 포착하는 것을 목표로합니다. 이 전략은 가격이 상단 밴드 및 이동 평균보다 높을 때 긴 포지션을 입력하고 RSI는 과판 상태를 나타냅니다. 이는 비율 기반의 스톱 로스 및 영업 수준을 통해 위험과 수익에 잠금을 관리하고 수수료를 고려하기 위해 거래자의 Bybit 계정 수준을 기반으로 입시 가격을 조정합니다.
이 전략은 다음과 같은 원칙에 기초합니다.
이 세 가지 지표를 결합함으로써, 전략은 가격이 상부 볼링거 밴드를 넘어서고 이동 평균을 넘어서고 RSI가 과잉 판매 영역에 있을 때 잠재적 인 긴 진입 기회를 식별합니다. 또한 위험을 제어하고 이익을 잠금하기 위해 스톱 로스 및 수익 가격을 설정합니다.
이 전략은 볼링거 밴드, 이동 평균 및 RSI의 조합을 활용하여 단기 장기 거래 기회를 식별합니다. 볼링거 밴드 및 이동 평균을 사용하여 트렌드를 결정하고, RSI로 과잉 판매 조건을 식별하고, 위험을 관리하기 위해 스톱 로스 및 취리 수익 수준을 설정합니다. 전략은 거래자의 Bybit 계정 수준에 따라 수수료 영향을 고려하고 조정합니다. 전략에는 특정 장점이 있지만 여전히 잘못된 신호, 시장 변동성 및 트렌드 역전과 같은 위험에 직면합니다. 미래 최적화는 매개 변수 최적화, 긴 및 짧은 포지션 결합, 동적 스톱 로스 및 취리 수익, 다른 지표의 최적화 및 거래자의 성과 및 적응력을 향상시키기 위해 전략화 돈 관리 등을 포함 할 수 있습니다.
/*backtest start: 2023-05-08 00:00:00 end: 2024-05-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@BryanAaron //@version=5 strategy("Bybit . BB Short-Term Trading Strategy - Long Only", overlay=true) // Input parameters bbLength = input(45, title="BB Length") bbMultiplier = input(1.0, title="BB Multiplier") maLength = input(90, title="MA Length") rsiLength = input(5, title="RSI Length") rsiUpperThreshold = input(85, title="RSI Upper Threshold") rsiLowerThreshold = input(45, title="RSI Lower Threshold") slPerc = input(2.0, title="Stop Loss %") tpPerc = input(4.0, title="Take Profit %") bybitAccountLevel = input.string("VIP 0", title="Bybit Account Level", options=["VIP 0", "VIP 1", "VIP 2", "VIP 3", "VIP 4"]) // Calculate Bollinger Bands [bbMiddle, bbUpper, bbLower] = ta.bb(close, bbLength, bbMultiplier) // Calculate moving average ma = ta.sma(close, maLength) // Calculate RSI rsi = ta.rsi(close, rsiLength) // Trading conditions longCondition = close > bbUpper and close > ma and rsi < rsiLowerThreshold shortCondition = close < bbLower and close < ma and rsi > rsiUpperThreshold // Entry and exit signals var bool longEntry = false var bool shortEntry = false if (longCondition and not longEntry) longEntry := true shortEntry := false else if (shortCondition and not shortEntry) shortEntry := true longEntry := false else if (not longCondition and not shortCondition) longEntry := false shortEntry := false // Set commission based on Bybit account level commissionPerc = switch bybitAccountLevel "VIP 0" => 0.075 "VIP 1" => 0.065 "VIP 2" => 0.055 "VIP 3" => 0.045 "VIP 4" => 0.035 => 0.075 // Adjust entry prices based on commission longEntryPrice = close * (1 + commissionPerc / 100) shortEntryPrice = close * (1 - commissionPerc / 100) // Calculate stop loss and take profit prices longStopPrice = longEntryPrice * (1 - slPerc / 100) longProfitPrice = longEntryPrice * (1 + tpPerc / 100) shortStopPrice = shortEntryPrice * (1 + slPerc / 100) shortProfitPrice = shortEntryPrice * (1 - tpPerc / 100) // Plot signals plotshape(longEntry, title="Long Entry", location=location.belowbar, style=shape.triangleup, size=size.small, color=color.green) plotshape(shortEntry, title="Short Entry", location=location.abovebar, style=shape.triangledown, size=size.small, color=color.red) // Entry and exit if (longEntry) strategy.entry("Long", strategy.long, limit=longEntryPrice, stop=longStopPrice, comment="Long Entry") strategy.exit("Long TP/SL", from_entry="Long", limit=longProfitPrice, stop=longStopPrice, comment="Long Exit") else if (shortEntry) strategy.entry("Short", strategy.short, limit=shortEntryPrice, stop=shortStopPrice, comment="Short Entry") strategy.exit("Short TP/SL", from_entry="Short", limit=shortProfitPrice, stop=shortStopPrice, comment="Short Exit") else strategy.close_all(comment="Close All") // Plot Bollinger Bands plot(bbUpper, color=color.blue, title="BB Upper") plot(bbMiddle, color=color.orange, title="BB Middle") plot(bbLower, color=color.blue, title="BB Lower") // Plot moving average plot(ma, color=color.purple, title="MA")