Chiến lược chéo trung bình động kép

Tác giả:ChaoZhang, Ngày: 2024-01-19 14:13:07
Tags:

img

Tổng quan

Chiến lược chéo trung bình di chuyển kép là một chiến lược giao dịch định lượng phổ biến. Nó sử dụng chéo trung bình di chuyển nhanh và chậm như tín hiệu mua và bán. Khi trung bình di chuyển nhanh vượt qua trên trung bình di chuyển chậm từ dưới, một tín hiệu mua được tạo ra. Khi trung bình di chuyển nhanh vượt qua dưới trung bình di chuyển chậm từ trên, một tín hiệu bán được tạo ra.

Nguyên tắc chiến lược

Lý thuyết cốt lõi của chiến lược này là tính toán hai nhóm đường trung bình động, một là đường trung bình động nhanh với tham số thời gian 10 ngày, và một là đường trung bình động chậm với tham số thời gian 30 ngày.

Khi giá trung bình di chuyển nhanh vượt qua trên xu hướng chậm, điều đó có nghĩa là giá ngắn hạn bắt đầu phá vỡ xu hướng dài hạn, đó là một tín hiệu chéo vàng để đi dài. Khi giá trung bình di chuyển nhanh vượt qua dưới xu hướng chậm, điều đó có nghĩa là giá ngắn hạn bắt đầu giảm xuống dưới xu hướng dài hạn, đó là một tín hiệu chéo chết để đi ngắn.

Chiến lược này cũng thiết lập các cơ chế dừng lỗ và lấy lợi nhuận. Việc dừng lỗ được kích hoạt khi giá giảm xuống dưới một tỷ lệ phần trăm nhất định của giá nhập cảnh. Lợi nhuận được kích hoạt khi giá tăng lên trên một tỷ lệ phần trăm nhất định của giá nhập cảnh.

Phân tích lợi thế

Chiến lược chéo trung bình động kép có những lợi thế sau:

  1. Logic là đơn giản và dễ hiểu và thực hiện;

  2. Các thông số của các đường trung bình chuyển động nhanh và chậm có thể được tùy chỉnh để phù hợp với các thị trường khác nhau;

  3. Nó chứa cả thiết lập dừng lỗ và lấy lợi nhuận để hạn chế lỗ;

  4. Nó có thể hoạt động tốt ở cả thị trường xu hướng và thị trường giới hạn.

Phân tích rủi ro

Chiến lược chéo hai trung bình động cũng có những rủi ro sau:

  1. Dấu hiệu từ đường chéo có thể là một sự phá vỡ sai, dẫn đến tổn thất;

  2. Các thiết lập không chính xác của stop loss và take profit có thể dẫn đến tổn thất lớn hoặc giảm lợi nhuận dự kiến;

  3. Nó chỉ dựa trên các chỉ số kỹ thuật mà không xem xét các yếu tố cơ bản.

Các giải pháp tương ứng:

  1. Thêm các chỉ số kỹ thuật khác để lọc các tín hiệu sai;

  2. Kiểm tra và tối ưu hóa các thông số dừng lỗ và lấy lợi nhuận;

  3. Bao gồm phân tích cơ bản.

Hướng dẫn tối ưu hóa

Chiến lược có thể được tối ưu hóa từ các khía cạnh sau:

  1. Kiểm tra các kết hợp tham số khác nhau của các đường trung bình động để tìm ra phương pháp tối ưu nhất;

  2. Thêm các chỉ số xác nhận giá khối lượng để tránh sự phá vỡ sai;

  3. Điều chỉnh năng động mức dừng lỗ và tỷ lệ phần trăm lợi nhuận để có lợi nhuận tốt hơn;

  4. Bao gồm các chỉ số khác như khối lượng giao dịch, tỷ lệ doanh thu v.v.

Kết luận

Tóm lại, chiến lược chéo trung bình động kép là một chiến lược giao dịch định lượng đơn giản và thực tế. Nó dễ hiểu và thực hiện và có thể tạo ra lợi nhuận ổn định trong hầu hết các môi trường thị trường. Bằng cách tối ưu hóa các tham số, thêm các bộ lọc tín hiệu và cơ chế lấy lợi nhuận động, chiến lược có thể trở nên đáng tin cậy và có lợi hơn. Là một trong những chiến lược giao dịch định lượng cơ bản, nó đáng để học và áp dụng.


/*backtest
start: 2023-01-12 00:00:00
end: 2024-01-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// Define input parameters
fast_length = input(10, title="Fast MA Length")
slow_length = input(30, title="Slow MA Length")
stop_loss_percent = input(1.0, title="Stop Loss (%)", minval=0.1, maxval=10, step=0.1)
take_profit_percent = input(2.0, title="Take Profit (%)", minval=0.1, maxval=10, step=0.1)

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

// Entry conditions
long_condition = crossover(fast_ma, slow_ma)
short_condition = crossunder(fast_ma, slow_ma)

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

// Strategy orders
strategy.entry("Long", strategy.long, when=long_condition)
strategy.entry("Short", strategy.short, when=short_condition)

// Set stop loss and take profit levels
stop_loss_price = close * (1 - stop_loss_percent / 100)
take_profit_price = close * (1 + take_profit_percent / 100)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", stop=stop_loss_price, limit=take_profit_price)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", stop=take_profit_price, limit=stop_loss_price)


Thêm nữa