chiến lược theo xu hướng dựa trên đường trung bình động

Tác giả:ChaoZhang, Ngày: 2023-10-31 14:00:47
Tags:

img

Tổng quan

Chiến lược chuyển động trung bình đôi là một chiến lược theo xu hướng dựa trên đường trung bình chuyển động. Nó tạo ra tín hiệu giao dịch bằng cách tính toán đường trung bình chuyển động của các giai đoạn khác nhau và xác định đường chéo. Chiến lược này sử dụng đường trung bình chuyển động nhanh và đường trung bình chuyển động chậm để tạo ra tín hiệu. Khi đường MA nhanh vượt qua đường MA chậm, nó sẽ có lập trường tăng và mua. Khi đường MA nhanh vượt qua đường MA chậm, nó sẽ có lập trường giảm và bán.

Chiến lược logic

Chiến lược này chủ yếu dựa trên MA crossover để tạo ra tín hiệu giao dịch. Cụ thể, nó bao gồm các bước sau:

  1. Tính toán MA nhanh và MA chậm. Thời gian MA nhanh là 10 và thời gian MA chậm là 50.

  2. Xác định mối quan hệ MA. Một tín hiệu mua được tạo ra khi MA nhanh vượt qua trên MA chậm. Một tín hiệu bán được tạo ra khi MA nhanh vượt qua dưới MA chậm.

  3. Phát hành tín hiệu mua và bán. Đi dài khi tín hiệu mua xảy ra. Đi ngắn khi tín hiệu bán xảy ra.

  4. Thiết lập dừng lỗ và lấy lợi nhuận Sau khi tham gia giao dịch, thiết lập dừng lỗ dựa trên tỷ lệ phần trăm đầu vào và lấy lợi nhuận để quản lý rủi ro.

Bằng cách so sánh các thay đổi xu hướng giá trên các khung thời gian khác nhau, chiến lược này xác định xem thị trường hiện đang trong xu hướng tăng hay giảm.

Ưu điểm

  • Hiệu quả nắm bắt các xu hướng trung và dài hạn bằng cách sử dụng bản chất theo xu hướng vốn có của MAs.

  • Các tín hiệu chéo đơn giản và rõ ràng dễ thực hiện.

  • Có thể tùy chỉnh thời gian nhanh và chậm để tối ưu hóa tham số.

  • Giới hạn lỗ trên các giao dịch cá nhân thông qua dừng lỗ.

Rủi ro

  • Có xu hướng thổi phồng và giao dịch quá mức trong thị trường giới hạn phạm vi.

  • Các MAs bị chậm trễ và có thể bỏ lỡ các cơ hội ngắn hạn.

  • Không tính đến các sự kiện đột ngột như tin tức giảm đáng kể.

  • Thiếu cơ chế quản lý rủi ro và có thể dẫn đến tổn thất vượt quá khả năng chấp nhận rủi ro.

Quản lý rủi ro:

  1. Tối ưu hóa thời gian MA để giảm tín hiệu sai trong quá trình hợp nhất.

  2. Thêm các chỉ số khác làm bộ lọc để giải quyết sự chậm trễ MA.

  3. Thêm thêm phân tích tin tức.

  4. Thực hiện dừng lỗ và định kích thước vị trí để hạn chế lỗ.

Những cải tiến

  • Kết hợp với các công cụ phân tích khác như kênh và mẫu để cải thiện chất lượng tín hiệu.

  • Tối ưu hóa các thông số MA nhanh và chậm để tìm kết hợp tốt nhất. 10-30 ngày cho MA nhanh và 20-120 ngày cho MA chậm thường hoạt động tốt.

  • Thêm các quy tắc định kích thước vị trí.

  • Kết hợp logic để xử lý các sự kiện đột ngột như dừng giao dịch sau khi tin tức giảm lớn.

  • Kiểm tra hậu quả và giao dịch giấy tờ để đánh giá hiệu suất và liên tục cải thiện hệ thống.

Tóm lại

Chiến lược chéo trung bình động kép xác định hướng xu hướng bằng cách so sánh chéo MA nhanh và chậm. Đây là một cách tiếp cận theo xu hướng đơn giản và thực tế. Mặc dù hiệu quả, nó có một số hạn chế có thể được giải quyết thông qua tối ưu hóa như điều chỉnh tham số, thêm bộ lọc và kết hợp các công cụ khác. Với kiểm soát rủi ro thích hợp, chiến lược này có thể cung cấp lợi nhuận tốt.


/*backtest
start: 2023-09-30 00:00:00
end: 2023-10-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Simple Moving Average Crossover", overlay=true)

// Input parameters
fast_length = input(10, title="Fast MA Length")
slow_length = input(50, title="Slow MA Length")
stop_loss_pct = input(1, title="Stop Loss Percentage", minval=0, maxval=5) / 100

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)

// Plot moving averages
plot(fast_ma, color=color.blue, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")

// Strategy logic
long_condition = crossover(fast_ma, slow_ma)
short_condition = crossunder(fast_ma, slow_ma)

// Execute trades
if (long_condition)
    strategy.entry("Long", strategy.long)

if (short_condition)
    strategy.entry("Short", strategy.short)

// Set stop loss
long_stop_price = close * (1 - stop_loss_pct)
short_stop_price = close * (1 + stop_loss_pct)

strategy.exit("Stop Loss/Profit", from_entry="Long", stop=long_stop_price)
strategy.exit("Stop Loss/Profit", from_entry="Short", stop=short_stop_price)


Thêm nữa