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

SMA 크로스오버 트렌드를 따라 전략

저자:차오장, 날짜: 2024-11-29 16:39:12
태그:SHASMAEMA

img

전반적인 설명

이 전략은 평형 하이킨-아시 촛불과 단순 이동 평균 (SMA) 크로스오버를 기반으로 한 트렌드 다음 시스템이다. 이 전략은 시장의 주요 트렌드 기회를 포착하기 위해 EMA 평형 하이킨-아시 촛불과 44 기간 SMA의 교차를 통해 트렌드 변화를 식별합니다. 이 전략은 동적인 위치 관리 메커니즘을 통합하여 가격이 장기 이동 평균에 너무 가까워지면 자동으로 포지션을 닫고 시장 통합에서 오스실레이션 위험을 피합니다.

전략 원칙

핵심 논리는 세 가지 핵심 요소로 구성되어 있습니다. 첫째, 오픈, 고, 낮은, 닫는 가격의 수학적 평균을 계산하여 전통적인 촛불을 하이킨-아시 촛불로 변환하여 시장 소음을 필터합니다. 둘째, 하이킨-아시를 매끄럽게하기 위해 6 기간 EMA를 사용하여 신호 신뢰성을 더욱 향상시킵니다. 마지막으로 매끄러운 하이킨-아시 폐쇄 가격을 44 기간 SMA와 결합하여 상승 크로스에 긴 신호와 하락 크로스에 짧은 신호를 생성합니다. 지점 임계의 개념이 도입되어 가격에서 장기 평균 거리가 임계치 이하일 때 포지션 폐쇄를 유발하여 통합 단계에서 빈번한 거래를 효과적으로 피합니다.

전략적 장점

  1. 포괄적 인 신호 필터링 메커니즘, 하이킨-아시와 EMA의 이중 평형화로 거짓 브레이크를 현저히 줄입니다.
  2. 주요 트렌드 움직임을 효과적으로 포착 할 수있는 논리를 따르는 명확한 트렌드
  3. 동적 스톱 로스 메커니즘
  4. 합리적인 매개 변수 설정, 시장 패턴에 맞춰 11주기 단기 및 44주기 장기 이동 평균
  5. 명확하고 직관적인 거래 신호와 우수한 시각화

전략 위험

  1. 초기 트렌드 반전 단계의 잠재적인 지연으로 인해 약간 지연된 진입
  2. 매우 변동적인 시장 조건에서 잘못된 크로스오버 신호의 가능성
  3. 각기 다른 기기에 대한 특정 조정이 필요한 매개 변수 설정에 대한 민감도
  4. 명확한 트렌드가 없는 시장에서 잠재적인 빈번한 거래

전략 최적화 방향

  1. ADX 지표와 같은 트렌드 강도 필터를 추가하는 것이 좋습니다. 명확한 트렌드에서만 거래합니다.
  2. 신호 신뢰성을 향상시키기 위해 부피 가격 확인 메커니즘을 도입할 수 있습니다.
  3. 주요 가격 수준 근처에서 빈번한 거래를 피하기 위해 미끄러짐 방지 메커니즘을 구현하는 것을 고려하십시오.
  4. 시장 변동성에 따라 자동으로 조정되는 동적 이익/손실 메커니즘을 설계할 수 있습니다.
  5. 트렌드 강도에 따라 보유 비율을 동적으로 조정하기 위해 포지션 관리 모듈을 추가하도록 제안합니다.

요약

이 전략은 하이킨-아시 촛불을 SMA 시스템과 결합하여 강력한 트렌드 다음 거래 시스템을 구축합니다. 포괄적인 신호 생성 메커니즘과 합리적인 위험 통제를 갖추고 있으며, 특히 트렌드 특성이 명확한 시장에 적합합니다. 제안된 최적화 방향을 통해 전략의 실질적 효과는 더욱 향상 될 수 있습니다. 전반적으로 명확한 논리로 잘 설계된 트렌드 다음 전략을 나타냅니다.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Smoothed Heikin Ashi with SMA Strategy", overlay=true)

// Input parameters for SMAs
s1 = input.int(11, title="Short SMA Period")
s2 = input.int(44, title="Long SMA Period")
noPositionThreshold = input.float(0.001, title="No Position Threshold", step=0.0001)

// Calculate the original Heikin-Ashi values
haClose = (open + high + low + close) / 4
var float haOpen = na
haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2
haHigh = math.max(high, math.max(haOpen, haClose))
haLow = math.min(low, math.min(haOpen, haClose))

// Smoothing using exponential moving averages
smoothLength = input.int(6, title="Smoothing Length")
smoothedHaClose = ta.ema(haClose, smoothLength)
smoothedHaOpen = ta.ema(haOpen, smoothLength)
smoothedHaHigh = ta.ema(haHigh, smoothLength)
smoothedHaLow = ta.ema(haLow, smoothLength)

// Calculate SMAs
smaShort = ta.sma(close, s1)
smaLong = ta.sma(close, s2)

// Plotting the smoothed Heikin-Ashi values
plotcandle(smoothedHaOpen, smoothedHaHigh, smoothedHaLow, smoothedHaClose, color=(smoothedHaClose >= smoothedHaOpen ? color.green : color.red), title="Smoothed Heikin Ashi")
plot(smaShort, color=color.blue, title="SMA Short")
plot(smaLong, color=color.red, title="SMA Long")

// Generate buy/sell signals based on SHA crossing 44 SMA
longCondition = ta.crossover(smoothedHaClose, smaLong)
shortCondition = ta.crossunder(smoothedHaClose, smaLong)
noPositionCondition = math.abs(smoothedHaClose - smaLong) < noPositionThreshold

// Strategy logic
if (longCondition)
    strategy.entry("Long", strategy.long)
if (shortCondition)
    strategy.entry("Short", strategy.short)
if (noPositionCondition and strategy.position_size != 0)
    strategy.close_all("No Position")

// Plot buy/sell signals
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
plotshape(series=noPositionCondition and strategy.position_size != 0, location=location.belowbar, color=color.yellow, style=shape.labeldown, text="EXIT", size=size.small)

관련

더 많은