Chiến lược dao động phi xu hướng DiNapoli


Ngày tạo: 2023-09-23 15:48:40 sửa đổi lần cuối: 2023-09-23 15:48:40
sao chép: 2 Số nhấp chuột: 725
1
tập trung vào
1617
Người theo dõi

Tổng quan

Chiến lược này dựa trên DiNapoli để đánh giá tín hiệu giao dịch của biến động xu hướng. Chỉ số này phản ánh các khu vực quá mua quá bán của giá thông qua sự chênh lệch giữa giá và trung bình di chuyển, để xác định cơ hội đảo ngược. Chiến lược này sử dụng phá vỡ một ngưỡng cụ thể như một tín hiệu giao dịch.

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

Chiến lược này bao gồm các yếu tố sau:

  1. Đường trung bình di chuyển: tính toán đường trung bình trong một chu kỳ nhất định để đánh giá xu hướng giá.

  2. Chỉ số chênh lệch: Giá trừ đi chênh lệch của đường trung bình, tạo thành chỉ số biến động.

  3. Đường giới hạn: tạo ra tín hiệu giao dịch khi chỉ số chênh lệch vượt quá giới hạn.

  4. Tạo nhiều tín hiệu: Tạo nhiều khi vượt qua giới hạn trên giá trị chênh lệch.

  5. Tín hiệu rỗng: Rỗng khi vượt qua giới hạn cửa dưới giá trị chênh lệch.

  6. Tùy chọn đảo ngược: có thể làm cho tín hiệu nhiều/không đảo ngược thành tín hiệu giao dịch.

Chiến lược này được sử dụng để nắm bắt các cơ hội đảo ngược ngắn hạn bằng cách đánh giá sự lệch giữa giá và xu hướng.

Phân tích lợi thế

So với các chiến lược đảo ngược khác, chiến lược này có những ưu điểm sau:

  1. Nguyên tắc đơn giản, trực quan và dễ hiểu, thực hiện không khó khăn.

  2. Các tham số nhỏ, phản hồi tối ưu hóa thuận tiện.

  3. Bạn có thể tự điều chỉnh các tham số để áp dụng cho các chu kỳ khác nhau.

  4. Cung cấp tùy chọn ngược, có thể được sử dụng linh hoạt cho các thị trường khác nhau.

  5. Một cách rõ ràng để kiểm soát rủi ro.

  6. Sự rút lui tương đối nhỏ, có thể giảm độ dao động của đường cong bằng cách điều chỉnh tham số.

  7. Có thể giới thiệu học máy để tối ưu hóa tham số.

  8. Nhìn chung, rủi ro và lợi nhuận cân bằng tốt, phù hợp với giao dịch ngắn hạn.

Phân tích rủi ro

Tuy nhiên, chiến lược này cũng có những rủi ro chính:

  1. Có nguy cơ quá phù hợp khi quá phụ thuộc vào tối ưu hóa tham số.

  2. Đường trung bình di chuyển và chỉ số đều có sự chậm trễ.

  3. Thiếu xác minh biến phụ ngoài giá cả.

  4. Hiệu quả của việc chọn thời gian có thể bị suy yếu do môi trường thị trường thay đổi.

  5. Không thể duy trì Alpha lâu dài, cần phải điều chỉnh thường xuyên.

  6. Cần chú ý đến tỷ lệ thu hồi lợi nhuận để tránh đường cong quá nhọn.

  7. Tần suất giao dịch cao, ảnh hưởng đến chi phí giao dịch.

  8. Cần xác minh tính ổn định của tham số trong nhiều thị trường.

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

Dựa trên những phân tích trên, các hướng tối ưu hóa của chiến lược bao gồm:

  1. Kiểm tra hiệu quả của các tham số đường trung bình khác nhau.

  2. Tham gia chỉ số giao dịch để xác minh.

  3. Thiết lập Stop Loss Stop để kiểm soát rủi ro.

  4. Đánh giá sức khỏe đa chu kỳ của nhiều giống.

  5. Xác nhận liên tục bằng cách lướt ngược.

  6. Điều chỉnh quản lý vị trí, giảm tần suất giao dịch.

  7. Giới thiệu các tham số tốt hơn trong học máy.

  8. Tối ưu hóa chiến lược quản lý tài chính tổng thể.

  9. Chiến lược lặp đi lặp lại liên tục để thích ứng với sự thay đổi của thị trường.

Tóm tắt

Chiến lược này nói chung là một chiến lược đảo ngược đơn giản, có thể đạt được hiệu quả tốt bằng cách điều chỉnh các tham số. Nhưng bất kỳ chiến lược nào cũng cần ngăn chặn sự phù hợp quá mức để đạt được lợi nhuận ổn định lâu dài. Điều này đòi hỏi phải liên tục đo lường và tối ưu hóa, cải thiện chiến lược từ nhiều chiều.

Mã nguồn chiến lược
/*backtest
start: 2023-08-23 00:00:00
end: 2023-09-22 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 05/12/2016
// DiNapoli Detrended Oscillator Strategy
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="DiNapoli Detrended Oscillator Strategy Backtest")
Length = input(14, minval=1)
Trigger = input(0)
reverse = input(true, title="Trade reverse")
hline(Trigger, color=gray, linestyle=line)
xSMA = sma(close, Length)
nRes = close - xSMA
pos = iff(nRes > Trigger, 1,
	   iff(nRes <= Trigger, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
         iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
plot(nRes, color=blue, title="DiNapoli")
barcolor(possig == -1 ? red: possig == 1 ? green : blue )