Chiến lược chéo trung bình động tối ưu

Tác giả:ChaoZhang, Ngày: 2024-02-04 10:31:45
Tags:

img

Tổng quan

Chiến lược này dựa trên các đường chéo trung bình động thường xuyên nhưng một số sửa đổi đã được thực hiện để tạo ra các tín hiệu giao dịch chính xác hơn. Nó kết hợp trung bình di chuyển nhanh và chậm để xác định hướng xu hướng và thuộc về các chiến lược theo xu hướng.

Chiến lược logic

Khi đường trung bình di chuyển nhanh vượt qua đường trung bình di chuyển chậm từ dưới lên, nó được coi là tín hiệu mua. Khi đường trung bình di chuyển nhanh vượt qua đường trung bình di chuyển chậm từ trên xuống, nó được coi là tín hiệu bán. Đó là, đường chéo vàng cho đường dài, đường chéo chết cho đường ngắn. Một khi vị trí dài / ngắn được thực hiện, lệnh dừng lỗ sẽ được đặt để tránh tổn thất lớn.

Chìa khóa nằm trong việc lựa chọn các đường trung bình di chuyển nhanh và chậm. Chiến lược này áp dụng các đường trung bình di chuyển biểu thức giai đoạn 50&100 như đường nhanh và chậm tương ứng. Hiệu ứng chiến lược có thể được tối ưu hóa bằng cách điều chỉnh các thông số MA.

Phân tích lợi thế

Chiến lược này xác định hướng xu hướng bằng cách kết hợp hai đường trung bình động, có thể lọc tiếng ồn thị trường hiệu quả. So với các chiến lược MA đơn, nó có thể cải thiện xác suất lợi nhuận. Ngoài ra, việc thiết lập stop loss cũng hạn chế lỗ của các giao dịch riêng lẻ.

Bằng cách tận dụng các quy tắc chéo để xác định các điểm biến đổi, chiến lược này có thể nắm bắt các cơ hội xu hướng một cách kịp thời.

Phân tích rủi ro

Có ba rủi ro chính cho chiến lược này: rủi ro tham số MA không phù hợp, rủi ro thời gian giữ không phù hợp và rủi ro vị trí dừng lỗ không hợp lý.

  • Chọn tham số MA không đúng sẽ dẫn đến tín hiệu sai. hoặc quá ngắn hoặc quá dài dài MA sẽ đánh giá sai thị trường, vì vậy điều chỉnh thích hợp theo các đặc điểm của công cụ là cần thiết.

  • Thời gian nắm giữ quá dài hoặc quá ngắn không thể tối đa hóa lợi nhuận hoặc kiểm soát rủi ro đúng cách.

  • Việc thiết lập vị trí dừng lỗ không hợp lý sẽ dẫn đến việc dừng lỗ quá rộng hoặc quá hẹp, do đó, việc dừng lỗ phù hợp dựa trên sự biến động của công cụ sẽ được xác định.

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

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

  • Kiểm tra nhiều kết hợp tham số MA để tìm các tham số tối ưu

  • Định vị dừng lỗ động dựa trên biến động giá hoặc ATR trong N ngày gần đây

  • Kết hợp nhiều chỉ số như MACD, KD vv để xác định thời gian nhập cảnh

  • Thêm các quy tắc lọc xu hướng để tránh thị trường giới hạn phạm vi

  • Xem xét áp dụng chiến lược cho nhiều công cụ hơn, hoặc cải thiện nó thành chiến lược đa công cụ

Tóm lại

Chiến lược chéo trung bình động tối ưu này tích hợp lợi thế của MA kép trong việc đánh giá hướng xu hướng và thiết lập stop loss để kiểm soát rủi ro. Nó thuộc về các chiến lược theo xu hướng dễ thực hiện. Chiến lược này có thể được tăng cường thêm về tính ổn định và hiệu quả thông qua tối ưu hóa tham số, tối ưu hóa stop loss, lọc tín hiệu v.v. So với các chiến lược phức tạp, nó dễ hiểu và thực hiện hơn, và do đó rất phù hợp để trở thành chiến lược giao dịch lượng đầu tiên cho người mới bắt đầu.


/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-03 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ashishchauhan
strategy(title="MA CO Strategy Test", overlay=true, pyramiding=0, initial_capital=100000)

fastEMALen = input(title="Fast EMA Length", type=input.integer, defval=50)
slowEMALen = input(title="Slow EMA Length", type=input.integer, defval=100)

fastEMA = ema(close, fastEMALen)
slowEMA = ema(close, slowEMALen)

enterLong = crossover(fastEMA, slowEMA)
enterShort = crossunder(fastEMA, slowEMA)

longStop = 0.0
longStop := enterShort ? close : longStop[1]

shortStop = 0.0
shortStop := enterLong ? close : shortStop[1]

plot(series=fastEMA, color=color.orange, title="Fast EMA")
plot(series=slowEMA, color=color.teal, linewidth=3, title="Slow EMA")

if enterLong
    strategy.entry(id="GoLong", long=true)

if enterShort
    strategy.entry(id="GoShort", long=false)

if strategy.position_size > 0
    strategy.exit(id="ExLong", from_entry="GoLong", stop=longStop)

if strategy.position_size < 0
    strategy.exit(id="ExShort", from_entry="GoShort", stop=shortStop)

strategy.close_all()


Thêm nữa