EMA와 하이킨 아시 거래 전략

저자:차오장, 날짜: 2023-10-17 16:11:19
태그:

img

여기 EMA와 Heikin Ashi의 거래 전략에 대한 기사가 있습니다:

전반적인 설명

이 전략은 기하급수적인 이동 평균 (EMA) 과 하이킨 아시 (Heikin Ashi) 를 사용하여 트렌드를 결정하고 가격이 다른 기간의 EMA를 통과 할 때 거래 신호를 생성합니다.

거래 논리

이 전략은 15주기 및 50주기 EMA를 사용합니다. 현재 하이킨 아시 폐쇄 가격을 계산하고 EMA와 비교합니다. 종료 가격이 EMA 둘 다 이상이고 15주기 EMA가 50주기 EMA보다 높으면 긴 신호가 생성됩니다. 종료 가격이 EMA 둘 다 이하이고 15주기 EMA가 50주기 EMA보다 낮다면 짧은 신호가 생성됩니다.

가격이 15주기 EMA를 넘어서면 역거래가 이루어집니다.

이점 분석

  1. EMA를 사용하면 시장 소음을 필터링하고 트렌드 방향을 결정하는 데 도움이 됩니다.

  2. 서로 다른 기간의 EMA를 결합하면 단기 및 중기 동향을 모두 파악할 수 있습니다.

  3. 헤이킨 아시는 가짜 브레이크를 필터링하고 거래 신호를 확인합니다.

  4. 전략은 간단하고 실행하기 쉽습니다.

위험 분석

  1. EMA는 지연이 있고 트렌드 전환점을 놓칠 수도 있습니다.

  2. 고정된 매개 변수는 변화하는 시장에 적응하지 못하고 동적 최적화를 요구합니다.

  3. 빈번한 거래는 잠재적으로 높은 거래 비용을 초래합니다.

  4. 브레이크업 거래는 가짜 브레이크업에 민감하므로 추가적인 지표 확인이 필요합니다.

위험은 매개 변수 최적화, 다른 지표 통합 등을 통해 줄일 수 있습니다.

최적화 방향

  1. 시장 변화에 따라 EMA 기간을 동적으로 최적화합니다.

  2. 가짜 브레이크오웃을 방지하기 위해 브레이크오웃 필터를 최적화하십시오. 예를 들어 볼륨 확인을 추가하십시오.

  3. 신호를 확인하기 위해 MACD와 같은 다른 지표를 포함합니다.

  4. 트렌드를 위해 뒤떨어진 EMA를 사용하고 범위를 위해 선도적인 EMA를 사용하십시오.

요약

이 전략은 트렌드 방향을 결정하기 위해 EMA를 사용하고 신호를 확인하기 위해 Heikin Ashi를 사용합니다. 간단하고 직설적이지만 EMA 지연 및 잘못된 브레이크아웃 위험을 해결해야합니다. 파라미터 최적화, 지표 통합을 통해 개선이 가능하여 위험을 줄이고 전략 성능을 향상시킬 수 있습니다.


/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-12 02:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("EMA & Heikin Ashi", shorttitle="EMA & Heikin Ashi", overlay=true, initial_capital=1)


// squaa's Strategy
//
// Idea by Thw on March 10, 2018.
//
//
// The strategy should be used with high leverages,
// never stop running,
// and is always long or short.

// Input
price = input(close)
MA1_Length = input(15)
MA2_Length = input(50)


haclose = request.security(heikinashi(syminfo.tickerid), timeframe.period, close)

// === FUNCTION EXAMPLE ===
start     = timestamp(2018, 01, 01, 20, 00)  // backtest start window
window()  => time >= start ? true : false // create function "within window of time"


// Calculation
MA1 = ema(price, MA1_Length)
MA2 = ema(price, MA2_Length)

// Strategy
long = haclose > MA1 and haclose > MA2 and MA1 > MA2 and window()
short = haclose < MA1 and haclose < MA2 and MA1 < MA2 and window()

// MA trend output color
MA2_color = long?lime:short?red:blue

strategy.entry("Long", strategy.long, when=long)
strategy.entry("Short", strategy.short, when=short)
strategy.close("Long", when=haclose < MA1)
strategy.close("Short", when=haclose > MA1)


// MA output
EMA1 = plot(MA1, title="EMA 1", style=linebr, linewidth=1, color=MA2_color)
EMA2 = plot(MA2, title="EMA 2", style=linebr, linewidth=3, color=MA2_color)
fill(EMA1, EMA2, color=silver, transp=50)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

더 많은