평활 이동 평균 vs 이동 평균 거래 전략


생성 날짜: 2023-10-17 16:11:19 마지막으로 수정됨: 2023-10-17 16:11:19
복사: 1 클릭수: 1110
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

평활 이동 평균 vs 이동 평균 거래 전략

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

개요

이 전략은 평평한 이동 평균과 평균선을 사용하여 트렌드를 판단하고, 가격이 다른 주기에서 깨지는 이동 평균에 따라 거래 신호를 생성한다.

전략 원칙

이 전략은 15주기 및 50주기 지수 이동 평균 EMA를 사용한다. 현재의 Heikin Ashi 종전 가격을 계산하고 EMA와 비교한다. 종전 가격이 두 개의 EMA보다 높고, 15EMA가 50EMA보다 높으면 구매 신호를 발생시킨다. 종전 가격이 두 개의 EMA보다 낮고, 15EMA가 50EMA보다 낮으면 판매 신호를 발생시킨다.

15EMA를 다시 넘으면 반전 거래한다.

우위 분석

  1. EMA를 사용하면 시장의 소음을 효과적으로 필터링하여 트렌드 방향을 판단할 수 있습니다.

  2. 다양한 주기적 EMA와 결합하여 단기 및 중기 경향을 동시에 포착할 수 있다.

  3. Heikin Ashi는 가짜 침입을 필터링하여 거래 신호를 확인합니다.

  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)