Chiến lược chéo trung bình di chuyển kép

Tác giả:ChaoZhang, Ngày: 2024-01-31 11:29:45
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch dựa trên đường chéo hai đường trung bình động. Nó tạo ra tín hiệu mua và bán khi hai đường trung bình động có chiều dài khác nhau giao nhau. Cụ thể, nó đi dài khi MA nhanh hơn vượt qua trên MA chậm hơn, và đi ngắn khi MA nhanh hơn vượt qua dưới MA chậm hơn.

Chiến lược logic

Lý thuyết cốt lõi của chiến lược này nằm trong các nguyên tắc chéo giữa hai đường trung bình động. Một đường trung bình động là giá trung bình toán học trong một khoảng thời gian nhất định. Nó giúp lọc tiếng ồn thị trường và tiết lộ xu hướng giá rõ ràng hơn.

Trong chiến lược này, MA ngắn hạn nắm bắt xu hướng ngắn hạn trong khi MA dài hạn nắm bắt xu hướng dài hạn.

Cụ thể, chiến lược tính toán các MA bằng cách sử dụng ta.sma trong khoảng thời gian dài và ngắn được xác định bởi người dùng. Sau đó nó sử dụng ta.crossover và ta.crossunder để phát hiện các giao thoa vàng và giao thoa chết giữa hai MA. Khi MA ngắn vượt trên MA dài, đi dài. Khi MA ngắn vượt dưới, đi ngắn.

Ưu điểm

Những lợi thế chính của chiến lược này bao gồm:

  1. logic đơn giản, dễ làm theo.
  2. Các thông số tùy chỉnh có thể thích nghi với các thị trường khác nhau.
  3. MA crossover lọc ra tiếng ồn, nắm bắt sự đảo ngược xu hướng.
  4. Độ nhạy cao trong việc nắm bắt các điểm biến động giá.

Rủi ro

Ngoài ra còn có một số rủi ro:

  1. Khoảng cách quá nhỏ giữa các MAs gây ra tín hiệu sai.
  2. Thời kỳ MA sai lầm bỏ lỡ các xu hướng chính.
  3. Sự đảo ngược không phải lúc nào cũng ngụ ý sự thay đổi xu hướng.
  4. Các thông số cần điều chỉnh để tránh quá phù hợp.

Để giảm thiểu rủi ro, các tham số có thể được điều chỉnh, dừng lỗ và lấy lợi nhuận có thể được kết hợp hoặc các chỉ số kỹ thuật khác có thể được thêm vào.

Tối ưu hóa

Có chỗ cho việc tối ưu hóa thêm:

  1. Tối ưu hóa thời gian MA thích nghi.
  2. Thêm bộ lọc âm lượng để tránh sự phá vỡ sai.
  3. Bao gồm các chỉ số khác như MACD, KDJ.
  4. Thêm stop loss/take profit để giới hạn lỗ.
  5. Cải thiện cấu trúc mã để có khả năng mở rộng tốt hơn.

Kết luận

Tóm lại, đây là một chiến lược khởi đầu lý tưởng cho giao dịch thuật toán, nhờ sự đơn giản của nó trong logic và các tham số trong khi vẫn có thể nắm bắt hiệu quả sự đảo ngược thị trường.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true)

// User-defined input for moving averages
long_period = input(20, title="Long Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])

// Calculating moving averages
long_ma = ta.sma(close, long_period)
short_ma = ta.sma(close, short_period)

// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(short_ma, title="Short Moving Average", color=color.green)

// Strategy logic for crossing of moving averages
longCondition = ta.crossover(short_ma, long_ma)
shortCondition = ta.crossunder(short_ma, long_ma)

// Entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)

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

// Optional: Add stop loss and take profit
stop_loss_perc = input(1, title="Stop Loss (%)") / 100
take_profit_perc = input(2, title="Take Profit (%)") / 100

strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc))
strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))


Thêm nữa