Chiến lược theo dõi trung bình di chuyển

Tác giả:ChaoZhang, Ngày: 2023-10-20 17:02:52
Tags:

img

Tổng quan

Chiến lược theo dõi đường trung bình động là một chiến lược theo xu hướng dựa trên đường trung bình động đơn giản. Nó sử dụng đường trung bình động đơn giản 200 ngày để xác định hướng xu hướng giá. Khi giá vượt qua đường trung bình động, nó sẽ dài. Khi giá vượt qua đường trung bình động, nó sẽ ngắn. Chiến lược này theo dõi xu hướng để kiếm lợi nhuận.

Chiến lược logic

Chiến lược dựa trên các nguyên tắc sau:

  1. Sử dụng trung bình di chuyển đơn giản 200 ngày (slowMA) để xác định xu hướng giá.
  2. Khi giá đóng cửa (khép lại) vượt trên slowMA, nó báo hiệu xu hướng tăng, vì vậy hãy mua dài.
  3. Khi giá đóng (khép) vượt dưới slowMA, nó báo hiệu xu hướng giảm, vì vậy hãy mua ngắn.
  4. Sử dụng biến last_long và last_short để ghi lại thời gian nhập dài và ngắn cuối cùng.
  5. Sử dụng hàm chéo để phát hiện chéo giữa last_long và last_short để tạo ra tín hiệu giao dịch.
  6. Trong thời gian backtest, đi dài khi nhận tín hiệu dài (long_signal), và đi ngắn khi nhận tín hiệu ngắn (short_signal).

Chiến lược theo dõi xu hướng bằng cách di chuyển hướng trung bình và thực hiện giao dịch ngược lại khi giao dịch MA xảy ra, để kiếm lợi nhuận từ xu hướng.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Logic chiến lược đơn giản và dễ hiểu và thực hiện.
  2. Mức trung bình động dài thời gian lọc ra tiếng ồn và khóa trong xu hướng chính.
  3. Các giao dịch đảo ngược kịp thời có thể nắm bắt sự biến động giá đáng kể xung quanh sự đảo ngược xu hướng.
  4. Nó chỉ sử dụng một chỉ số, tránh sự phức tạp của nhiều chỉ số.
  5. Quy tắc nhập và xuất rõ ràng mà không cần sự can thiệp của con người.

Phân tích rủi ro

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

  1. MA dài hạn không nhạy cảm với các điều chỉnh ngắn hạn, bỏ lỡ các cơ hội ngắn hạn.
  2. Khả năng yếu trong việc xác định sự đảo ngược xu hướng lớn, với tổn thất đảo ngược.
  3. Không có cơ chế dừng lỗ, dẫn đến rút tiền lớn.
  4. Các thông số cố định có khả năng thích nghi yếu giữa các sản phẩm và môi trường thị trường khác nhau.
  5. Backtest rủi ro quá phù hợp vì chiến lược chỉ được thử nghiệm trên dữ liệu lịch sử.

Các rủi ro có thể được giải quyết thông qua các tối ưu hóa sau:

  1. Thêm MA ngắn hạn để cũng nắm bắt xu hướng ngắn hạn.
  2. Thêm bộ lọc âm lượng để tránh các tín hiệu sai.
  3. Thêm các chỉ số theo xu hướng để cải thiện việc xác định sự đảo ngược xu hướng.
  4. Thêm stop loss động để kiểm soát lỗ giao dịch duy nhất.
  5. Sử dụng các phương pháp tối ưu hóa tham số để cải thiện khả năng thích nghi.
  6. Kiểm tra độ bền trên các môi trường thị trường khác nhau.

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

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

  1. Tối ưu hóa tham số thời gian MA bằng cách sử dụng các phương pháp như Phân tích Tiến về phía trước để tìm các tham số tối ưu.

  2. Thêm MA ngắn hạn để theo dõi cả xu hướng dài hạn và ngắn hạn.

  3. Kết hợp các chỉ số xu hướng như MACD để cải thiện xác định sự đảo ngược xu hướng.

  4. Thêm cơ chế dừng lỗ như dừng lỗ để kiểm soát lỗ giao dịch duy nhất.

  5. Kiểm tra độ bền trên các sản phẩm và thời gian khác nhau.

  6. Sử dụng máy học để tối ưu hóa tùy biến.

Kết luận

Chiến lược theo dõi trung bình động là một chiến lược theo dõi xu hướng đơn giản và thực tế. Nó có logic rõ ràng và dễ thực hiện để nắm bắt xu hướng. Nhưng nó cũng có một số điểm yếu như không nhạy cảm với các điều chỉnh ngắn hạn và kiểm soát rủi ro yếu. Chúng ta có thể tối ưu hóa chiến lược từ nhiều khía cạnh để làm cho nó mạnh mẽ hơn, được tham số hóa tốt hơn và quản lý rủi ro mạnh mẽ hơn. Nhìn chung, chiến lược theo dõi trung bình động có giá trị ứng dụng tốt và là một khái niệm giao dịch xu hướng quan trọng trong giao dịch định lượng.


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

//@version=4
strategy("MA X 200 BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2012, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// MA 200 /////////////
slowMA = sma(close, input(200))

/////////////// Strategy ///////////////
long = close > slowMA
short = close < slowMA

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long Entry",  strategy.long, when=long_signal)
    strategy.entry("Short Entry", strategy.short, when=short_signal)
    strategy.exit("Long Ex", "Long Entry")
    strategy.exit("Short Ex", "Short Entry")

/////////////// Plotting /////////////// 
plot(slowMA, color = long ? color.lime : color.red, linewidth=2)
bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)

Thêm nữa