
이 전략은 렌코 차트에 기반한 이동 평균의 가로 전략이다. 그것은 TEMA 지표를 사용하여 가로 신호를 구축하고, 장기 평균선과 결합하여 필터링을 수행하여 렌코 차트의 추세를 식별하여 구매 및 판매 신호를 발산합니다.
이 전략의 주요 신호 소스는 단기 TEMA 지표와 SMA 지표의 골드 포크 데드 포크이다. 구체적인 논리는 다음과 같다:
단기 TEMA 상에서 단기 SMA를 통과할 때, 더 많이 하고; 단기 TEMA 아래에서 단기 SMA를 통과할 때, 평점.
또한, 이 정책은 진출 및 중단 논리를 조정하기 위해 두 가지 선택 가능한 변수인 avg_protection 및 gain_protection을 설정합니다.
avg_protection>0일 때, 클로즈 가격이 현재 지분 평균 가격보다 낮을 때만 구매하게 되는데, 이는 지분 비용을 줄일 수 있다.
gain_protection>0일 때, 클로즈 가격이 입시 가격의 일정한 퍼센티지를 초과했을 때만 스톱을 팔아 수익을 잠금한다.
마지막으로, 전략은 장기적인 SMMA 지표를 트렌드 필터로 사용한다. 클로즈 가격이 SMMA보다 낮을 때만 멀티 신호를 발산한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
이러한 위험에는 적절한 변수 조정, 스톱 로지 설정 등의 방법으로 회피할 수 있다.
이 전략은 다음의 몇 가지 측면에서 최적화될 수 있습니다.
이 전략은 전체적으로 기본이 단순하지만 실용성이 강한 이동평균선 교차 전략이다. 그것은 주로 렌코 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))