Chiến lược chéo trung bình chuyển động theo cấp số nhân là một chiến lược giao dịch định lượng đơn giản theo dõi xu hướng giá. Nó sử dụng chéo của hai trung bình chuyển động theo cấp số nhân với các thiết lập tham số khác nhau làm tín hiệu mua và bán. Khi EMA ngắn hạn vượt trên EMA dài hạn, một tín hiệu mua được tạo ra. Khi EMA ngắn hạn vượt dưới EMA dài hạn, một tín hiệu bán được tạo ra.
Định hướng của EMA là để xác định xu hướng của giá. Định hướng của EMA là để xác định xu hướng của giá. Định hướng của EMA là để xác định xu hướng của giá. Định hướng của EMA là để xác định xu hướng của giá.
Cụ thể, chiến lược này đầu tiên xác định hai đường trung bình chuyển động theo cấp số nhân: fib_level và fib_price. fib_level được đặt bởi đầu vào của người dùng, và fib_price được tính dựa trên giá cao nhất và thấp nhất của 100 thanh gần đây nhất. Khi giá đóng vượt trên hoặc dưới fib_price, tín hiệu mua và bán được tạo ra, tương ứng. Đồng thời, stop loss được đặt ở giá cao nhất và thấp nhất của 10 thanh gần đây nhất.
Rủi ro có thể được giảm bằng cách tối ưu hóa các thông số EMA, sử dụng hệ thống EMA ba lần hoặc kết hợp với các chỉ số khác để xác nhận tín hiệu.
Chiến lược này có thể được tối ưu hóa từ các khía cạnh sau:
Tối ưu hóa các thông số thời gian EMA. Kiểm tra các kết hợp thời gian khác nhau để tìm các thông số tốt nhất.
Thêm Volume và các bộ lọc khác. Tạo tín hiệu mua khi Volume tăng và bán tín hiệu khi Volume giảm để tránh các tín hiệu sai trong thời gian tăng giá mạnh.
Sử dụng thuật toán học máy để tự động tối ưu hóa các thông số dựa trên dữ liệu lịch sử.
Thêm cơ chế dừng lại để dừng đặt lỗ. Di chuyển lên đường dừng lỗ với lợi nhuận tăng để ngăn chặn dừng sớm.
Chiến lược chéo trung bình động theo cấp số nhân là một chiến lược giao dịch định lượng dễ sử dụng nói chung. Nó tận dụng điểm mạnh của EMA để xác định xu hướng giá và thiết lập điểm dừng để kiểm soát rủi ro. Chiến lược dễ hiểu, linh hoạt về các tham số và áp dụng cho giao dịch định lượng trên các sản phẩm khác nhau.
/*backtest start: 2023-12-08 00:00:00 end: 2024-01-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fibonacci Strategy", overlay=true) // Define Fibonacci 0.5 level fib_level = input(0.5, title="Fibonacci Level") // Calculate Fibonacci 0.5 level price fib_price = ta.lowest(low, 100) + (ta.highest(high, 100) - ta.lowest(low, 100)) * fib_level // Define entry and exit conditions long_condition = ta.crossover(close, fib_price) short_condition = ta.crossunder(close, fib_price) // Set exit points (using previous high or low) long_exit = ta.highest(high, 10) short_exit = ta.lowest(low, 10) // Plot Fibonacci 0.5 level plot(fib_price, "Fib 0.5", color=color.blue, linewidth=1, style=plot.style_circles) // Initialize variables var inLong = false var inShort = false // Set trading signals if (long_condition) if not inLong strategy.entry("Buy", strategy.long) inLong := true strategy.exit("Exit", "Buy", limit=long_exit) if (short_condition) if not inShort strategy.entry("Sell", strategy.short) inShort := true strategy.exit("Exit", "Sell", limit=short_exit) if (ta.crossover(close, long_exit) or ta.crossunder(close, short_exit)) inLong := false inShort := false