Chiến lược theo dõi xu hướng dựa trên đường trung bình động và đường trung bình thực sự

Tác giả:ChaoZhang, Ngày: 2024-01-12 11:14:01
Tags:

img

Tổng quan

Chiến lược này sử dụng đường trung bình động và đường trung bình thực để xác định hướng xu hướng thị trường cho giao dịch theo dõi xu hướng.

Nguyên tắc

Chiến lược này sử dụng đường trung bình động trong các giai đoạn và hai lần đường trung bình thực sự trong các giai đoạn để xác định xu hướng thị trường.

Khi mức thấp lớn hơn trung bình động cộng với phạm vi trung bình thực sự (mức thấp > ma + atr), nó được đánh giá là xu hướng tăng. Khi mức cao thấp hơn trung bình động trừ khoảng trung bình thực sự (cao < ma - atr), nó được đánh giá là xu hướng giảm.

Trong các trường hợp khác, phán quyết trước đó được duy trì.

Khi một xu hướng tăng được xác định, đi dài ở một tỷ lệ phần trăm nhất định khi được phép đi dài. Khi một xu hướng giảm được xác định, đi ngắn ở một tỷ lệ phần trăm nhất định khi được phép đi ngắn.

Điều kiện đóng cửa là đạt đến ngày kết thúc giao dịch được chỉ định.

Phân tích lợi thế

Những lợi thế của chiến lược này là:

  1. Sử dụng đường trung bình động để xác định hướng xu hướng chung và tránh bị đánh lừa bởi biến động thị trường ngắn hạn.
  2. Sử dụng phạm vi trung bình thực sự để thiết lập stop loss động, điều này thuận lợi cho việc kiểm soát rủi ro.
  3. Có thể nắm bắt các cơ hội xu hướng kịp thời theo xu hướng, với tiềm năng lợi nhuận cao.
  4. Quy tắc đơn giản và dễ sử dụng.

Phân tích rủi ro

Những rủi ro chính đối với chiến lược này là:

  1. Nó dễ bị tổn thất nhiều lần trong một thị trường biến động mạnh.
  2. Không thể xác định hiệu quả các điểm đảo ngược xu hướng, có nguy cơ theo đuổi mức cao và giết chết mức thấp.
  3. Các thiết lập tham số không chính xác của phạm vi thực trung bình có thể dẫn đến các điểm thoát quá lỏng lẻo hoặc quá nghiêm ngặt.

Giải pháp:

  1. Điều chỉnh các thông số trung bình động phù hợp để sử dụng các thông số ổn định hơn.
  2. Xác nhận tín hiệu với các chỉ số khác để tránh theo đuổi mức cao và giết chết mức thấp.
  3. Tối ưu hóa và kiểm tra các thông số phạm vi thực tế trung bình để thiết lập các thông số thích hợp.

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 hệ thống trung bình động khác nhau để tìm kết hợp tham số ổn định hơn.
  2. Thêm các chỉ số phụ trợ khác để đánh giá độ tin cậy của tín hiệu.
  3. Kiểm tra các thông số phạm vi thực trung bình để tìm các thông số tối ưu.
  4. Tối ưu hóa việc sử dụng vốn thông qua đòn bẩy để tăng lợi nhuận vốn.
  5. Kết hợp học máy và các phương pháp khác để đạt được tối ưu hóa tham số động.

Tóm lại

Ý tưởng tổng thể của chiến lược này là rõ ràng và dễ hiểu. Nó sử dụng đường trung bình động để xác định hướng xu hướng và sử dụng đường trung bình thực sự để thiết lập điểm dừng. Nó có thể theo dõi xu hướng một cách hiệu quả. Nhưng có một số rủi ro nhất định, và tối ưu hóa thêm các thiết lập tham số và thêm các chỉ số phán đoán khác là cần thiết. Nói chung, chiến lược này cung cấp một cách tiếp cận khả thi cho việc theo dõi xu hướng.


/*backtest
start: 2024-01-04 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//2019
//Noro

//@version=4
strategy(title = "Noro's MA+ATR Strategy", shorttitle = "MA+ATR str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
len = input(30, minval = 2, title = "MA Length")
src = input(ohlc4, title = "MA Source")
limitmode = input(false)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//MA + BG
atr = sma(tr, len) * 2
ma = sma(src, len)
plot(ma, color = color.blue, linewidth = 4)
trend = 0
trend := low > ma + atr ? 1 : high < ma - atr ? -1 : trend[1]
col = trend == 1 ? color.lime : color.red
bgcolor(col, transp = 70)

//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if trend == 1 and limitmode == false
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode == false
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if trend == 1 and limitmode
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if trend == -1 and limitmode
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
// if time > timestamp(toyear, tomonth, today, 23, 59)
//     strategy.close_all()

Thêm nữa