이 전략은 시장에서 과잉 구매 및 과잉 판매 상황을 결정하기 위해 21 일 지수적인 이동 평균에서 금 가격의 편차를 계산합니다. 편차가 표준 편차의 관점에서 특정 임계치에 도달하면 위험을 제어하기 위해 스톱 로스 메커니즘과 함께 추진력 거래 접근 방식을 채택합니다.
이 전략의 장점은 다음과 같습니다.
고려해야 할 몇 가지 위험:
해결책:
전략을 개선할 수 있는 몇 가지 방법:
전체적으로 이것은 견고한 트렌드 다음 전략이다. 트렌드 방향과 표준화된 오차를 정의하기 위해 EMA를 사용하여 무역 신호에 대한 과소 구매/ 과소 판매 수준을 명확하게 식별한다. 수익을 실행시킬 때 합리적인 스톱 로스 통제 위험. 추가 매개 변수 조정 및 조건 추가로이 전략을 실용적인 적용에 더 견고하게 만들 수 있다.
/*backtest start: 2024-01-20 00:00:00 end: 2024-02-19 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("GC Momentum Strategy with Stoploss and Limits", overlay=true) // Input for the length of the EMA ema_length = input.int(21, title="EMA Length", minval=1) // Exponential function parameters steepness = 2 // Calculate the EMA ema = ta.ema(close, ema_length) // Calculate the deviation of the close price from the EMA deviation = close - ema // Calculate the standard deviation of the deviation std_dev = ta.stdev(deviation, ema_length) // Calculate the Z-score z_score = deviation / std_dev // Long entry condition if Z-score crosses +0.5 and is below 3 standard deviations long_condition = ta.crossover(z_score, 0.5) // Short entry condition if Z-score crosses -0.5 and is above -3 standard deviations short_condition = ta.crossunder(z_score, -0.5) // Exit long position if Z-score converges below 0.5 from top exit_long_condition = ta.crossunder(z_score, 0.5) // Exit short position if Z-score converges above -0.5 from below exit_short_condition = ta.crossover(z_score, -0.5) // Stop loss condition if Z-score crosses above 3 or below -3 stop_loss_long = ta.crossover(z_score, 3) stop_loss_short = ta.crossunder(z_score, -3) // Enter and exit positions based on conditions if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) if (exit_long_condition) strategy.close("Long") if (exit_short_condition) strategy.close("Short") if (stop_loss_long) strategy.close("Long") if (stop_loss_short) strategy.close("Short") // Plot the Z-score on the chart plot(z_score, title="Z-score", color=color.blue, linewidth=2) // Optional: Plot zero lines for reference hline(0.5, "Upper Threshold", color=color.red) hline(-0.5, "Lower Threshold", color=color.green)