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


Ngày tạo: 2024-02-20 14:36:11 sửa đổi lần cuối: 2024-02-20 14:36:11
sao chép: 0 Số nhấp chuột: 614
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

Tổng quan

Chiến lược này được xây dựng dựa trên chỉ số DMI, để đánh giá xu hướng của giá cổ phiếu bằng cách theo dõi sự giao thoa của + DI và -DI, kết hợp với chỉ số ADX để xác định xu hướng mạnh và yếu, do đó có thể theo dõi xu hướng.

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

Chiến lược này sử dụng hai thành phần của chỉ số DMI: + DI và - DI. + DI đo đạc động lực tăng, + DI trên - DI cho thấy động lực tăng của người mua tăng. - DI đo đạc động lực giảm, - DI dưới + DI cho thấy động lực giảm của người bán tăng.

Khi + DI trên đi qua - DI, biểu thị xu hướng tăng hình thành, khi chiến lược này là đầu vào nhiều đầu. Sau khi vào, dừng chân di chuyển tuyến tính theo dõi một tỷ lệ nhất định của giá cao nhất. Khi giá trở lại, giá dừng sẽ giảm theo, khóa lợi nhuận trước đó ở một mức độ nhất định.

Khi -DI đi qua +DI, biểu thị xu hướng giảm thay thế, khi đó chiến lược cân bằng. Bạn có thể xác định xu hướng mạnh hoặc yếu bằng chỉ số ADX, ADX càng cao, cho thấy xu hướng giá cổ phiếu rõ ràng hơn. Do đó, chiến lược sử dụng ADX làm chỉ số phán đoán phụ trợ, chỉ khi ADX nằm trong một khu vực.

Nói chung, chiến lược này nắm bắt được các điểm thay đổi trong xu hướng giá cổ phiếu và theo dõi xu hướng trung bình di chuyển.

Phân tích lợi thế chiến lược

Những lợi thế của chiến lược này được thể hiện qua ba khía cạnh:

  1. Sử dụng chỉ số DMI để xác định hướng xu hướng giá cổ phiếu chính xác và đáng tin cậy. DMI chính xác hơn so với chỉ số như trung bình di chuyển đơn giản để xác định xu hướng.

  2. Sử dụng chỉ số ADX để xác định điểm mạnh và điểm yếu của xu hướng, tránh giao dịch thường xuyên trong tình trạng biến động.

  3. Cơ chế dừng di chuyển tuyến tính, có thể điều chỉnh động vị trí dừng lỗ, dừng sớm khi xu hướng đảo ngược. Và khóa một phần lợi nhuận, kiểm soát rủi ro hiệu quả.

  4. Các quy tắc chiến lược đơn giản, rõ ràng, dễ hiểu và thực hiện, phù hợp với giao dịch số lượng.

Phân tích rủi ro

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

  1. DMI có thể không hiệu quả trong một số thị trường đặc biệt. DMI không áp dụng cho tất cả các thị trường và dễ tạo ra tín hiệu sai khi xu hướng không rõ ràng.

  2. Rủi ro của giá cổ phiếu nhảy vọt trở lại, sau khi vượt quá điểm dừng lỗ và giảm xuống. Để lại một khoảng trống an toàn có thể làm giảm rủi ro này.

  3. Rủi ro khi đặt tham số ADX không đúng. Các tham số ADX ảnh hưởng trực tiếp đến kết quả khi chọn chiến lược, nếu thiết lập quá lớn hoặc quá nhỏ sẽ ảnh hưởng đến hiệu suất.

  4. Vì sử dụng phương pháp dừng lỗ di chuyển tuyến tính, nguy cơ bị dừng lỗ dễ dàng trong khi tăng nhanh. Khi đó, các tham số theo dõi dừng lỗ có thể được điều chỉnh theo từng trường hợp cụ thể.

