Chiến lược này là một hệ thống giao dịch theo xu hướng dựa trên Trung bình Di chuyển Triple Exponential (TEMA). Nó nắm bắt xu hướng thị trường bằng cách phân tích các tín hiệu chéo giữa các chỉ số TEMA ngắn hạn và dài hạn, kết hợp stop-loss dựa trên biến động để quản lý rủi ro. Chiến lược hoạt động trên một khung thời gian 5 phút, sử dụng các chỉ số TEMA 300 và 500 giai đoạn làm nền tảng cho việc tạo tín hiệu.
Logic cốt lõi của chiến lược dựa trên các yếu tố chính sau:
Chiến lược này là một hệ thống theo dõi xu hướng toàn diện nắm bắt xu hướng thông qua các giao dịch chéo TEMA trong khi quản lý rủi ro bằng cách dừng lỗ năng động. Logic chiến lược rõ ràng, thực hiện đơn giản và nó thể hiện tính thực tế tốt. Tuy nhiên, khi giao dịch trực tiếp, phải chú ý đến việc xác định môi trường thị trường và kiểm soát rủi ro.
/*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)