다중 지표 BTC 거래 전략


생성 날짜: 2024-04-01 11:26:00 마지막으로 수정됨: 2024-04-01 11:26:00
복사: 0 클릭수: 665
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

다중 지표 BTC 거래 전략

개요

이 전략은 상대적으로 약한 지수 (RSI), 이동 평균의 종결 분산 지수 (MACD) 및 여러 다른 주기의 간단한 이동 평균 (SMA) 을 포함한 여러 기술적 지표를 결합하여 비트코인 (BTC) 거래에 대한 포괄적인 분석 도구를 제공하기 위해 고안되었습니다. 이 전략의 주요 아이디어는 다양한 지표의 신호를 종합적으로 고려하여 RSI가 특정 범위에있을 때 MACD가 나타나면 금 포크 가격이 여러 SMA보다 낮을 때 더 많이하고, 동시에 중지 손실과 중지 지점을 설정하고 RSI가 50에 도달하면 중지 손실 위치를 업데이트합니다.

전략 원칙

  1. RSI, MACD, 그리고 다양한 주기에서의 SMA 지표를 계산한다.
  2. 이전 RSI 값이 하위 또는 상위인지, 현재 RSI 값이 하위와 상위 사이에 있는지, MACD가 금색 포크가 있는지, 그리고 종결 가격이 모든 SMA보다 낮는지 판단하십시오.
  3. 위의 조건을 충족하고 현재 지분을 보유하지 않은 경우, 더 많은 지분을 개설하십시오.
  4. 리스크 비율에 따라 스톱 로즈와 스톱 스톱 가격을 설정하십시오.
  5. 만약 RSI가 50이 되면, 최대 가격으로 업데이트됩니다.
  6. 만약 MACD에 사각지대가 생기면 평점이다.

전략적 이점

  1. 여러 기술 지표들을 종합적으로 고려하여 신호의 신뢰성을 높인다.
  2. RSI가 특정 범위에 있을 때 포지션을 개설하고, 극단적인 상황에서 입장을 피한다.
  3. 스톱패스 및 스톱을 설정하고 위험을 제어한다.
  4. 동적으로 스톱로스를 조정하여 수익의 일부를 잠금합니다.
  5. MACD 사다리 신호에 따라 적자를 줄이기 위해 적시에 청산한다.

전략적 위험

  1. 불안정한 시장에서, 거래 신호의 빈도는 과도한 거래와 수수료 손실을 초래할 수 있습니다.
  2. 고정된 리스크 비율의 중지 손실과 정지는 다른 시장 환경에 적합하지 않을 수 있습니다.
  3. 기술적인 지표에만 의존하여 기본적인 요소를 무시하면 잘못된 거래 결정을 내릴 수 있습니다.

전략 최적화 방향

  1. 신호의 정확성을 높이기 위해 더 많은 기술 지표 또는 시장 감정 지표를 도입하십시오.
  2. 시장의 변동성에 따라 다른 시장 환경에 적응하기 위해 중지 및 중지 수준을 조정합니다.
  3. 주요 뉴스 사건이나 규제 정책의 변화와 같은 근본적인 분석과 결합하여 거래 결정을 지원합니다.
  4. 다양한 시기의 지표를 고려하여 여러 시간 스케일의 거래 기회를 잡습니다.

요약하다

이 전략은 RSI, MACD 및 SMA와 같은 기술 지표를 통합하여 비트코인 거래에 대한 포괄적인 분석 프레임워크를 제공합니다. 거래 신호를 생성하기 위해 여러 지표의 공동 인증을 사용하고 위험 제어 조치를 설정합니다. 그러나 전략에는 더 많은 지표, 동적 조정 파라미터 및 기본 분석과 같은 결합 된 전략의 최적화 공간이 있습니다. 실제 응용에서는 거래자는 자신의 위험 선호와 시장 환경에 따라 전략에 적절한 조정을해야합니다.

전략 소스 코드
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Advanced Strategy", shorttitle="1M Advanced Strat", overlay=true)

// Input settings
rsiLength = input(14, title="RSI Length")
rsiLowerBound = input(20, title="RSI Lower Bound")
rsiUpperBound = input(30, title="RSI Upper Bound")

atrLength = input(14, title="ATR Length")

smaFastLength = input(20, title="SMA 20 Length")
smaMediumLength = input(50, title="SMA 50 Length")
smaSlowLength = input(200, title="SMA 200 Length")

riskPercent = input(0.005, title="Risk Percentage for SL and Target")

// Calculate indicators
rsiValue = rsi(close, rsiLength)
[macdLine, signalLine, _] = macd(close, 12, 26, 9)
smaFast = sma(close, smaFastLength)
smaMedium = sma(close, smaMediumLength)
smaSlow = sma(close, smaSlowLength)
atrValue = atr(atrLength)

// Checking previous RSI value
prevRsiValue = rsi(close[1], rsiLength)

// Conditions for Entry
longCondition = rsiValue > rsiLowerBound and rsiValue < rsiUpperBound and  prevRsiValue < rsiLowerBound or prevRsiValue > rsiUpperBound and crossover(macdLine, signalLine) and close < smaFast and close < smaMedium and close < smaSlow

// Strategy Entry
if (longCondition and not strategy.position_size)
    strategy.entry("Long", strategy.long)

    // Setting Stop Loss and Take Profit
    stopLoss = close - riskPercent * close
    takeProfit = close + atrValue
    strategy.exit("Exit Long", "Long", stop = stopLoss, limit = takeProfit)

//Update Stop Loss when RSI reaches 50
if (strategy.position_size > 0 and rsiValue >= 50)
    strategy.exit("Update SL", "Long", stop = high)

// Conditions for Exit
shortCondition = crossunder(macdLine, signalLine)

// Strategy Exit
if (shortCondition)
    strategy.close("Long")