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

거래 전략에 따른 다중 시간 프레임 EMA 트렌드

저자:차오장, 날짜: 2024-02-26 16:55:48
태그:

img

전반적인 설명

이 전략은 트렌드를 따르는 및 여러 시간 프레임 기하급수적 이동 평균 (EMA) 을 기반으로 하는 브레이크아웃 거래 전략입니다. 5 개의 EMA를 서로 다른 기간과 결합하여 중장기 가격 움직임을 추세에 따라 파악하는 트렌드 식별에 강력한 기능을 가지고 있습니다.

전략 논리

  1. 각각 12년, 15년, 18년, 21년 및 24년 기간의 5개의 EMA를 계산합니다.

  2. EMA 순위 규칙: EMA12 > EMA15 > EMA18 > EMA21 > EMA24는 구매 신호로; EMA12 < EMA15 < EMA18 < EMA21 < EMA24는 판매 신호로.

  3. 트리거 트레이딩 신호는 사용자 정의 시작 날짜 후에만 발사됩니다.

  4. 구매 신호가 발동되면 긴 입구; 판매 신호가 발동되면 짧은 입구

이 전략은 여러 EMA를 사용하여 채널 대역 간의 관계를 기반으로 트렌드 방향을 결정하는 트렌드 채널을 형성합니다. EMA 기간은 브레이크아웃 신호에 더 민감하게 반응하기 위해 가깝게 설정되며 단기 시장 소음으로 오해되는 것을 피합니다. 또한 사용자가 시작 날짜를 사용자 정의 할 수있게하면 더 많은 유연성을 제공합니다.

이점 분석

  1. 다양한 EMA를 트렌드 채널로 사용하여 트렌드 식별에 대한 강력한 역량

  2. 가까운 EMA 기간 설정은 트렌드 브레이크 신호에 민감하게 반응하고 중장기 트렌드를 적시에 파악 할 수 있습니다.

  3. 사용자 정의 가능한 시작 날짜는 사용의 유연성을 제공합니다.

  4. 주문 크기에 따라 제어 할 수 있는 자본 관리

  5. 명확하고 간단한 거래 규칙, 트렌드를 따르는 데 적합합니다.

위험 분석

  1. EMA는 본질적으로 뒤떨어진 효과를 가지고 있으며, 단기 급격한 가격 변동을 놓칠 수 있습니다.

  2. 브레이크오웃 거래는 포획될 가능성이 높고 합리적인 스톱 로스를 필요로 합니다.

  3. 트렌드가 역전되면 엄청난 손실이 발생할 수 있습니다.

  4. 매우 변동성 있는 주식에 적용되지 않는 적절한 제품을 선택해야 합니다.

그에 따른 위험 관리 및 최적화:

  1. EMA 매개 변수를 잘 조정하고, 기간 조합을 최적화해

  2. 트렌드 방향 검증을 위한 다른 지표를 추가합니다.

  3. 적절한 스톱 손실을 명령 손실에 따라 제어로 설정합니다.

최적화 방향

  1. MACD, KDJ와 같은 다른 지표를 추가하여 전략 성과를 향상시킵니다.

  2. 가짜 브레이크오웃을 피하기 위해 거래량 조건을 추가합니다.

  3. 가장 좋은 조합을 찾기 위해 EMA 기간을 최적화하십시오.

  4. 특정 시간 범위에서 거래를 중지하여 시장 격동 기간을 피합니다.

  5. 기계 학습 방법을 사용하여 EMA 기간과 매개 변수를 동적으로 최적화합니다.

결론

일반적으로 이것은 트렌드를 따르는 전략입니다. 여러 EMA를 사용하여 거래 채널을 형성하고 가격이 채널을 벗어날 때 거래 신호를 생성함으로써 EMA의 장점을 활용합니다. 장점은 중장기 트렌드를 쉽게 따라가는 간단하고 명확한 거래 규칙입니다. 단점은 단기 시장 소음과 고유한 후퇴 효과에 대한 민감성입니다. 다른 보조 도구를 추가하는 것과 같은 적절한 매개 변수 조정 및 최적화는 안정성과 성능을 향상시킬 수 있습니다. 일부 거래 경험있는 투자자에게 적합합니다.


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Scalping Strategy - EMA",
         shorttitle="EMA Scalp",
         overlay=true)

// User input for start date
startDateInput = input(title="Start Date", defval=timestamp("2024-02-01"))

// Calculate EMAs
ema_12 = ta.ema(close, 12)
ema_15 = ta.ema(close, 15)
ema_18 = ta.ema(close, 18)
ema_21 = ta.ema(close, 21)
ema_24 = ta.ema(close, 24)

// Plot EMAs
plot(ema_12, color=color.red, title="EMA 12")
plot(ema_15, color=color.orange, title="EMA 15")
plot(ema_18, color=color.yellow, title="EMA 18")
plot(ema_21, color=color.green, title="EMA 21")
plot(ema_24, color=color.blue, title="EMA 24")

// Define a start date for the strategy based on user input
isAfterStartDate = true

// Visualize the isAfterStartDate condition
bgcolor(isAfterStartDate ? color.new(color.green, 90) : na, title="After Start Date")

// Entry conditions
buy_condition = (ema_12 > ema_15) and (ema_15 > ema_18) and (ema_18 > ema_21) and (ema_21 > ema_24) and isAfterStartDate
sell_condition = (ema_12 < ema_15) and (ema_15 < ema_18) and (ema_18 < ema_21) and (ema_21 < ema_24) and isAfterStartDate

// Execute trades using conditional blocks
if (buy_condition)
    strategy.entry("Buy", strategy.long)
    
if (sell_condition)
    strategy.entry("Sell", strategy.short)

더 많은