Chiến lược giao dịch định lượng dựa trên chỉ số xoáy cải tiến

Tác giả:ChaoZhang, Ngày: 2023-11-14 14:40:54
Tags:

img

Tổng quan

Chiến lược này là một phiên bản nâng cấp của chiến lược chỉ số xoáy. Dựa trên chỉ số xoáy ban đầu, nó kết hợp một số tính năng mới, bao gồm kích hoạt giao dịch dựa trên ngưỡng, làm mịn các đường xoáy với EMA, thêm dừng lỗ và lấy lợi nhuận, thực hiện các chiến lược chỉ dài, chỉ ngắn hoặc chỉ dài / ngắn, v.v. Nó phù hợp với các nhà đầu tư muốn áp dụng chỉ số xoáy cải tiến trong giao dịch định lượng.

Nguyên tắc

Chỉ số cốt lõi của chiến lược này là Chỉ số xoáy cải tiến. Chỉ số xoáy truyền thống tạo ra các đường xoáy dương và âm bằng cách tính tổng tuyệt đối của biến động giá. Khi đường dương vượt qua trên đường âm, nó gửi tín hiệu mua. Khi đường âm vượt qua dưới đường dương, nó gửi tín hiệu bán.

Chiến lược này làm cho các nâng cấp sau đây cho chỉ số Vortex truyền thống:

  1. Thay vì chỉ dựa vào đường chéo, nó giới thiệu khái niệm ngưỡng. Các giao dịch chỉ được kích hoạt khi chênh lệch giữa đường dương và đường âm vượt quá ngưỡng đã đặt trước. Điều này giúp lọc các đường chéo nhỏ, không đáng kể.

  2. Các đường xoáy được làm mịn bằng EMA để giảm căng thẳng đường cong.

  3. Các chức năng dừng lỗ và lấy lợi nhuận được thêm vào. Tỷ lệ lỗ / lợi nhuận có thể được đặt trước để kiểm soát rủi ro tốt hơn.

  4. Các nhà giao dịch có thể chọn giữa các chiến lược chỉ dài, chỉ ngắn hoặc dài / ngắn để phù hợp với nhu cầu khác nhau.

Với những cải tiến này, chiến lược có thể phát hiện các xu hướng đáng tin cậy hơn và hoạt động tốt trong các thử nghiệm hậu quả.

Phân tích lợi thế

  1. Chỉ số Vortex được cải tiến lọc ra các tín hiệu không hợp lệ và tránh ngắt sai.

  2. Sử dụng ngưỡng cho tín hiệu thay vì chéo đơn giản có thể phát hiện đáng tin cậy hơn các điểm đảo ngược xu hướng.

  3. Các tính năng dừng lỗ / lấy lợi nhuận cho phép đặt trước tỷ lệ lợi nhuận / lỗ để kiểm soát rủi ro cho mỗi giao dịch, phù hợp với các nguyên tắc giao dịch hợp lý.

  4. Việc lựa chọn giữa chỉ mua dài, chỉ mua ngắn hoặc chỉ mua dài / ngắn cung cấp tính linh hoạt để thích nghi với các giai đoạn thị trường khác nhau và phù hợp với nhu cầu của các nhà giao dịch khác nhau.

  5. Chiến lược có các tham số được thiết kế tốt và kết quả backtest tốt, mang lại cho nó giá trị thực tế.

Phân tích rủi ro

  1. Chiến lược chủ yếu hoạt động cho các thị trường xu hướng. Hiệu suất có thể bị ảnh hưởng trong các thị trường giới hạn phạm vi.

  2. Các đường xoáy vốn nhạy cảm với biến động giá cả.

  3. Nếu ngưỡng được đặt quá cao, nó có thể bỏ lỡ giao dịch. Nếu đặt quá thấp, nó có thể tạo ra các tín hiệu sai.

  4. Các nhà giao dịch cần phải cảnh giác với rủi ro này.

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

  1. Xem xét kết hợp với các chỉ số khác để xác nhận tín hiệu và đánh giá toàn diện hơn.

  2. Kiểm tra độ nhạy của tham số trên các cổ phiếu khác nhau và tối ưu hóa cài đặt.

  3. Nghiên cứu các kỹ thuật dừng lỗ thích nghi để điều chỉnh dừng lại dọc theo xu hướng chính.

  4. giới thiệu máy học vv để tự động tối ưu hóa các thông số.

  5. Khám phá các phương pháp lập chỉ mục dựa trên chiến lược này để mở rộng năng lực.

