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

더 많은 시간 프레임과 200 EMA 필터 트렌드 추적 전략 - 더 많은 것을하십시오.

저자:차오장, 날짜: 2024-05-23 18:07:50
태그:EMA

多时间框架与200EMA过滤器的趋势跟踪策略 - 仅做多

개요

이 전략은 멀티 타임 프레임 지수 이동 평균 (EMA) 과 200 주기 EMA 필터 (filter) 에 기반한 트렌드 추적 전략이다. 그것의 주요 생각은 다른 시간 프레임의 EMA를 사용하여 시장의 트렌드 방향을 식별하고, 트렌드가 상승하고 가격이 200 주기 EMA 위에 있을 때 멀티 포지션을 설정하는 것이다. 이것은 강력한 상승 추세 중만 거래하는 것을 보장하고, 지속적인 상승 추세를 파악하고, 손해 방지 및 격리 메커니즘을 사용하여 위험을 제어하는 것이다.

전략은 5분, 15분, 30분 세 가지 시간 프레임을 사용하여 각각 빠른 EMA와 느린 EMA를 계산한다. 각 시간 프레임을 비교하여 빠른 EMA와 느린 EMA를 통해 그 시간 프레임의 트렌드 방향을 판단할 수 있다. 그 다음 세 가지 시간 프레임의 트렌드 신호를 합쳐 종합적인 트렌드 신호를 얻을 수 있다. 종합적인 트렌드 신호가 3 (즉 모든 시간 프레임이 상승 추세) 이며 현재 폐쇄 가격이 5분 200분 EMA 이상인 경우, 전략은 시장을 개척한다. 종합적인 트렌드 신호가 3보다 많거나 가격이 5분 200분 EMA를 넘어선 경우, 전략은 평행한다.

전략적 원칙

  1. 각각 5분, 15분 및 30분 시간 프레임을 계산하는 빠른 EMA (디폴트 9단계) 및 느린 EMA (디폴트 21단계) 이다.
  2. 5분 시간 프레임에 200파운드 EMA를 계산하여 트렌드 필터로 사용한다.
  3. 각 시간 프레임에 대해, 빠른 EMA와 느린 EMA의 크기를 비교하면, 빠른 EMA는 상승 추세 (+1) 로, 느린 EMA는 하락 추세 (-1) 로 나타난다.
  4. 세 가지 시간 프레임의 트렌드 신호를 더하면 [-3, 3]에 걸쳐있는 종합 트렌드 신호를 얻습니다.
  5. 종합 트렌드 신호가 3 (강도 상승) 이고 현재 종료 가격은 5분 200파운드 EMA보다 높을 때, 오프닝을 한다.
  6. 종합 트렌드 신호가 3보다 작거나 가격이 5분 200 EMA보다 떨어지면 평형된다.
  7. 개시시장에는 개시 가격보다 1% 아래로 중지 손실을 설정하고, 개시 가격보다 3% 위로 중지 손실을 설정합니다.

장점 분석

  1. 여러 시간 프레임의 트렌드 신호를 사용하여 시장 트렌드를 보다 종합적으로 판단하고 가짜 신호를 줄일 수 있습니다.
  2. 200 EMA 필터는 강력한 상승 추세 중만 거래를 보장하고 성공률을 높일 수 있습니다.
  3. 엄격한 상장 조건과 손해배상 차단은 위험을 통제하고 위험 수익률을 높이는 데 도움이 된다.
  4. 변수는 다양한 시장과 거래 스타일에 적용할 수 있습니다.

위험 분석

  1. 트렌드 전환점에 반응이 느려지고 최적의 창고 시기를 놓칠 수 있습니다.
  2. 빈번한 거래가 거래 비용을 증가시킬 수 있습니다.
  3. 손익분기 지점은 고정되어 있으며, 더 큰 변동이 있는 시장에서 손익분기 지점이 일찍 종료될 수 있다.
  4. 트렌드 판단은 역사적 데이터에 기초하여, 갑작스러운 사건으로 인한 가격 변동에 대한 반응이 늦어질 수 있습니다.

