Chiến lược đường dài Golden Cross Long là một chiến lược theo dõi xu hướng chỉ mở các vị trí dài. Chiến lược sử dụng ba đường trung bình động, EMA ngắn hạn, EMA trung hạn và EMA dài hạn. Quy tắc nhập khẩu cụ thể là: mở dài khi giá vượt trên EMA dài hạn và EMA ngắn hạn vượt qua EMA trung hạn để tạo thành đường chéo vàng.
Tính toán EMA ngắn hạn, EMA trung hạn và EMA dài hạn bằng cách sử dụng ba giai đoạn EMA có thể cấu hình.
Nếu giá trên đường EMA dài hạn, nó chứng minh rằng nó hiện đang trong một xu hướng tăng.
Nếu đường EMA ngắn hạn vượt qua đường EMA trung hạn từ dưới để tạo thành một thập giá vàng, điều này chứng minh thêm rằng xu hướng tăng đang được tăng cường.
Khi cả hai điều kiện trên được đáp ứng cùng một lúc, mở dài.
Ưu điểm lớn nhất của chiến lược này là nó có thể xác định hiệu quả xu hướng bằng cách sử dụng đánh giá kết hợp EMA nhiều giai đoạn để tránh bị đánh lừa bởi tiếng ồn thị trường ngắn hạn.
Rủi ro chính của chiến lược này là vị trí dài. Khi thị trường đảo ngược, nó không thể đóng các vị trí kịp thời, dẫn đến nguy cơ tổn thất mở rộng. Ngoài ra, việc thiết lập thời gian EMA không đúng cũng có thể dẫn đến giao dịch thường xuyên và tăng chi phí giao dịch.
Tăng quản lý kích thước vị trí để giảm vị trí khi rút vốn đạt một tỷ lệ phần trăm nhất định.
Tăng cài đặt dừng lỗ khi phá vỡ mức cao mới.
Tối ưu hóa các thông số thời gian EMA để giảm tần suất giao dịch.
Chiến lược này nói chung là một chiến lược nắm giữ lâu dài ổn định chất lượng cao. Nó có khả năng xác định mạnh mẽ xu hướng với kiểm soát rủi ro thích hợp. Với tối ưu hóa hơn nữa, nó dự kiến sẽ có được lợi nhuận ổn định tốt hơn.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Strategia EMA Long con Opzioni di Uscita Avanzate e Periodi EMA Personalizzabili", overlay=true) // Parametri di input generali useVolatilityFilter = input.bool(true, title="Usa Filtro di Volatilità") atrPeriods = input.int(14, title="Periodi ATR", minval=1) atrMultiplier = input.float(1.5, title="Moltiplicatore ATR", step=0.1) useTrailingStop = input.bool(true, title="Usa Trailing Stop") trailingStopPercent = input.float(15.0, title="Percentuale Trailing Stop", minval=0.1, step=0.1) / 100.0 useEMAExit = input.bool(true, title="Usa Uscita EMA Corta incrocia EMA Media al Ribasso") // Parametri di input per periodi EMA personalizzabili emaLongTermPeriod = input.int(200, title="Periodo EMA Lungo Termine", minval=1) emaShortTermPeriod = input.int(5, title="Periodo EMA Breve Termine", minval=1) emaMidTermPeriod = input.int(10, title="Periodo EMA Medio Termine", minval=1) // Calcolo delle EMA con periodi personalizzabili longTermEMA = ta.ema(close, emaLongTermPeriod) shortTermEMA = ta.ema(close, emaShortTermPeriod) midTermEMA = ta.ema(close, emaMidTermPeriod) // Calcolo ATR e soglia di volatilità atr = ta.atr(atrPeriods) atrThreshold = ta.sma(atr, atrPeriods) * atrMultiplier // Condizione di entrata enterLongCondition = close > longTermEMA and shortTermEMA > midTermEMA enterLong = useVolatilityFilter ? (enterLongCondition and atr > atrThreshold) : enterLongCondition if (enterLong) strategy.entry("Enter Long", strategy.long) // Tracking del prezzo di entrata e del massimo prezzo raggiunto per il trailing stop var float entryPrice = na var float maxPriceSinceEntry = na if (strategy.position_size > 0) maxPriceSinceEntry := math.max(na(maxPriceSinceEntry) ? high : maxPriceSinceEntry, high) entryPrice := na(entryPrice) ? strategy.position_avg_price : entryPrice else maxPriceSinceEntry := na entryPrice := na // Calcolo del valore del trailing stop trailStopPrice = maxPriceSinceEntry * (1 - trailingStopPercent) // Implementazione delle condizioni di uscita exitCrossUnder = close < longTermEMA emaCross = ta.crossunder(shortTermEMA, midTermEMA) if (useEMAExit and emaCross) strategy.close("Enter Long", comment="EMA Cross Exit") if (useTrailingStop) strategy.exit("Trailing Stop", from_entry="Enter Long", stop=trailStopPrice) // Visualizzazioni plot(longTermEMA, color=color.yellow, title="EMA Lungo Termine") plot(shortTermEMA, color=color.blue, title="EMA Breve Termine") plot(midTermEMA, color=color.green, title="EMA Medio Termine") plot(useVolatilityFilter ? atrThreshold : na, color=color.purple, title="ATR Threshold") plot(strategy.position_size > 0 ? trailStopPrice : na, color=color.orange, title="Trailing Stop Value", style=plot.style_linebr)