이 전략은 트리플 익스포넌셜 이동 평균 (TEMA) 을 기반으로 한 트렌드 추적 거래 시스템이다. 단기 및 장기 TEMA 지표 사이의 교차 신호를 분석하여 시장 추세를 포착하며 위험 관리를 위해 변동성 기반 스톱 로스를 통합합니다. 전략은 300 및 500 기간 TEMA 지표를 신호 생성 기초로 사용하여 5 분 시간 프레임에서 작동합니다.
전략의 핵심 논리는 다음의 핵심 요소에 기초합니다.
이 전략은 TEMA 크로스오버를 통해 트렌드를 포착하고 동적 스톱 로스로 위험을 관리하는 포괄적인 트렌드 추적 시스템이다. 전략 논리는 명확하고, 구현은 간단하며, 좋은 실용성을 보여준다. 그러나 라이브 트레이딩을 할 때 시장 환경 식별과 위험 통제에 주의를 기울여야 한다. 백테스팅 검증 후 실제 시장 조건에 기반한 매개 변수를 최적화하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=6 strategy("TEMA Strategy for Gold", overlay=true) // Inputs tema_short_length = input.int(300, title="Short TEMA Length") tema_long_length = input.int(500, title="Long TEMA Length") pip_value = input.float(0.10, title="Pip Value (10 pips = 1 point for Gold)") // Calculate TEMA tema_short = ta.ema(2 * ta.ema(close, tema_short_length) - ta.ema(ta.ema(close, tema_short_length), tema_short_length), tema_short_length) tema_long = ta.ema(2 * ta.ema(close, tema_long_length) - ta.ema(ta.ema(close, tema_long_length), tema_long_length), tema_long_length) // Plot TEMA plot(tema_short, color=color.blue, title="300 TEMA") plot(tema_long, color=color.red, title="500 TEMA") // Crossover conditions long_condition = ta.crossover(tema_short, tema_long) short_condition = ta.crossunder(tema_short, tema_long) // Calculate recent swing high/low swing_low = ta.lowest(low, 10) swing_high = ta.highest(high, 10) // Convert pips to price pip_adjustment = pip_value * syminfo.mintick // Long entry logic if (long_condition and strategy.position_size == 0) stop_loss_long = swing_low - pip_adjustment strategy.entry("Long", strategy.long) label.new(bar_index, swing_low, style=label.style_label_down, text="Buy", color=color.green) // Short entry logic if (short_condition and strategy.position_size == 0) stop_loss_short = swing_high + pip_adjustment strategy.entry("Short", strategy.short) label.new(bar_index, swing_high, style=label.style_label_up, text="Sell", color=color.red) // Exit logic if (strategy.position_size > 0 and short_condition) strategy.close("Long") label.new(bar_index, high, style=label.style_label_up, text="Exit Long", color=color.red) if (strategy.position_size < 0 and long_condition) strategy.close("Short") label.new(bar_index, low, style=label.style_label_down, text="Exit Short", color=color.green)