기간 이동 평균 교차 렌코 전략


생성 날짜: 2024-01-24 10:55:57 마지막으로 수정됨: 2024-01-24 10:55:57
복사: 0 클릭수: 717
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

기간 이동 평균 교차 렌코 전략

개요

이 전략은 렌코 차트에 기반한 이동 평균의 가로 전략이다. 그것은 TEMA 지표를 사용하여 가로 신호를 구축하고, 장기 평균선과 결합하여 필터링을 수행하여 렌코 차트의 추세를 식별하여 구매 및 판매 신호를 발산합니다.

전략 원칙

이 전략의 주요 신호 소스는 단기 TEMA 지표와 SMA 지표의 골드 포크 데드 포크이다. 구체적인 논리는 다음과 같다:

단기 TEMA 상에서 단기 SMA를 통과할 때, 더 많이 하고; 단기 TEMA 아래에서 단기 SMA를 통과할 때, 평점.

또한, 이 정책은 진출 및 중단 논리를 조정하기 위해 두 가지 선택 가능한 변수인 avg_protection 및 gain_protection을 설정합니다.

  • avg_protection>0일 때, 클로즈 가격이 현재 지분 평균 가격보다 낮을 때만 구매하게 되는데, 이는 지분 비용을 줄일 수 있다.

  • gain_protection>0일 때, 클로즈 가격이 입시 가격의 일정한 퍼센티지를 초과했을 때만 스톱을 팔아 수익을 잠금한다.

마지막으로, 전략은 장기적인 SMMA 지표를 트렌드 필터로 사용한다. 클로즈 가격이 SMMA보다 낮을 때만 멀티 신호를 발산한다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 렌코 지도를 기반으로 잡음을 효과적으로 필터링하고 트렌드를 식별합니다.
  2. TEMA 지표를 사용하여 신호를 구성하고, 민감성이 높으며, 잘 따라갈 수 있습니다.
  3. “이런 게임으로, 당신은 당신의 게임 플레이를 조절할 수 있습니다.
  4. 그리고, 그 중에서도, 장기 및 단기 평균선과 결합하여, 동향에서 기회를 잡을 수 있습니다.

위험 분석

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

  1. 렌코의 시간 축은 균일하지 않아서 시간 간격을 조절할 수 없습니다.
  2. TEMA의 민감도가 높을수록 잘못된 신호가 발생하기 쉽다.
  3. 변수 설정이 잘못되면 누출이 발생할 수 있습니다.

이러한 위험에는 적절한 변수 조정, 스톱 로지 설정 등의 방법으로 회피할 수 있다.

최적화 방향

이 전략은 다음의 몇 가지 측면에서 최적화될 수 있습니다.

  1. 다른 변수 조합을 테스트하여 최적의 변수를 찾습니다.
  2. DD를 줄이기 위해 이동식, 간격식 등의 손실을 막는 전략을 추가합니다.
  3. 다른 지표와 함께 신호를 필터링하여 잘못된 신호를 줄여줍니다.
  4. 다양한 품종의 파라미터 효과를 테스트한다.

요약하다

이 전략은 전체적으로 기본이 단순하지만 실용성이 강한 이동평균선 교차 전략이다. 그것은 주로 렌코 K 선의 우수한 소음 제거 효과와 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))