Chiến lược này là một chiến lược chéo trung bình động đơn giản. Nó đi dài khi EMA nhanh vượt qua trên EMA chậm và đi ngắn khi EMA nhanh vượt qua dưới EMA chậm. Chiến lược này kết hợp dừng lỗ, lấy lợi nhuận và phá vỡ để kiểm soát rủi ro một cách hiệu quả.
Chiến lược này dựa trên đường trung bình di chuyển nhanh và chậm. Đường nhanh là đường EMA 9 ngày và đường chậm là đường EMA 21 ngày. Nó dài khi đường nhanh vượt qua đường chậm từ dưới. Nó ngắn khi đường nhanh vượt qua đường chậm từ trên.
Stop loss được thiết lập dựa trên tỷ lệ phần trăm đóng. Lợi nhuận được thiết lập dựa trên tỷ lệ phần trăm đóng. Stop loss break-even di chuyển đến giá nhập cảnh khi giá đạt mức break-even.
Những lợi thế của chiến lược này là:
Có một số rủi ro:
Giải pháp:
Chiến lược có thể được tối ưu hóa bằng cách:
Nhìn chung, chiến lược chuyển động trung bình chéo vàng này có logic rõ ràng và dễ thực hiện. Với dừng lỗ, lấy lợi nhuận và phá vỡ, nó kiểm soát rủi ro. Với điều chỉnh tham số và tối ưu hóa phù hợp cho các thị trường khác nhau, nó có thể đạt được hiệu suất tốt. Nhưng cần lưu ý đến rủi ro của whipsaws và khó khăn của tối ưu hóa tham số.
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("XAUUSD Strategy with SL, TP, and BE", shorttitle="EA", overlay=true) // Define strategy parameters fastLength = input(9, title="Fast EMA Length") slowLength = input(21, title="Slow EMA Length") stopLossPercent = input(1, title="Stop Loss (%)", minval=0, maxval=5) / 100 takeProfitPercent = input(2, title="Take Profit (%)", minval=0, maxval=5) / 100 breakEvenPercent = input(1, title="Break Even (%)", minval=0, maxval=5) / 100 // Calculate EMAs fastEMA = ema(close, fastLength) slowEMA = ema(close, slowLength) // Plot EMAs on the chart plot(fastEMA, color=color.blue, title="Fast EMA") plot(slowEMA, color=color.red, title="Slow EMA") // Strategy logic enterLong = crossover(fastEMA, slowEMA) exitLong = crossunder(fastEMA, slowEMA) enterShort = crossunder(fastEMA, slowEMA) exitShort = crossover(fastEMA, slowEMA) // Calculate stop loss, take profit, and break-even levels longStopLoss = close * (1 - stopLossPercent) longTakeProfit = close * (1 + takeProfitPercent) shortStopLoss = close * (1 + stopLossPercent) shortTakeProfit = close * (1 - takeProfitPercent) longBreakEven = close * (1 + breakEvenPercent) shortBreakEven = close * (1 - breakEvenPercent) // Execute strategy with stop loss, take profit, and break-even strategy.entry("Long", strategy.long, when = enterLong) strategy.exit("Take Profit/Stop Loss Long", from_entry="Long", profit = longTakeProfit, loss = longStopLoss) strategy.entry("Short", strategy.short, when = enterShort) strategy.exit("Take Profit/Stop Loss Short", from_entry="Short", profit = shortTakeProfit, loss = shortStopLoss) // Move stop loss to break even when price reaches break-even level strategy.exit("Break Even Long", from_entry="Long", loss = longBreakEven) strategy.exit("Break Even Short", from_entry="Short", loss = shortBreakEven)