
Chiến lược giao chéo hai đường thẳng - EMA9/20 là một chiến lược giao dịch định lượng dựa trên sự giao chéo của hai chỉ số trung bình di chuyển ((EMA)). Chiến lược này sử dụng EMA ngày 9 và EMA ngày 20 làm tín hiệu giao dịch, tạo ra tín hiệu mua hoặc bán khi hai đường thẳng giao. Đồng thời, chiến lược này cũng sử dụng giá và giao chéo của EMA ngày 9 làm tín hiệu phụ trợ, và dừng di chuyển để quản lý rủi ro giao dịch.
Nguyên tắc cốt lõi của chiến lược này là sử dụng sự giao thoa của các đường trung bình di chuyển của chỉ số trong hai chu kỳ khác nhau để nắm bắt xu hướng thị trường. Khi đường trung bình ngắn hạn (EMA ngày 9) vượt qua đường trung bình dài hạn (EMA ngày 20) cho thấy thị trường có thể đi vào xu hướng tăng, chiến lược sẽ tạo ra tín hiệu mua; ngược lại, khi đường trung bình ngắn hạn vượt qua đường trung bình dài hạn, cho thấy thị trường có thể đi vào xu hướng giảm, chiến lược sẽ tạo ra tín hiệu bán.
Ngoài các tín hiệu chéo đường trung bình, chiến lược này cũng giới thiệu các dấu hiệu chéo của giá với đường trung bình ngắn hạn (EMA 9 ngày) làm tín hiệu phụ. Khi giá vượt qua EMA 9 ngày, tín hiệu mua cũng sẽ được tạo ra; Khi giá vượt qua EMA 9 ngày, tín hiệu bán cũng sẽ được tạo ra.
Để kiểm soát rủi ro, chiến lược này sử dụng phương pháp Trailing Stop. Một khi giao dịch đi vào trạng thái lợi nhuận, Trailing Stop sẽ liên tục điều chỉnh vị trí dừng lỗ theo biến động của giá cho đến khi giá đảo ngược phá vỡ vị trí dừng lỗ, do đó khóa lợi nhuận và đồng thời hạn chế tổn thất tiềm năng.
Đơn giản và dễ hiểu: Chiến lược này dựa trên nguyên tắc giao tuyến đồng đều cổ điển, logic rõ ràng, dễ hiểu và thực hiện.
Theo dõi xu hướng: Chiến lược này có thể nắm bắt được xu hướng chính của thị trường một cách hiệu quả bằng cách giao nhau giữa hai chu kỳ khác nhau.
Giảm lỗ kịp thời: giới thiệu cơ chế dừng lỗ di động, có thể tháo lỗ kịp thời khi xu hướng đảo ngược, kiểm soát rủi ro đi xuống.
Tính linh hoạt của tham số: Các tham số của chiến lược (như chu kỳ đường trung bình, số điểm dừng, v.v.) có thể được tối ưu hóa và điều chỉnh theo thị trường và giống khác nhau để phù hợp với môi trường thị trường khác nhau.
Giao dịch thường xuyên: Vì chiến lược này sử dụng cả hai tín hiệu đồng thời là đường ngang và giá ngang, nó có thể dẫn đến tần suất giao dịch cao hơn, do đó làm tăng chi phí giao dịch.
Thị trường chấn động: Chiến lược này có thể tạo ra nhiều tín hiệu sai khi thị trường chấn động hoặc thu hẹp, dẫn đến mức lợi nhuận thấp hơn.
Tính nhạy cảm với tham số: Hiệu suất của chiến lược này có thể nhạy cảm với sự lựa chọn tham số, và các tham số khác nhau có thể mang lại kết quả khác nhau.
Bộ lọc tín hiệu: Dựa trên tín hiệu giao thoa và giao thoa giá, giới thiệu các chỉ số kỹ thuật khác (như RSI, MACD, v.v.) làm điều kiện lọc để giảm tín hiệu sai.
Các tham số động: tùy thuộc vào các yếu tố như dao động của thị trường, cường độ của xu hướng, tham số chiến lược được điều chỉnh động (như chu kỳ đường trung bình, số điểm dừng lỗ, v.v.) để thích ứng với các tình trạng thị trường khác nhau.
Quản lý vị trí: tùy thuộc vào xu hướng thị trường và cường độ tín hiệu, kích thước vị trí được điều chỉnh động, tăng vị trí khi xu hướng mạnh, giảm vị trí khi xu hướng không rõ ràng hoặc tín hiệu yếu.
Chuyển đổi đa giống: mở rộng chiến lược này sang nhiều giống và thị trường, giảm rủi ro tổng thể và tăng ổn định lợi nhuận thông qua phân tán đầu tư và phân tích liên quan.
Chiến lược giao dịch chéo hai đường - EMA9/20 là một chiến lược giao dịch định lượng đơn giản và thực tế, nắm bắt xu hướng thị trường bằng cách giao chéo hai đường trung bình khác nhau và giá cả, đồng thời sử dụng lệnh dừng di động để kiểm soát rủi ro. Lập luận của chiến lược là rõ ràng, dễ hiểu và thực hiệ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ư hiệu suất kém trong thị trường bất ổn, lựa chọn tham số nhạy cảm, v.v.
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title = "EMAs 9 / 20",
shorttitle = '9/20 EMAs',
initial_capital = 1000,
overlay = true,
default_qty_type = strategy.fixed,
commission_type = strategy.commission.cash_per_contract,
commission_value = 0.35,
default_qty_value = 1)
int trailOffset = 10
int trailPoints = 15
series float oEma9 = ta.ema(ohlc4, 9)
series float oEma20 = ta.ema(ohlc4, 20)
series bool closeCrossoverEma9 = ta.crossover(close, oEma9)
series bool closeCrossunderEma9 = ta.crossover(close, oEma9)
series bool nineCrossover20 = ta.crossover(oEma9, oEma20)
series bool nineCrossunder20 = ta.crossunder(oEma9, oEma20)
//Entry Exits
if nineCrossover20
strategy.entry("Long 9Cross20", strategy.long, 2)
else if closeCrossoverEma9
strategy.entry("Long 9CrossClose", strategy.long, 2)
strategy.exit("Long 9CrossClose Exit", from_entry = "Long 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossunder20
strategy.close("Long 9Cross20")
if nineCrossunder20
strategy.entry("Short 9Cross20", strategy.short, 2)
else if closeCrossunderEma9
strategy.entry("Short 9CrossClose", strategy.short, 2)
strategy.exit("Short 9CrossClose Exit", from_entry = "Short 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset)
else if nineCrossover20
strategy.close("Short 9Cross20")