Có thể giảm rủi ro hơn nữa bằng cách điều chỉnh tham số, dừng lỗ nghiêm ngặt, tối ưu hóa khung thủ tục.

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

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

  1. Sử dụng các chỉ số khác như MACD, KDJ để đưa ra phán đoán phụ trợ, tăng sự ổn định của chiến lược.

  2. Kiểm tra các phương pháp dừng khác nhau, chẳng hạn như dừng di chuyển đường cong, dừng di chuyển thời gian.

  3. Tăng cơ chế quản lý vị thế, tăng vị thế dần dần sau khi xác định xu hướng, tăng lãi suất.

  4. Phương pháp kết hợp các yếu tố tần số cao, học máy và các phương pháp khác để tối ưu hóa động các tham số của DMI và ADX, làm cho chiến lược trở nên thông minh hơn.

  5. Thêm mô-đun kiểm soát gió theo chương trình, kiểm soát chặt chẽ sự rút lui tối đa bằng các phương pháp như ngân sách rủi ro.

Sự hợp tác qua nhiều phương tiện có thể nâng cao hiệu quả, ổn định và an toàn của chiến lược.

Tóm tắt

Chiến lược này hoạt động toàn bộ logic rõ ràng và dễ hiểu, sử dụng chỉ số DMI để đánh giá xu hướng xu hướng giá cổ phiếu, chỉ số ADX hỗ trợ đánh giá cường độ xu hướng, phương thức dừng lỗ di chuyển tuyến tính để kiểm soát rủi ro hiệu quả. Hiệu suất của chiến lược tương đối ổn định, nhưng vẫn cần phải phòng ngừa một số rủi ro. Bằng cách kiểm tra tối ưu hóa liên tục, dần dần hoàn thiện sự ổn định và hiệu quả của chiến lược. Tôi tin rằng chiến lược này có khả năng trở thành đại diện tốt cho các chiến lược theo dõi trung bình di chuyển.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
//@version=5
//1.0 - 240202 @caddjax

strategy(title = "+DI Crossover", overlay=false)

//DMI + ADX Chart w/ overlay
// © jrregencia

lensig = input.int(14, title="ADX Smoothing", minval=1, maxval=50)
len = input.int(6, minval=1, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / trur)
minus = fixnan(100 * ta.rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
adxmax = input.int(50, title="ADX Max Buying Area", minval=1, maxval=100)
adxmin = input.int(0, title="ADX Min Buying Area", minval=0, maxval=99)



//DI cross alert
DIPcross = ta.crossover(plus, minus) ? plus : na
plotshape(DIPcross, style = shape.cross , color=color.white, location=location.absolute)

plot(adx, color=color.rgb(255, 238, 0, 23), title="ADX", linewidth=2)
p1 = plot(plus, color=color.rgb(16, 137, 0, 31), title="+DI", linewidth=1)
p2 = plot(minus, color=color.rgb(143, 82, 255, 25), title="-DI", linewidth=1)
adxmaxl = hline(adxmax, title="ADX MaxLine", color=color.silver, linestyle=hline.style_solid)
adxminl = hline(adxmin, title="ADX MinLine", color=color.silver, linestyle=hline.style_solid)
fill(p1, p2, title="Cloud Fill", color = plus > minus ? color.teal : color.red, transp=50)
fill(adxmaxl, adxminl, title="ADX Fill", color=color.silver, transp=90)

// Configure trail stop level with input options (optional)
longTrailPerc = input.float(3, title="Trail Long Loss (%)",
     minval=0.0, step=0.1) * 0.01
// Determine trail stop loss prices
longStopPrice = 0.0

// Determine entry condition
enterLong = ta.crossover(plus, minus) ? plus : na

longStopPrice := if strategy.position_size > 0
    stopValue = high[1] * (1 - longTrailPerc)
    math.max(stopValue, longStopPrice[1])
else
    0
// Submit entry orders
if enterLong
    strategy.entry("EL", strategy.long)    
// Submit exit orders for trail stop loss price
if strategy.position_size > 0
    strategy.exit("XL TRL STP", stop=longStopPrice)