이동평균선과 수요공급 구간을 기반으로 한 동적 리스크 관리 거래 시스템

MA SMA DEMAND ZONE SUPPLY ZONE STOP LOSS TAKE PROFIT risk management CROSSOVER
생성 날짜: 2025-02-20 15:39:27 마지막으로 수정됨: 2025-02-20 15:39:27
복사: 1 클릭수: 375
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

이동평균선과 수요공급 구간을 기반으로 한 동적 리스크 관리 거래 시스템 이동평균선과 수요공급 구간을 기반으로 한 동적 리스크 관리 거래 시스템

개요

이것은 이동 평균의 교차, 공급 및 수요 영역의 식별 및 동적 중지 손실을 결합한 통합 거래 전략이다. 이 전략은 단기 및 장기 이동 평균의 교차를 통해 거래 방향을 결정하며, 공급 및 수요 영역을 중요한 가격 지원 및 저항 지점으로 사용하고, 백분율 중지 손실과 함께 위험을 관리한다. 전략의 핵심은 특정 공급 및 수요 영역 근처에서만 입장을 열어 거래의 승률을 높이는 것이다.

전략 원칙

전략은 9주기와 21주기의 간단한 이동 평균 (SMA) 을 사용하여 트렌드 방향을 판단한다. 가격이 수요 지역 (지원점) 1% 내에 있고, 단기 평균이 장기 평균을 상대로 넘어갈 때, 시스템은 여러 신호를 발산한다. 가격이 공급 지역 (저항점) 1% 내에 있고, 단기 평균이 장기 평균을 상대로 넘어갈 때, 시스템은 빈 신호를 발산한다. 공급 지역의 식별은 50주기 내의 눈에 띄는 높고 낮은 점을 기반으로 하며, 그 지점은 적어도 2개의 뿌리 확인 그래프를 갖도록 요구한다. 시스템은 진입 가격에 따라 자동으로 역동적인 손실을 설정한다.

전략적 이점

  1. 다중 확인 메커니즘: 기술 지표 ((평균선 교차) 와 가격 구조 ((수요 공급 지역) 를 결합하여 가짜 돌파의 위험을 감소시킵니다.
  2. 다이내믹 리스크 관리: 입시 가격에 기반한 Stop-Loss-Stop의 비율을 설정하여 다양한 시장 환경에 맞게 조정
  3. 시각화 거래 신호: 분석 및 검증을 용이하게 차트에 수요 지역과 거래 신호를 명확하게 표시
  4. 매개 변수는 유연하게 조정할 수 있습니다: 평균선 주기, 수요 공급 지역 확인 조건, 스톱 스톱 비율 등은 다른 시장 특성에 따라 조정할 수 있습니다.
  5. 명확한 전략 논리: 입출장 조건이 명확하여 재검토 및 최적화를 용이하게 합니다.

전략적 위험

  1. 시장의 위기 위험: 빈번한 평행선 교차로 인해 과도한 가짜 신호가 발생할 수 있습니다.
  2. 슬라이드 포인트 위험: 수요 지역 근처의 거래가 더 큰 슬라이드 포인트에 직면할 수 있습니다.
  3. 매개 변수 민감성: 다른 시장 환경에서 최적 매개 변수가 크게 다를 수 있다.
  4. 스톱마인드 리스크: 고정 비율 스톱마인드는 모든 시장 환경에 적합하지 않을 수 있습니다.
  5. 재원 관리 위험: 전략에는 상위 규모 관리 기능이 포함되어 있지 않습니다.

전략 최적화 방향

  1. 교류량 확인 도입: 평균선 교차 및 공급 요구 지역 분석에 교류량 지표를 추가하여 신호 신뢰성을 향상
  2. 동적 변수 최적화: 시장의 변동에 따라 자동으로 스톱 스톱 비율과 공급 수요 지역 범위를 조정
  3. 트렌드 필터를 추가: 더 긴 주기의 트렌드 판단을 추가하여 큰 트렌드에 반대 방향으로 거래하는 것을 피하십시오.
  4. 자금 관리를 개선: 변동율에 기반한 포지션 규모 계산을 추가
  5. 공급과 수요 지역 식별 강화: 공급과 수요 지역의 유효성을 확인하기 위해 더 많은 기술 지표를 도입

요약하다

이것은 고전적인 기술적 분석 방법을 현대적 위험 관리 개념과 결합한 전략 시스템이다. 전략은 중요한 가격 지역 근처에서 거래하고 이동 평균 교차 신호와 결합하여 비교적 신뢰할 수있는 거래 프레임 워크를 제공합니다. 동적 상쇄 스톱의 디자인은 다양한 시장 환경에 적응하는 데 도움이되지만, 전략의 실제 적용은 특정 시장 특성에 따라 최적화가 필요합니다.

전략 소스 코드
/*backtest
start: 2024-12-01 00:00:00
end: 2025-02-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("MA Crossover with Demand/Supply Zones + Stop Loss/Take Profit", overlay=true)

// Input parameters for Moving Averages
shortLength = input.int(9, title="Short MA Length", minval=1)
longLength = input.int(21, title="Long MA Length", minval=1)

// Input parameters for Demand/Supply Zones
zoneLookback = input.int(50, title="Zone Lookback Period", minval=10)
zoneStrength = input.int(2, title="Zone Strength (Candles)", minval=1)

// Input parameters for Stop Loss and Take Profit
stopLossPerc = input.float(1.0, title="Stop Loss (%)", minval=0.1) / 100
takeProfitPerc = input.float(2.0, title="Take Profit (%)", minval=0.1) / 100

// Calculate moving averages
shortMA = ta.sma(close, shortLength)
longMA = ta.sma(close, longLength)

// Plot moving averages
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")

// Identify Demand and Supply Zones
var float demandZone = na
var float supplyZone = na

// Detect Demand Zones (Price makes a significant low and bounces up)
if (ta.lowest(low, zoneLookback) == low[zoneStrength] and close[zoneStrength] > open[zoneStrength])
    demandZone := low[zoneStrength]

// Detect Supply Zones (Price makes a significant high and drops down)
if (ta.highest(high, zoneLookback) == high[zoneStrength] and close[zoneStrength] < open[zoneStrength])
    supplyZone := high[zoneStrength]

// Draw Demand and Supply Zones using lines
var line demandLine = na
var line supplyLine = na


// Trade Logic: Only open trades near Demand/Supply Zones
isNearDemand = demandZone > 0 and close <= demandZone * 1.01  // Within 1% of demand zone
isNearSupply = supplyZone > 0 and close >= supplyZone * 0.99  // Within 1% of supply zone

// Calculate Stop Loss and Take Profit levels
stopLossLevel = strategy.position_avg_price * (1 - stopLossPerc)  // Stop loss for long positions
takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPerc)  // Take profit for long positions

stopLossLevelShort = strategy.position_avg_price * (1 + stopLossPerc)  // Stop loss for short positions
takeProfitLevelShort = strategy.position_avg_price * (1 - takeProfitPerc)  // Take profit for short positions

// Generate buy/sell signals based on MA crossover and zones
if (ta.crossover(shortMA, longMA) and isNearDemand)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit/Stop Loss", from_entry="Buy", stop=stopLossLevel, limit=takeProfitLevel)

if (ta.crossunder(shortMA, longMA) and isNearSupply)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit/Stop Loss", from_entry="Sell", stop=stopLossLevelShort, limit=takeProfitLevelShort)

// Optional: Plot buy/sell signals on the chart
plotshape(series=ta.crossover(shortMA, longMA) and isNearDemand, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=ta.crossunder(shortMA, longMA) and isNearSupply, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")