Chiến lược này kết hợp các chỉ số trung bình chuyển động theo tỷ lệ biểu số (EMAs) 8 và 21 giai đoạn với chỉ số Parabolic SAR để nắm bắt xu hướng và quản lý rủi ro.
Chiến lược này sử dụng hai EMA với các khoảng thời gian khác nhau (8 giai đoạn và 21 giai đoạn) và chỉ số Parabolic SAR để xác định điều kiện nhập và xuất. Khi EMA ngắn hạn vượt qua EMA dài hạn và giá đóng trên SAR, chiến lược mở một vị trí dài. Khi EMA ngắn hạn vượt qua dưới EMA dài hạn và giá đóng dưới SAR, chiến lược mở một vị trí ngắn. Các vị trí dài được đóng khi giá đóng giảm xuống dưới SAR, trong khi các vị trí ngắn được đóng khi giá đóng tăng trên SAR. Chiến lược cũng thiết lập một điểm dừng lỗ cố định để kiểm soát rủi ro của mỗi giao dịch. Ngoài ra, chiến lược yêu cầu tất cả các vị trí phải được đóng vào lúc 15:15 mỗi ngày giao dịch.
Chiến lược kết hợp EMA và Parabolic SAR cố gắng nắm bắt xu hướng và kiểm soát rủi ro bằng cách kết hợp hai chỉ số kỹ thuật được sử dụng phổ biến. Chiến lược đơn giản và dễ hiểu, làm cho nó phù hợp cho người mới bắt đầu học và sử dụng. Tuy nhiên, chiến lược cũng có một số hạn chế, chẳng hạn như không đủ khả năng thích nghi với biến động thị trường và thiếu xem xét tinh thần thị trường và các yếu tố cơ bản. Do đó, trong các ứng dụng thực tế, chiến lược cần được tối ưu hóa và cải thiện dựa trên các thị trường và công cụ giao dịch cụ thể để tăng cường sự ổn định và lợi nhuận của nó.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA and Parabolic SAR Strategy", overlay=true) // Input parameters for EMAs and Parabolic SAR emaShortPeriod = input.int(8, title="Short EMA Period") emaLongPeriod = input.int(21, title="Long EMA Period") sarStart = input.float(0.02, title="Parabolic SAR Start") sarIncrement = input.float(0.02, title="Parabolic SAR Increment") sarMaximum = input.float(0.2, title="Parabolic SAR Maximum") fixedSL = input.int(83, title="Fixed Stop Loss (pts)") // Calculate EMAs and Parabolic SAR emaShort = ta.ema(close, emaShortPeriod) emaLong = ta.ema(close, emaLongPeriod) sar = ta.sar(sarStart, sarIncrement, sarMaximum) // Entry conditions longCondition = ta.crossover(emaShort, emaLong) and close > sar shortCondition = ta.crossunder(emaShort, emaLong) and close < sar // Exit conditions longExitCondition = close < sar shortExitCondition = close > sar // Strategy entry and exit if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (longExitCondition) strategy.close("Long") if (shortExitCondition) strategy.close("Short") // Fixed Stop Loss strategy.exit("Long Exit", "Long", stop=close - fixedSL * syminfo.mintick) strategy.exit("Short Exit", "Short", stop=close + fixedSL * syminfo.mintick) // Exit all positions at 15:15 exitHour = 15 exitMinute = 15 exitTime = timestamp(year(timenow), month(timenow), dayofmonth(timenow), exitHour, exitMinute) if (timenow >= exitTime) strategy.close_all() // Plot EMAs and Parabolic SAR plot(emaShort, color=color.blue, title="8 EMA") plot(emaLong, color=color.red, title="21 EMA") plot(sar, style=plot.style_cross, color=color.green, title="Parabolic SAR")