평형 이동 평균에 기초한 오리직스 아시 전략

저자:차오장, 날짜: 2024-01-25 15:26:25
태그:

img

전반적인 설명

이 전략의 주요 아이디어는 평형 이동 평균을 사용하여 평형 하이켄 아시를 계산하여 가격 트렌드를 식별하고, 가격이 평형 하이켄 아시와 황금색 십자가를 가지고있을 때 길게 가고, 죽음의 십자가가있을 때 짧게 이동하는 것입니다.

전략 논리

전략은 먼저 평형 이동 평균을 계산하기 위한 함수 smoothedMovingAvg를 정의합니다. 이 함수에서는 이전 기간의 이동 평균 값과 최신 가격을 사용하여 특정 가중치를 기반으로 현재 기간의 평형 이동 평균을 계산합니다.

그 다음에는 오픈, 하우스, 로우, 클로즈 가격에 기초한 하이켄 아시 클로징 가격을 계산하기 위해 getHAClose 함수를 정의합니다.

메인 전략 논리에서는 먼저 다른 기간의 원래 가격을 얻고, 그 다음 smoothedMovingAvg 함수를 사용하여 Smoothed Moving Average를 계산하고, 그 다음 getHAClose 함수를 통해 smoothed Heiken Ashi 폐쇄 가격을 계산합니다.

마지막으로, 가격이 평평한 하이켄 아시 폐쇄 가격 이상으로 넘어가면 장거리, 가격이 그 아래로 넘어가면 포지션을 닫습니다. 가격이 평평한 하이켄 아시 폐쇄 가격 아래로 넘어가면 단거리, 가격이 그 위에 넘어가면 포지션을 닫습니다.

이점 분석

이 전략의 가장 큰 장점은 평형 이동 평균을 사용하여 평형 하이켄 아시를 계산함으로써 가격 추세를 더 정확하게 결정할 수 있으며 혼란스러운 기간 동안 잘못된 신호를 생성하지 않도록 약간의 소음을 필터 할 수 있다는 것입니다. 또한 하이켄 아시는 추세를 강조하는 장점이 있으며 가격과 결합하면 판단의 정확성을 더욱 향상시킬 수 있습니다.

위험 분석

이 전략에 직면한 주요 위험은 다음과 같습니다.

  1. 평형화의 잘못된 매개 변수 설정은 전략이 가격 반전 기회를 놓칠 수 있거나 잘못된 신호를 생성 할 수 있습니다. 반복적인 백테스팅과 최적화를 통해 최적의 매개 변수를 찾아야 합니다.

  2. 가격이 급격히 변동할 때, 평형 이동 평균은 가격 변화에 뒤떨어질 수 있으며, 이로 인해 스톱 로스가 발생하거나 반전 기회를 놓칠 수 있습니다. 이 시점에서 위험을 완화하기 위해 포지션 크기를 줄이는 것이 필요합니다.

위의 위험을 해결하기 위해 평형 매개 변수 조정, 스톱 로스 메커니즘 도입, 거래 포지션 크기를 줄이는 등의 방법을 사용하여 위험을 줄이고 전략의 안정성을 향상시킬 수 있습니다.

최적화 방향

이 전략은 다음 측면에서도 최적화 될 수 있습니다.

  1. 시장 변동성이 증가할 때 자동으로 변수를 조정할 수 있는 적응성 평형 매개 변수를 도입합니다.

  2. 가격 통합 도중 잘못된 신호를 발행하지 않도록 필터로 다른 지표와 결합합니다. 예를 들어 MACD, KD 등입니다.

  3. 거래 손실에 대한 제어에 스톱 로스 메커니즘을 추가합니다. 백분율 스톱 로스 또는 변동성 스톱 로스를 설정할 수 있습니다.

  4. 가장 많은 이점을 가진 제품과 세션에 집중하기 위해 거래 제품, 거래 세션 등을 최적화하십시오.

위의 최적화를 통해 전략의 곡선 적합 위험은 더 감소하고 전략의 적응력과 안정성을 향상시킬 수 있습니다.

결론

이 전략의 전반적인 논리는 명확하고 이해하기 쉽다. 평탄한 하이켄 아시를 계산하여 가격 추세를 결정하고 그에 따라 긴 및 짧은 포지션을 설정함으로써. 가장 큰 장점은 약간의 소음을 필터링하고 신호 판단의 정확도를 향상시킬 수 있다는 것입니다. 그러나 매개 변수 최적화와 빠른 반전을 놓치는 위험이 있습니다. 추가 최적화는 적응 메커니즘을 도입하고 지표 조합을 확장하여 깊이있는 연구를 할 가치가 있습니다.


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

 //@version=5
strategy("Smoothed Heiken Ashi Strategy", overlay=true)

// Inputs
g_TimeframeSettings = 'Display & Timeframe Settings'
time_frame = input.timeframe(title='Timeframe for HA candle calculation', defval='', group=g_TimeframeSettings)

g_SmoothedHASettings = 'Smoothed HA Settings'
smoothedHALength = input.int(title='HA Price Input Smoothing Length', minval=1, maxval=500, step=1, defval=10, group=g_SmoothedHASettings)

// Define a function for calculating the smoothed moving average
smoothedMovingAvg(src, len) => 
    smma = 0.0
    smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len 
    smma

// Function to get Heiken Ashi close
getHAClose(o, h, l, c) =>
    ((o + h + l + c) / 4)

// Calculate smoothed HA candles
smoothedHAOpen = request.security(syminfo.tickerid, time_frame, open)
smoothedMA1close = smoothedMovingAvg(request.security(syminfo.tickerid, time_frame, close), smoothedHALength)
smoothedHAClose = getHAClose(smoothedHAOpen, smoothedHAOpen, smoothedHAOpen, smoothedMA1close)

// Plot Smoothed Heiken Ashi candles
plotcandle(open=smoothedHAOpen, high=smoothedHAOpen, low=smoothedHAOpen, close=smoothedHAClose, color=color.new(color.blue, 0), wickcolor=color.new(color.blue, 0))

// Strategy logic
longCondition = close > smoothedHAClose
shortCondition = close < smoothedHAClose

strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition)

plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)

더 많은