
Chiến lược này đánh giá vào và ra bằng cách tính toán đường nhanh và đường chậm của MACD. Đồng thời kết hợp với chỉ số EMA để đánh giá xu hướng. Khi đường nhanh từ dưới phá vỡ đường chậm và MACD thấp hơn 0, làm nhiều; Khi đường nhanh từ trên phá vỡ đường chậm và MACD cao hơn 0, làm trống.
Khi đường MACD nhanh phá vỡ đường chậm từ phía dưới và MACD thấp hơn 0, giá cổ phiếu có thể được mua. Khi đường MACD nhanh phá vỡ đường chậm từ phía trên và MACD cao hơn 0, giá cổ phiếu có thể được bán.
Chỉ số EMA đánh giá hướng xu hướng tổng thể. Khi EMA cao hơn, nó là xu hướng tăng, và khi giá trị thấp hơn, nó là xu hướng giảm. Chiến lược chỉ làm nhiều khi EMA biểu thị xu hướng tăng, và khi EMA biểu thị xu hướng giảm, hãy làm trống, tránh giao dịch ngược.
Phương pháp dừng là giá trị EMA khi tín hiệu được tạo ra. EMA có thể đánh giá xu hướng tốt, thiết lập giá trị EMA có thể làm giảm khả năng dừng bị phá vỡ bởi điểm thấp hoặc cao trước đó.
Chiến lược này kết hợp các chỉ số MACD và EMA, có thể đánh giá tốt hơn về thời gian và hướng đi của xu hướng. Phương pháp dừng lỗ hợp lý, tránh theo đuổi đà giảm. Tỷ lệ rủi ro lợi nhuận là 2, thuộc về các tham số được thiết lập bảo thủ hơn. Các tham số của chỉ số MACD có thể điều chỉnh và có thể thích ứng linh hoạt với sự thay đổi của thị trường.
Chỉ số MACD có sự trễ trễ, biến đổi chỉ số thường chậm lại so với biến đổi giá. Chiến lược không thể xác định điểm vào cụ thể, có một số mù quáng.
Chiến lược này kết hợp các chỉ số MACD và EMA để xác định thời gian và hướng đi của xu hướng. Sử dụng phương thức dừng lỗ đơn giản và hợp lý. Có thể tối ưu hóa hơn nữa đối với các tham số dừng lỗ, độ trễ của chỉ số MACD, để có được hiệu quả chiến lược tốt hơn.
/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MACD & EMA 200 Strategy", overlay=true)
// MACD Settings
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
src = close
[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength)
// 200 EMA
ema200 = ta.ema(src, 200)
plot(ema200, title="200 EMA", color=color.red)
// Long Condition
longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200
if (longCondition and strategy.position_size <= 0)
strategy.entry("Long", strategy.long)
longStopLoss = ema200
longTakeProfit = close + 2 * (close - ema200)
strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)
// Short Condition
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200
if (shortCondition and strategy.position_size <= 0)
strategy.entry("Short", strategy.short)
shortStopLoss = ema200
shortTakeProfit = close - 2 * (ema200 - close)
strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)