리소스 로딩... 로딩...

볼링거 밴드, 이동 평균 및 RSI를 기반으로 한 단기 거래 전략

저자:차오장, 날짜: 2024-05-14 15:40:44
태그:BBMARSI

img

전반적인 설명

이 전략은 장기 거래에 볼링거 밴드 (BB), 이동 평균 (MA), 상대 강도 지수 (RSI) 를 조합하여 단기 가격 움직임을 포착하는 것을 목표로합니다. 이 전략은 가격이 상단 밴드 및 이동 평균보다 높을 때 긴 포지션을 입력하고 RSI는 과판 상태를 나타냅니다. 이는 비율 기반의 스톱 로스 및 영업 수준을 통해 위험과 수익에 잠금을 관리하고 수수료를 고려하기 위해 거래자의 Bybit 계정 수준을 기반으로 입시 가격을 조정합니다.

전략 원칙

이 전략은 다음과 같은 원칙에 기초합니다.

  1. 볼링거 밴드: 가격이 상단 범위를 넘으면 시장의 상승 추세를 나타냅니다.
  2. 이동 평균: 이동 평균 이상의 가격은 현재 상승 추세를 나타냅니다.
  3. 상대적 강도 지수: RSI가 과잉 판매 한계 이하로 떨어지면 잠재적인 시장 반전과 가격 상승을 시사합니다.

이 세 가지 지표를 결합함으로써, 전략은 가격이 상부 볼링거 밴드를 넘어서고 이동 평균을 넘어서고 RSI가 과잉 판매 영역에 있을 때 잠재적 인 긴 진입 기회를 식별합니다. 또한 위험을 제어하고 이익을 잠금하기 위해 스톱 로스 및 수익 가격을 설정합니다.

전략적 장점

  1. 여러 지표: 전략은 볼링거 밴드, 이동 평균 및 RSI를 고려하여 보다 포괄적인 시장 분석을 제공합니다.
  2. 트렌드 추적: 볼링거 밴드 및 이동 평균을 사용하여 전략은 현재 시장 트렌드를 식별 할 수 있습니다.
  3. 과잉 판매 신호: RSI 지표는 잠재적인 과잉 판매 상황을 파악하고 잠재적인 반전 기회를 잡는 데 도움이됩니다.
  4. 리스크 관리: 전략은 비율에 기반한 스톱 로스를 포함하고 리스크를 제어하고 수익을 차단하기 위해 수익 수준을 취합니다.
  5. 위원회의 의견: 거래자의 Bybit 계정 수준에 따라 입시 가격을 조정하여 수수료를 고려합니다.

전략 위험

  1. 잘못된 신호: 모든 기술 지표는 잘못된 신호를 생성하여 불필요한 거래로 이어질 수 있습니다.
  2. 시장의 변동성: 시장은 심각한 단기 변동을 경험할 수 있으며, 중단 손실을 유발하거나 잠재적 인 이익을 놓칠 수 있습니다.
  3. 트렌드 역전: 전략은 현재의 트렌드가 계속될 것으로 가정하지만 트렌드는 갑자기 역전되어 손실이 발생할 수 있습니다.
  4. 위원회에 미치는 영향: 전략에서 수수료가 포함되어 있지만, 빈번한 거래는 여전히 수수료 비용을 증가시켜 전체 수익성에 영향을 줄 수 있습니다.

전략 최적화 방향

  1. 매개 변수 최적화: 다양한 시장 조건에 적응하기 위해 볼링거 밴드, 이동 평균 및 RSI의 매개 변수를 최적화합니다.
  2. 길고 짧은 조합: 다른 시장 기회를 최대한 활용하기 위해 짧은 거래 조건을 추가하는 것을 고려하십시오.
  3. 동적 스톱 로스 및 영업 수익: 시장 변동성에 따라 동적으로 스톱 로스 및 영업 수익 수준을 조정하여 위험을 더 잘 제어하고 수익을 확보합니다.
  4. 다른 지표를 결합: 전략의 신뢰성을 높이기 위해 MACD, ATR 등과 같은 다른 기술적 지표를 도입하십시오.
  5. 자금 관리: 위험 조정 수익률을 향상시키기 위해 위험에 따라 포지션 크기를 조정하는 것과 같은 자금 관리 방법을 최적화하십시오.

요약

이 전략은 볼링거 밴드, 이동 평균 및 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")

관련

더 많은