Chiến lược theo dõi xu hướng trung bình động kép


Ngày tạo: 2024-03-22 13:56:44 sửa đổi lần cuối: 2024-03-22 13:56:44
sao chép: 1 Số nhấp chuột: 501
1
tập trung vào
1617
Người theo dõi

Chiến lược theo dõi xu hướng trung bình động kép

Tổng quan

Chiến lược này sử dụng sự giao thoa của hai đường trung bình di chuyển để đánh giá sự thay đổi của xu hướng thị trường và thực hiện giao dịch mua và bán theo xu hướng. Khi giao dịch trên đường trung bình ngắn hạn vượt qua đường trung bình dài hạn, hãy thực hiện nhiều hơn và khi giao dịch dưới đường trung bình ngắn hạn vượt qua đường trung bình dài hạn, hãy giao dịch theo xu hướng.

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

Trung tâm của chiến lược là hai đường trung bình di chuyển: một đường trung bình nhanh ((thời gian mặc định là 32) và một đường trung bình chậm ((thời gian mặc định cũng là 32, có thể điều chỉnh thông qua các tham số). Khi giá đóng cửa đi qua / xuống qua các kênh hình thành từ hai đường trung bình, đại diện cho sự đảo ngược xu hướng, chiến lược này tạo ra tín hiệu mua và bán:

  • Làm nhiều hơn khi bạn đi qua đường trung bình nhanh
  • Khi đường trung bình nhanh đi qua đường trung bình chậm, hãy làm trống
  • Khi đã nắm giữ nhiều đơn, nhanh trung bình dưới đường đi qua trung bình chậm, đồng bằng nhiều và làm trống
  • Khi đã có vé, đi qua đường trung bình nhanh, đường trung bình chậm, trống và làm thêm

Bằng cách này, các chiến lược có thể đi theo xu hướng, giữ nhiều lệnh trong xu hướng tăng và giữ một lệnh trống trong xu hướng giảm cho đến khi có tín hiệu đảo ngược.

Phân tích lợi thế Advantage Analysis

  1. Theo dõi xu hướng: Chiến lược này có khả năng nắm bắt và tuân theo xu hướng chính của thị trường bằng cách đánh giá xu hướng theo đường chéo.
  2. Dễ sử dụng và đơn giản: logic chiến lược rõ ràng, chỉ sử dụng hai đường trung bình, thiết lập tham số đơn giản, dễ hiểu và nắm bắt.
  3. Khả năng áp dụng rộng rãi: Chiến lược có thể áp dụng rộng rãi cho các loại và chu kỳ, có thể được sử dụng trong nhiều thị trường.
  4. Giữ lỗ kịp thời: Chiến lược này có thể kiểm soát lỗ khi xu hướng đảo ngược.

Phân tích rủi ro Risk Analysis

  1. Chứng khoán không hoạt động tốt trong thị trường chấn động: Khi thị trường đang trong tình trạng chấn động, các tín hiệu giao thoa thường xuyên sẽ dẫn đến chiến lược giao dịch thường xuyên và thua lỗ nhiều hơn.
  2. Phản ứng không đầy đủ với tình huống bất ngờ: Đối mặt với tình huống cực đoan (như tăng nhanh hoặc giảm mạnh), chiến lược có thể không phản ứng kịp thời, dẫn đến tổn thất lớn.
  3. Các tham số tối ưu hóa rất khó: tối ưu hóa tham số đường trung bình đòi hỏi rất nhiều dữ liệu lịch sử và kiểm tra lại, và tham số có tính hướng dẫn hạn chế về hiệu quả trong tương lai.

Đối với các rủi ro trên, bạn có thể xem xét thêm các bộ lọc thích hợp, chẳng hạn như bộ lọc ATR hoặc độ sóng thực trung bình, giảm giao dịch quá mức trong thị trường biến động; thiết lập dừng hợp lý, kiểm soát tổn thất đơn lẻ; tiếp tục tối ưu hóa các tham số để phù hợp với thị trường. Tuy nhiên, các giới hạn của chính chiến lược khó có thể tránh hoàn toàn.

Hướng tối ưu hóa Optimization Direction

  1. Xác nhận xu hướng: Sau khi tạo tín hiệu giao dịch, bạn có thể thêm một số chỉ số xác nhận xu hướng, chẳng hạn như MACD, DMI, v.v., để lọc thêm tín hiệu.
  2. Hạn chế động: thiết lập mức dừng động dựa trên các chỉ số như ATR, thay vì tỷ lệ phần trăm cố định hoặc giá dừng, có thể kiểm soát rủi ro tốt hơn.
  3. Quản lý vị trí: Tùy thuộc vào các chỉ số như cường độ của xu hướng, tỷ lệ biến động, kích thước vị trí được điều chỉnh động, tăng vị trí khi xu hướng mạnh, giảm vị trí khi xu hướng yếu.
  4. Nhiều giai đoạn nhiều cấp: xem xét hệ thống đường trung bình ở nhiều cấp, chẳng hạn như đường mặt trời + đường giờ 4, lọc và xác nhận lẫn nhau, cải thiện độ chính xác của việc nắm bắt xu hướng.
  5. Tự thích ứng tham số: giới thiệu các phương pháp tối ưu hóa tham số thích ứng, chẳng hạn như thuật toán di truyền, để tham số chiến lược có thể thích ứng với các tình trạng thị trường khác nhau.

Các tối ưu hóa trên có thể cải thiện khả năng của chiến lược đối phó với thị trường phức tạp, nhưng cần lưu ý rằng tối ưu hóa quá mức có thể dẫn đến phù hợp với đường cong, gây ra hiệu suất kém trong tương lai.

Tóm tắt

Chiến lược theo dõi xu hướng hai dòng bằng cách nắm bắt xu hướng bằng cách chéo đường bằng, có tính năng đơn giản, dễ sử dụng và có thể áp dụng rộng rãi. Tuy nhiên, nó không hoạt động tốt trong thị trường biến động, không đáp ứng tốt với tình huống cực đoan và có nhiều khó khăn trong việc tối ưu hóa tham số. Có thể tối ưu hóa chiến lược bằng cách giới thiệu nhiều chỉ số lọc, dừng lỗ động, quản lý vị trí, kết hợp nhiều chu kỳ và tham số tự thích ứng. Tuy nhiên, chiến lược theo dõi xu hướng hai dòng có những hạn chế để tuân thủ hoàn toàn, vẫn cần thận trọng trong thực tế, điều chỉnh linh hoạt theo đặc điểm của thị trường.

Mã nguồn chiến lược
/*backtest
start: 2023-03-16 00:00:00
end: 2024-03-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

//study(title="Demo - SSL Basic", shorttitle="Demo - SSL Basic", overlay=true)
strategy(title='Demo - SSL Basic', shorttitle='Demo - SSL Basic', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, commission_value=0.15)

// Backtest Date Range
start_date_long = input(title='Backtest Long Start Date', defval=timestamp('01 Jan 2018 00:00 +0530'))
end_date_long = input(title='Backtest Long End Date', defval=timestamp('25 Jan 2030 00:00 +0530'))
backtest_range = true

// Inputs
maType = input.string(title='SSL MA Type', options=['SMA', 'EMA', 'WMA'], defval='SMA')
sslLen = input(title='SSL Length', defval=32)
showCross = input(title='Show Crossover?', defval=true)
showEntry = input(title='Show Entry?', defval=true)
showTrend = input(title='Show Trend Colors?', defval=true)

// Calc MA for SSL Channel
calc_ma(close, len, type) =>
    float result = 0
    if type == 'SMA'  // Simple
        result := ta.sma(close, len)
        result
    if type == 'EMA'  // Exponential
        result := ta.ema(close, len)
        result
    if type == 'WMA'  // Weighted
        result := ta.wma(close, len)
        result    
    result

// Add SSL Channel
maHigh = calc_ma(high, sslLen, maType)
maLow = calc_ma(low, sslLen, maType)
Hlv = int(na)
Hlv := close > maHigh ? 1 : close < maLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? maHigh : maLow
sslUp = Hlv < 0 ? maLow : maHigh
ss1 = plot(sslDown, title='Down SSL', linewidth=2, color=showTrend ? na : color.red)
ss2 = plot(sslUp, title='Up SSL', linewidth=2, color=showTrend ? na : color.lime)

// Conditions
longCondition = ta.crossover(sslUp, sslDown)
shortCondition = ta.crossover(sslDown, sslUp)

// Strategy
if shortCondition
    strategy.close('Long', comment='Long Exit', alert_message='JSON')

if longCondition
    strategy.close('Short', comment='Short Exit', alert_message='JSON')

if backtest_range and longCondition
    strategy.entry('Long', strategy.long, comment='Long Entry', alert_message='JSON')

if backtest_range and shortCondition
    strategy.entry('Short', strategy.short, comment= 'Short Entry', alert_message='JSON')


// Plots
fill(ss1, ss2, color=showTrend ? sslDown < sslUp ? color.new(color.lime, transp=75) : color.new(color.red, transp=75) : na, title='Trend Colors')