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

이동 평균, 지원/저항 및 볼륨에 기반한 고급 진입 전략

저자:차오장, 날짜: 2024-06-14 15:40:46
태그:

img

전반적인 설명

이 전략은 세 가지 기술적 지표를 결합합니다: 간단한 이동 평균 (SMA), 지원 및 저항 수준, 및 거래 부피 증가 포괄적 인 거래 전략을 구축하기 위해. 전략의 주요 아이디어는 가격이 SMA, 지원 / 저항 수준을 넘어서면 거래에 들어가고 거래 부피의 증가와 함께 위험을 제어하기위한 중지 손실 조건을 설정하는 것입니다.

전략 원칙

  1. 정해진 기간 동안 SMA, 지원 및 저항 수준을 계산합니다.
  2. 현재 거래량이 이전 기간에 비해 증가했는지 여부를 결정합니다.
  3. 롱 엔트리 조건: 현재 종료 가격은 이전 기간의 종료 가격, SMA 및 지원 수준보다 높으며, 거래 부피 증가와 함께 저항 수준에서 일정 거리에 있습니다.
  4. 짧은 입상 조건: 현재 종료 가격은 이전 기간의 종료 가격, SMA 및 지원 수준보다 낮으며 가격은 저항 수준에서 일정 거리에 있으며 거래량이 증가합니다.
  5. 스톱 로스 조건: 긴 스톱 로스 가격은 입상 가격 곱하기 (1 - 스톱 로스 비율) 이며 짧은 스톱 로스 가격은 입상 가격 곱하기 (1 + 스톱 로스 비율) 이다.

이점 분석

  1. 여러 가지 기술 지표를 결합함으로써 전략의 신뢰성과 안정성이 향상됩니다.
  2. SMA의 가격 브레이크와 지원/저항 수준을 모두 고려하면 트렌드 기회를 더 잘 잡을 수 있습니다.
  3. 거래량 지표의 도입은 가격 파격이 충분한 시장 참여와 함께 이루어지는 것을 보장하고 신호의 효과를 높입니다.
  4. 스톱 로스 조건을 설정하면 거래 위험을 효과적으로 제어할 수 있습니다.

위험 분석

  1. 지원 및 저항 레벨의 계산은 역사적인 데이터에 의존하고 있으며 시장의 중대한 변동시 효과는 떨어질 수 있습니다.
  2. 거래량 지표는 잘못된 신호로 이어지는 비정상적인 변동이 발생할 수 있습니다.
  3. 스톱 로스 조건 설정은 극단적인 시장 상황에서는 손실을 완전히 피할 수 없습니다.

최적화 방향

  1. 거래 신호의 신뢰성을 더 검증하기 위해 상대적 강도 지수 (RSI) 또는 이동 평균 회전 분차 (MACD) 와 같은 다른 기술적 지표를 도입하는 것을 고려하십시오.
  2. 다양한 시장 조건에 적응하기 위해 더 동적인 접근 방식을 채택하는 것과 같은 지원 및 저항 수준을 계산하는 방법을 최적화하십시오.
  3. 전략에 비정상적인 변동의 영향을 줄이기 위해 거래량 지표를 부드럽게하십시오.
  4. 스톱 로스 조건의 최적화, 예를 들어 후속 스톱 로스를 사용하거나 시장 변동성에 따라 스톱 로스 비율을 동적으로 조정하는 것.

요약

이 전략은 종합적인 거래 전략을 구축하기 위해 SMA, 지원 및 저항 수준 및 거래량 지표를 결합합니다. 전략의 장점은 거래 위험을 제어하면서 트렌딩 기회를 포착하는 능력에 있습니다. 그러나 전략은 또한 극단적인 시장 상황에 적응하는 능력과 같은 특정 한계도 있습니다. 미래에는 다른 기술 지표를 도입하여 전략을 개선할 수 있습니다. 지원 및 저항 수준에 대한 계산 방법을 최적화하고 거래량 지표를 매끄럽게하고 안정성과 수익성을 높이기 위해 스톱 로스 조건을 최적화하십시오.


/*backtest
start: 2023-06-08 00:00:00
end: 2024-06-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Advanced Entry Conditions with Support/Resistance, SMA, and Volume", overlay=true)

// Inputs
length = input(20, title="SMA Length")
stopLossPerc = input(1, title="Stop Loss Percentage", type=input.float) / 100
leftBars = input(15, title="Left Bars")
rightBars = input(15, title="Right Bars")
distanceThresh = input(1, title="Distance Threshold from Support/Resistance", type=input.float) / 100

// Calculations
smaValue = sma(close, length)
highUsePivot = fixnan(pivothigh(leftBars, rightBars)[1])
lowUsePivot = fixnan(pivotlow(leftBars, rightBars)[1])

// Volume Calculation
volumeIncrease = volume > volume[1]

// Entry Conditions
longEntryCondition = close[0] > close[1] and close[1] > smaValue and close[0] > smaValue and close[0] > lowUsePivot and close[1] > lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease
shortEntryCondition = close[0] < close[1] and close[1] < smaValue and close[0] < smaValue and close[0] < lowUsePivot and close[1] < lowUsePivot and abs(close[0] - highUsePivot) > distanceThresh and volumeIncrease

// Calculate stop loss levels
longStopLoss = close * (1 - stopLossPerc)
shortStopLoss = close * (1 + stopLossPerc)

// Strategy Logic
strategy.entry("Long", strategy.long, when=longEntryCondition)
strategy.exit("Exit Long", "Long", stop=longStopLoss)

strategy.entry("Short", strategy.short, when=shortEntryCondition)
strategy.exit("Exit Short", "Short", stop=shortStopLoss)

// Plotting
plot(smaValue, color=color.blue, title="SMA")
plot(highUsePivot, color=color.red, linewidth=2, title="Resistance")
plot(lowUsePivot, color=color.green, linewidth=2, title="Support")

plotshape(series=longEntryCondition, location=location.belowbar, color=color.green, style=shape.labelup, title="Long Entry")
plotshape(series=shortEntryCondition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Short Entry")

// Background Color
bgcolor(longEntryCondition ? color.new(color.green, 90) : shortEntryCondition ? color.new(color.red, 90) : na)


더 많은