
Chiến lược chéo đường trung bình chỉ số 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 giữa hai đường trung bình di chuyển chỉ số với các tham số khác nhau làm tín hiệu mua và bán.
Lý luận cốt lõi của chiến lược này dựa trên lý thuyết đường trung bình. Đường trung bình di chuyển của chỉ số có thể làm mỏng hiệu quả sự biến động của giá, xác định hướng xu hướng của giá. Đường trung bình nhanh có thể phản ứng nhanh với sự thay đổi giá; Đường trung bình chậm cung cấp hướng dẫn 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 di chuyển chỉ số: fib_level và fib_price. fib_level được thiết lập bởi người dùng, fib_price được tính dựa trên giá cao nhất và giá thấp nhất trong 100 bar gần đây.
Có thể giảm tín hiệu sai bằng cách tối ưu hóa tham số đường trung bình, sử dụng hệ thống ba đường trung bình, hoặc kết hợp với các chỉ số khác để đánh giá. Trong khi đó, điểm dừng giảm nhẹ thích hợp để ngăn chặn quá thường xuyên.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tối ưu hóa thiết lập tham số chu kỳ trung bình. Kiểm tra các tổ hợp tham số của các chu kỳ có độ dài khác nhau để tìm tham số tốt nhất.
Tăng bộ lọc cho các chỉ số như Volume. Khi Volume tăng, nó tạo ra tín hiệu mua, và khi Volume giảm, nó tạo ra tín hiệu bán, để tránh các tín hiệu sai khi giá dao động mạnh.
Sử dụng các thuật toán học máy để tự động tối ưu hóa tham số. Nhập dữ liệu lịch sử vào mô hình và đào tạo để có được các tham số tốt hơn.
Thêm một cơ chế dừng di động vào vị trí dừng lỗ. Để đường dừng lỗ di chuyển lên khi lợi nhuận tăng lên, để ngăn chặn dừng lỗ quá sớm.
Chiến lược giao dịch chéo chỉ số là một chiến lược giao dịch định lượng đơn giản và thực tế hơn. Nó sử dụng lợi thế của đường ngang để xác định xu hướng giá và thiết lập dừng lỗ để kiểm soát rủi ro. Chiến lược này dễ hiểu, cài đặt tham số linh hoạt, áp dụng cho các loại giao dịch định lượng 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