장기 이동평균 크로스오버 렌코 전략

저자:차오장, 날짜: 2024-01-24 10:55:57
태그:

img

전반적인 설명

이 전략은 렌코 촛불 차트에 기반한 이동 평균 크로스오버 전략이다. 그것은 크로스오버 신호를 구성하기 위해 TEMA 지표를 사용하고 필터링을 위해 장기 이동 평균을 결합하여 렌코 차트에서 트렌드를 식별하고 구매 및 판매 신호를 생성하는 것을 목표로합니다.

전략 논리

이 전략의 주요 신호 소스는 단기 TEMA 지표와 SMA 지표의 황금 십자가와 죽음의 십자가에서 나옵니다. 구체적으로 논리는 다음과 같습니다.

단기 TEMA가 단기 SMA를 넘을 때, 긴 지점에 가자; 단기 TEMA가 단기 SMA를 넘을 때, 포지션을 닫는다.

또한 전략은 또한 두 가지 선택적 매개 변수를 설정합니다. avg_protection 및 gain_protection:

  • avg_protection>0일 때, 닫기 가격이 현재 평균 보유 가격보다 낮을 때만 구매합니다. 이는 비용 기반을 줄일 수 있습니다.

  • 이득_보호>0일 때, 닫기 가격이 출입 가격을 일정 비율로 초과할 때만 매각하여 수익을 올릴 수 있습니다.

마지막으로, 전략은 또한 장기 SMMA 지표를 트렌드 필터로 사용합니다. 닫기 가격이 SMMA 이하일 때만 긴 신호가 작동됩니다.

이점 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 렌코 촛불 차트에 기반을 두고 소음을 효과적으로 필터링하고 트렌드를 식별할 수 있습니다.
  2. TEMA 표시기를 사용하여 높은 민감도와 추적 능력을 가진 신호를 구성합니다.
  3. 정렬 가능한 매개 변수들은 입력 전략을 제어하기 위해 풍부합니다.
  4. 장기 및 단기 이동 평균의 조합은 트렌드에서 기회를 포착 할 수 있습니다.

위험 분석

이 전략에는 또한 몇 가지 위험이 있습니다.

  1. 렌코 자신은 간격시간을 조절할 수 없는 불균형한 타임라인을 가지고 있습니다.
  2. TEMA의 높은 민감도 때문에 더 많은 잘못된 신호가 발생합니다.
  3. 부적절한 매개 변수 설정으로 인해 거래가 빠질 수 있습니다.

이러한 위험을 줄이기 위해 적절한 매개 변수 조정, 중지 손실 설정 등을 채택 할 수 있습니다.

최적화 방향

이 전략의 주요 최적화 방향은 다음과 같습니다.

  1. 최적의 매개 변수를 찾기 위해 다양한 매개 변수 조합을 테스트합니다.
  2. DD를 줄이기 위해 후속 스톱 손실, 범위 스톱 손실 등과 같은 스톱 손실 전략을 추가합니다.
  3. 거짓 신호를 줄이기 위해 신호 필터링을 위한 다른 표시기를 조합한다.
  4. 다른 제품에서 테스트 매개 변수 효과

결론

일반적으로 이것은 기본적이고 간단하지만 매우 실용적인 이동 평균 크로스오버 전략입니다. 주로 렌코 바의 우수한 소음 감소 효과와 신호를 생성하는 TEMA 지표의 높은 민감도에 의존합니다. 한편, 장기 및 단기 이동 평균 간의 협업은 또한 트렌드를 따르는 능력을 향상시킵니다. 매개 변수 조정 및 적절한 최적화로이 전략은 양적 거래에 효과적인 선택이 될 수 있습니다.


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

//@version=2
strategy("TEMA Cross", overlay = true)

tema(src, len) =>
    3*ema(src, len) - 3*ema(ema(src, len), len) + ema(ema(ema(src, len),len),len)

smma(src, len) =>
    sa = 0.0
    sa := na(sa[1]) ? sma(src, len) : (sa[1] * (len - 1) + src) / len
    sa

temaLength = input(5)
smaLength = input(3)
smmaLength = input(30)
tema1 = tema(close, temaLength)
sma1 = sma(tema1, smaLength)
smma1 = smma(close,smmaLength)


plot(tema1, color = green, title = "TEMA")
plot(sma1, color = orange, title = "SMA")
plot(smma1, color = red, title = "SMMA")
minGainPercent = input(2)
gainMultiplier = minGainPercent * 0.01 + 1

avg_protection = input(1)
gain_protection = input(1)

longCondition = crossover(tema1, sma1) and tema1 < smma1
shortCondition = crossunder(tema1, sma1)

strategy.entry("Buy", strategy.long, when = longCondition and (avg_protection >= 1 ? (na(strategy.position_avg_price) ? true : close <= strategy.position_avg_price) : true))
strategy.close_all(when = shortCondition and (gain_protection >=1 ? (close >= gainMultiplier * strategy.position_avg_price) : true))

더 많은