슈퍼 트렌드 확인을 이용한 5-10-20일 EMA 크로스오버에 기반한 전략

저자:차오장, 날짜: 2023-12-19 10:39:36
태그:

img

전반적인 설명

이 전략은 5일, 10일 및 20일 기하급수적 이동 평균 (EMA) 라인을 계산하고 슈퍼 트렌드 지표를 사용하여 구매 및 판매 신호를 생성합니다. 5일 EMA가 10일 EMA를 넘어서고 5일 및 10일 EMA가 20일 EMA를 넘어서면 구매 신호를 생성합니다. 10일 EMA가 5일 EMA를 넘어서고 5일 EMA가 20일 EMA를 넘어서면 판매 신호를 생성합니다.

전략 논리

  1. 5일 EMA, 10일 EMA 및 20일 EMA를 계산합니다.
  2. 슈퍼 트렌드 지표를 계산해
  3. 5일 EMA가 10일 EMA보다 커지고 5일 EMA와 10일 EMA가 20일 EMA보다 커지면 5일 EMA와 10일 EMA가 20일 EMA를 넘을 때 구매 신호를 생성합니다.
  4. 10일 EMA가 5일 EMA보다 작고 5일 EMA와 10일 EMA가 20일 EMA보다 작을 때, 즉 5일 EMA와 10일 EMA가 20일 EMA를 넘으면 판매 신호를 생성합니다.
  5. 또한 슈퍼 트렌드 지표를 사용하여 시장 트렌드를 결정합니다. 슈퍼 트렌드가 하향 추세를 보이는 경우에만 구매 신호를 생성하고 슈퍼 트렌드가 상승 추세를 보이는 경우에만 판매 신호를 생성합니다.

전략 의 장점

  1. 간단하고 효과적이며 이해하기 쉽고 실행하기 쉽습니다.
  2. 세 개의 EMA 라인과 슈퍼 트렌드 지표를 결합함으로써 더 정확하고 신뢰할 수 있는 신호입니다.
  3. 5일, 10일 및 20일 EMA를 사용하여 단기, 중기 및 장기 트렌드에 대한 포괄적 인 판단.
  4. 기술 지표와 동력 지표를 결합하여 조작되는 것을 피하십시오.
  5. 다양한 제품과 시장 조건에 맞게 유연하게 조정 가능한 매개 변수
  6. 높은 위험/이익 비율을 가진 거래 기회를 정확하게 탐지합니다.
  7. 이해하기 쉽고 확장하고 사용자 정의하기 쉽습니다.

전략 의 위험

  1. 시장의 격렬한 변동 도중 더 많은 잘못된 신호가 발생할 수 있습니다. 출구는 적시에 일어나지 않을 수 있습니다.
  2. EMA 시스템은 매개 변수에 민감합니다. 부적절한 설정은 손실로 이어질 수 있습니다.
  3. 슈퍼 트렌드 트렌드 판단은 지연 효과가 있습니다. 다른 지표로부터 확인이 필요합니다.
  4. 플래시 추락과 같은 극단적인 시장 현상을 감당할 수 없습니다.

주요 위험 에 대한 해결책:

  1. 신호를 확인하기 위해 더 많은 기술적 지표나 근본 분석을 추가합니다.
  2. 손실을 제한하기 위해 스톱 로스 전략을 추가합니다.
  3. 단기 및 장기 지표를 결합하여 매개 변수를 최적화합니다.
  4. 지수 변동성 및 슈퍼 트렌드 성능을 모니터링합니다. 필요한 경우 수동적으로 개입합니다.

전략 최적화의 방향

  1. 더 많은 EMA 시스템과 MACD, KD 등과 같은 기술 지표를 추가합니다.
  2. 자동 스톱 손실을 추가하고 수익을 취합니다.
  3. 다른 제품과 시장 조건에 따라 슈퍼 트렌드 및 EMA 매개 변수를 최적화합니다.
  4. 과거 데이터에 기반한 매개 변수와 전략을 최적화하기 위해 백테스팅을 추가합니다.
  5. 가격 추세와 잠재적 거래 기회를 예측하기 위해 기계 학습 예측 모델을 추가합니다.

요약

이 전략은 슈퍼 트렌드 지표와 함께 5일, 10일 및 20일 EMA를 사용합니다. 간단하지만 효과적이며 트렌드 식별 및 기회 발견에 뛰어난 성능을 발휘합니다. 매우 사용자 정의 가능하고 확장 가능합니다. 매개 변수 조정, 더 많은 지표 및 머신 러닝 모델을 추가하여 더 복잡한 시장 환경에서 전략 성능을 지속적으로 향상시키는 것을 통해 최적화 할 수있는 방안이 있습니다.


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

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

//@version=4
strategy("5-10-20 Cross", overlay=true)
src = close, 
len1 = input(5, minval=1, title="EMA 1")
len2 = input(10, minval=1, title="EMA 2")
len3 = input(20, minval=1, title="EMA 3")

mult = input(type=input.float, defval=2)
len = input(type=input.integer, defval=14)
[superTrend, dir] = supertrend(mult, len)

ema1 = ema(src, len1)
ema2 = ema(src, len2)
ema3 = ema(src, len3)

//EMA Color
col1 = color.lime
col2 = color.blue
col3 = color.red

//EMA Plots
plot(series=ema1,color=col1, title="EMA1")
plot(series=ema2,color=col2, title="EMA2")
plot(series=ema3,color=col3, title="EMA3")

//plot SuperTrend
colResistance = dir == 1 and dir == dir[1] ? color.new(color.red, 100) : color.new(color.green, 100)
colSupport = dir == -1 and dir == dir[1] ? color.new(color.green, 0) : color.new(color.green, 10)
plot(superTrend, color = colResistance, linewidth=1)
plot(superTrend, color = colSupport, linewidth=1)

//longCondition = crossover(ema1, ema2) and crossover(ema1,ema3) and crossover(ema2,ema3)
longCondition = ema1 > ema2 and ema1 > ema3 and ema2 > ema3 and ema2 < ema1 and dir == -1
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

//shortCondition = crossover(ema2, ema1) and crossover(ema3,ema1) and crossover(ema3,ema2)
shortCondition = ema1 < ema2 and ema1 < ema3 and ema2 < ema3 and ema2 > ema1 and dir == 1
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

더 많은