HULL SMA와 EMA 크로스오버에 기초한 트렌드 전략

저자:차오장, 날짜: 2023-10-30 12:32:38
태그:

img

전반적인 설명

이 전략은 시장 트렌드 방향을 결정하기 위해 HULL 평형 이동 평균 라인과 기하급수적 이동 평균 라인의 교차를 계산하여 구매 및 판매 신호를 생성합니다. 중장기 트렌드 다음 전략의 범주에 속합니다.

전략 논리

  1. 5기 HULL 평형 이동 평균 (HULL SMA) 을 계산합니다. HULL SMA는 가중 이동 평균과 기간의 제곱근을 사용하여 가격 변화에 더 빠르게 반응합니다.

  2. 5주기 기하급수적 이동 평균 (EMA) 을 계산합니다. EMA는 최근 가격에 더 많은 무게를 부여하고 트렌드를 추적하는 데 SMA보다 더 민감합니다.

  3. HULL SMA와 EMA의 크로스오버를 기반으로 구매 및 판매 신호를 생성합니다.

  • HULL SMA가 EMA를 넘으면 구매 신호가 생성되며, 단기 트렌드가 장기 트렌드 위에 돌파한다는 것을 나타내고, 상승 가격 움직임을 시사합니다.

  • HULL SMA가 EMA 아래를 넘으면 판매 신호가 생성되며, 단기 트렌드가 하락하는 것을 나타내고, 하락 가격 움직임을 시사합니다.

  1. HULL SMA를 빠른 라인, EMA를 느린 라인으로 사용하여 크로스오버를 기반으로 단기 및 중기 트렌드 변화를 결정하여 거래 신호를 생성합니다.

이점 분석

  1. HULL SMA는 가격 변화에 민감하며 트렌드 변화를 더 일찍 감지할 수 있습니다.

  2. EMA는 시장 소음을 완화시키고 장기적인 경향을 추적합니다.

  3. 크로스오버 신호는 트렌드 전환점을 적시에 잡습니다.

  4. 매개 변수는 다른 거래 시간대에 맞춰 조정할 수 있습니다.

  5. 상승과 하락 추세를 유연하게 포착합니다.

위험 분석

  1. 범위에 묶인 시장에서 더 많은 잘못된 신호가 발생할 수 있습니다.

  2. 트렌드 강도를 결정하지 못하면 약한 트렌드에서 반복적인 손실이 발생할 수 있습니다.

  3. 평균 간격 사이의 가격 움직임은 놓칠 수 있습니다.

  4. 부적절한 파라미터 설정은 신호 품질에 영향을 미칩니다.

  5. 높은 거래 빈도는 비용과 미끄러짐 위험을 증가시킵니다.

신호 필터링, 트렌드 강도 평가, 매개 변수 최적화, 위험 관리 등을 통해 개선이 가능합니다.

최적화 방향

  1. 신호 확인을 위해 MACD, RSI와 같은 지표를 추가합니다.

  2. ADX 같은 트렌드 강도 지표를 포함해서 약한 트렌드를 거래하지 않도록 합니다.

  3. 가장 좋은 조합을 위해 이동 평균 매개 변수를 최적화합니다.

  4. 단일 거래 손실을 통제하기 위해 스톱 로스를 구현합니다.

  5. 무역의 빈도와 비용을 관리합니다.

  6. 여러 시간 프레임 분석을 포함하여 횡단 주기의 경향을 식별합니다.

  7. 자동 매개 변수 최적화 프로그램을 개발합니다.

요약

이 전략은 빠른 HULL SMA와 느린 EMA 사이의 교차를 기반으로 트렌드를 판단합니다. 이것은 전형적인 이동 평균 교차 시스템입니다. 전통적인 이동 평균에 비해 더 반응적인 HULL SMA는 트렌드 변화의 조기 검출을 제공합니다. 그러나 매개 변수 및 보충 지표는 잘못된 신호를 줄이기 위해 최적화되어야합니다. 적절한 위험 및 돈 관리로,이 전략은 효율적인 중장기 트렌드 다음 시스템일 수 있습니다.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("HULL EMA Crossover", overlay = true, process_orders_on_close = true)

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © spiritedPerson95700

inSession = true


HULL_INP = input.int(5, "Hull EMA Value")
EMA_INP = input(5, "EMA Value")

/// Indicator
HULL_EMA = ta.hma(close, HULL_INP)
EMA = ta.ema(close, EMA_INP)

prevSignal = ''
if (prevSignal == '')  
    prevSignal := HULL_EMA > EMA ? 'buy' : 'sell'

/// buy and sell signal
buy = ta.crossover(HULL_EMA, EMA)
short = ta.crossover(EMA, HULL_EMA)

sell = short
cover = buy

if inSession
    if buy 
        prevSignal := 'na'
        strategy.entry("long", direction = strategy.long, comment = "Buy")

    if sell
        prevSignal := 'na'
        strategy.close("long", comment = "Sell")

    if short
        strategy.entry("short", direction = strategy.short, comment = "Short")

    if cover
        strategy.close("short", comment = "Cover")


plot(HULL_EMA, color = color.green)
plot(EMA, color = color.blue)

// if ( hour(time) == 15 and minute(time) > 25  )  
//     strategy.close("long", comment="EOD")
//     strategy.close("short", comment="EOD")
//     buy := false
//     sell := false
//     prevSignal := ''


더 많은