Kết luận

Chiến lược này có nhiều cải tiến so với chỉ số Vortex truyền thống và tạo thành một hệ thống giao dịch định lượng tương đối trưởng thành và đáng tin cậy. Kết hợp lọc xu hướng và kiểm soát rủi ro, nó tránh rủi ro quá mức từ các giao dịch phân tán và sử dụng khả năng nắm bắt xu hướng của chỉ số chính nó. Với tối ưu hóa tham số và kỹ thuật kết hợp hơn nữa, chiến lược có thể trở nên ổn định và đáp ứng nhanh hơn. Nhìn chung, nó có giá trị thực tế như một phiên bản nâng cấp của chiến lược Chỉ số Vortex.


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

// [Guz] Custom Vortex
// Custom version of the Vortex indicators that adds many features:
// -Triggers trades after a threshold is reached instead of the normal vortex lines cross (once the difference between the 2 lines is important enough)
// -Smooths the Vortex lines with an EMA
// -Adds Take Profit and Stop Loss selection
// -Adds the possibility to go Long only, Short only or both of them
// ! notice that it uses 10% position size and 0.04% trade fee, found on some crypto exchanges futures contracts
// Allows testing leverage with position size moddification (values above 100%, to be done with caution)
// Not an investment advice 

//@version=4
strategy(title="%-[Guz] Vortex Indicator Custom", shorttitle="%-[Guz] Vortex Indicator Custom", overlay=true)

period_ = input(300, title="Length", minval=2)
VMP = sum( abs( high - low[1]), period_ )
VMM = sum( abs( low - high[1]), period_ )
STR = sum( atr(1), period_ )
ema_len = input(title="EMA Length", defval=7)
tresh= input(title="Threshold", defval=16.2, step=0.1)
VIP = ema(VMP / STR,ema_len)
VIM = ema(VMM / STR,ema_len)
//plot(VIP, title="VI +", color=#2962FF)
//plot(VIM, title="VI -", color=#E91E63)

condition_long = crossover(VIP-VIM, tresh/100)
condition_close = cross(VIP-VIM,0)
condition_short = crossunder(VIP-VIM, -tresh/100)

is_short=input(true,title="Do Short?")
is_long=input(true,title="Do Long?")


if (condition_long and is_long)
    strategy.entry("VortexLE", strategy.long, comment="Long Algo")
if (condition_short and is_short)
	strategy.entry("VortexSE", strategy.short, comment="Short Algo")
if (condition_close)
    strategy.close_all()

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


stop_loss_long_percent = input(2.5, title="Stop Loss Long", minval=0.1, step=0.1)
stop_loss_long = (1-stop_loss_long_percent/100)*strategy.position_avg_price

take_profit_long_percent = input(1.5, title="Take Profit Long", minval=0.1, step=0.1)
take_profit_long = (1+take_profit_long_percent/100)*strategy.position_avg_price


stop_loss_short_percent = input(2.5,title="Stop Loss Short", minval=0.1, step=0.1) 
stop_loss_short = (1+stop_loss_short_percent/100)*strategy.position_avg_price

take_profit_short_percent = input(1.7,title="Take Profit Short", minval=0.1, step=0.1)
take_profit_short = (1-take_profit_short_percent/100)*strategy.position_avg_price

strategy.exit("TP-SL Long", "VortexLE",  limit = take_profit_long , stop = stop_loss_long) //, trail_price = trail_price_long , trail_offset = trail_offset_long) //, trail_offset=tsl_offset_tick, trail_price=tsl_offset_tick) 
strategy.exit("TP-SL Short", "VortexSE",  limit = take_profit_short , stop = stop_loss_short)  
 


Thêm nữa