최적화 방향

  1. 더 많은 시간 프레임을 도입하거나 기존의 시간 프레임을 최적화하여 추세 판단의 정확성과 신속성을 향상시키는 옵션.
  2. 트래킹 스톱 또는 동적 스톱을 도입하여 다른 시장 상황에 맞게 스톱 및 스톱 포지션을 최적화한다.
  3. 트렌드 신호 이외에 거래량, 동력 등 다른 신호를 도입하여 다인자 평형 조건을 형성하여 전략 안정성을 향상시킵니다.
  4. 현재 시장에 가장 적합한 파라미터 조합을 찾기 위해 파라미터를 최적화합니다.
  5. "공백 메커니즘에 가입하여 적용 범위를 확장하는 것을 고려하십시오".

요약

이 전략은 트렌드 방향을 판단하기 위해 여러 시간 프레임의 EMA를 비교하고, 트렌드 필터로서 200주기 EMA를 사용하며, 트렌드가 명확히 상향하고 가격이 장기간 평균보다 높을 때 포지션을 다룹니다. 엄격한 오픈 평형 조건과 고정된 스톱 손실 은 위험을 제어하는 데 도움이 됩니다. 그러나 이 전략은 트렌드 전환점에 반응이 느리고, 스톱 손실 이 고정되어 있으며, 시장의 갑작스러운 변동에 대응할 때 한계가 있습니다. 미래에는 더 많은 시간 프레임, 최적화된 스톱-러스 차단, 더 많은 거래 신호, 파라미터 최적화 등을 도입함으로써 전략의 유연성과 안정성을 향상시킬 수 있으며, 시장 기회를 더 잘 파악하고 위험을 통제할 수 있습니다.


/*backtest
start: 2023-05-17 00:00:00
end: 2024-05-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Multi-Timeframe Trend Following with 200 EMA Filter - Longs Only", shorttitle="MTF_TF_200EMA_Longs", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=1)

// Inputs
fast_length = input.int(9, title="Fast EMA Length", minval=1)
slow_length = input.int(21, title="Slow EMA Length", minval=1)
filter_length_200 = input.int(200, title="200 EMA Length", minval=1)
stop_loss_perc = input.float(1.0, title="Stop Loss Percentage", minval=0.1) / 100
take_profit_perc = input.float(3.0, title="Take Profit Percentage", minval=0.1) / 100

// Calculate EMAs for 5-minute, 15-minute, and 30-minute timeframes
ema_fast_5min = request.security(syminfo.tickerid, "5", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_5min = request.security(syminfo.tickerid, "5", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_15min = request.security(syminfo.tickerid, "15", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_15min = request.security(syminfo.tickerid, "15", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

ema_fast_30min = request.security(syminfo.tickerid, "30", ta.ema(close, fast_length), lookahead=barmerge.lookahead_on)
ema_slow_30min = request.security(syminfo.tickerid, "30", ta.ema(close, slow_length), lookahead=barmerge.lookahead_on)

// Calculate 200 EMA for the 5-minute timeframe
ema_200_5min = ta.ema(close, filter_length_200)

// Determine the trend for each timeframe
trend_5min = ema_fast_5min > ema_slow_5min ? 1 : -1
trend_15min = ema_fast_15min > ema_slow_15min ? 1 : -1
trend_30min = ema_fast_30min > ema_slow_30min ? 1 : -1

// Combine trend signals
combined_trend = trend_5min + trend_15min + trend_30min

// Define entry and exit conditions with 200 EMA filter
enter_long = combined_trend == 3 and close > ema_200_5min
exit_long = combined_trend < 3 or close < ema_200_5min

// Plot EMAs for the 5-minute timeframe
plot(ema_fast_5min, color=color.blue, linewidth=2, title="Fast EMA 5min")
plot(ema_slow_5min, color=color.red, linewidth=2, title="Slow EMA 5min")
plot(ema_200_5min, color=color.green, linewidth=2, title="200 EMA 5min")

// Strategy execution
if (enter_long)
    strategy.entry("Long", strategy.long, stop=close * (1 - stop_loss_perc), limit=close * (1 + take_profit_perc))
if (exit_long)
    strategy.close("Long")


관련 내용

더 많은 내용