Chiến lược này tính toán độ lệch của giá vàng so với đường trung bình động theo hàm số 21 ngày của nó để xác định tình huống mua quá mức và bán quá mức trên thị trường.
Những lợi thế của chiến lược này là:
Một số rủi ro cần xem xét:
Giải pháp:
Một số cách để cải thiện chiến lược:
Nhìn chung, đây là một chiến lược theo xu hướng vững chắc. Nó sử dụng EMA để xác định hướng xu hướng và sai lệch tiêu chuẩn để xác định rõ mức mua quá mức / bán quá mức cho các tín hiệu giao dịch. Kiểm soát rủi ro dừng lỗ hợp lý trong khi cho phép lợi nhuận chạy. Việc điều chỉnh tham số và thêm các điều kiện có thể làm cho chiến lược này mạnh mẽ hơn cho ứng dụng thực tế.
/*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)