Hệ thống giao dịch đòn bẩy điều chỉnh rủi ro năng động

Tác giả:ChaoZhang, Ngày: 2023-10-16 16:00:52
Tags:

img

Tổng quan

Hệ thống giao dịch này được gọi là Dynamic Risk-Adjusted Leverage Trading System nhằm mục đích quản lý giao dịch dựa trên sự biến động của thị trường hiện tại so với mức trung bình lịch sử. Hệ thống tính toán số lượng mục tiêu giao dịch mở dựa trên chỉ số ATR và điều chỉnh đòn bẩy phù hợp. Nó mở và đóng giao dịch bằng cách sử dụng phương pháp kim tự tháp, cho phép nhiều vị trí cùng một lúc.

Chiến lược logic

Hệ thống theo các bước dưới đây:

  1. Tính toán ATR 14 giai đoạn và bình thường hóa nó bằng cách chia cho giá đóng cửa.

  2. Tính toán trung bình di chuyển đơn giản (SMA) 100 ngày của ATR bình thường.

  3. Tính toán tỷ lệ của ATR bình thường với SMA 100 ngày.

  4. Xác định đòn bẩy mục tiêu dựa trên nghịch số của tỷ lệ (2/ tỷ lệ).

  5. Tính toán số lượng mục tiêu của các giao dịch mở bằng cách nhân đòn bẩy mục tiêu bằng 5.

  6. Đặt mục tiêu và giao dịch mở hiện tại trên biểu đồ.

  7. Kiểm tra xem có cơ hội mua (nếu giao dịch mở hiện tại thấp hơn mục tiêu) hoặc đóng giao dịch (nếu giao dịch mở hiện tại lớn hơn mục tiêu cộng với 1).

  8. Nếu cơ hội mua, mở giao dịch dài và thêm vào mảng openTrades.

  9. Nếu cơ hội để đóng giao dịch và giao dịch tồn tại trong mảng openTrades, đóng giao dịch gần đây nhất bằng cách tham chiếu mảng và loại bỏ khỏi mảng.

Hệ thống nhằm mục đích nắm bắt xu hướng bằng cách điều chỉnh năng động các giao dịch mở và đòn bẩy dựa trên sự biến động của thị trường.

Phân tích lợi thế

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

  1. Điều chỉnh năng động về đòn bẩy và kích thước vị trí dựa trên những thay đổi về biến động thị trường có thể quản lý rủi ro một cách hiệu quả.

  2. Sử dụng chỉ số ATR để tính toán kích thước vị trí mục tiêu, phản ánh sự biến động của thị trường, là một lựa chọn hợp lý.

  3. Định hình kim tự tháp với nhiều vị trí có thể lợi nhuận từ xu hướng.

  4. Việc ghi lại mỗi giao dịch trong mảng cho phép kiểm soát rõ ràng các giao dịch mở và đóng.

  5. Chiến lược có ít tham số và dễ thực hiện và vận hành.

  6. Logic là rõ ràng và cấu trúc mã được tổ chức tốt để tối ưu hóa và lặp lại dễ dàng.

Phân tích rủi ro

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

  1. ATR chỉ phản ánh sự biến động trong quá khứ, không thể dự đoán những thay đổi trong tương lai, có thể dẫn đến điều chỉnh đòn bẩy không phù hợp.

  2. Đánh kim tự tháp có thể tích lũy tổn thất khi xu hướng đảo ngược.

  3. Giao dịch ghi mảng chỉ áp dụng cho các hoạt động mở/khép đơn giản.

  4. Các thiết lập đòn bẩy mục tiêu và kích thước vị trí cần được điều chỉnh dựa trên đặc điểm của biểu tượng thay vì các tham số cố định.

  5. Việc dựa vào chỉ số duy nhất có thể gây hiểu lầm. Các chỉ số biến động khác hoặc thuật toán học máy có thể cải thiện độ bền.

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

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

  1. Thêm stop loss để tích cực cắt lỗ khi đạt đến mức stop loss.

  2. Tối ưu hóa các thông số chỉ số bằng cách thử nghiệm các khoảng thời gian ATR khác nhau.

  3. Hãy thử các chiến lược nhập khác như nhập số lượng cố định và kiểm tra kết quả.

  4. Thêm các chỉ số biến động khác như Bollinger Bands WIDTH, KD, RSI vv để sử dụng kết hợp.

  5. Sử dụng các mô hình học máy để dự đoán biến động thay vì làm mịn đơn giản.

  6. Tối ưu hóa việc tính toán kích thước vị trí, chẳng hạn như sử dụng số nhân ATR hoặc các hàm biến động.

  7. Ghi lại thêm chi tiết nhập cảnh như giá nhập cảnh, thời gian vv để phân tích chiến lược và tối ưu hóa.

  8. Thêm tối ưu hóa tham số cho tối ưu hóa tự động để tìm các tập hợp tham số tối ưu.

Kết luận

Chiến lược điều chỉnh đòn bẩy và kích thước vị trí theo động dựa trên ATR để quản lý rủi ro trong thời gian xu hướng, và có một số lợi thế nhất định. Nhưng những thách thức như khó khăn thiết lập tham số và không gian tối ưu hóa chỉ số vẫn còn để cải thiện hơn nữa. Nhìn chung, logic rõ ràng và dễ vận hành và tối ưu hóa, xứng đáng với nghiên cứu và ứng dụng chuyên sâu.


/*backtest
start: 2022-10-09 00:00:00
end: 2023-10-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("I11L - Risk Adjusted Leveraging", overlay=false, pyramiding=25, default_qty_value=20, initial_capital=20000, default_qty_type=strategy.percent_of_equity,process_orders_on_close=false, calc_on_every_tick=false)

atr = ta.atr(14) / close
avg_atr = ta.sma(atr,100)
ratio = atr / avg_atr

targetLeverage = 2 / ratio
targetOpentrades = 5 * targetLeverage

plot(targetOpentrades)
plot(strategy.opentrades)
isBuy = strategy.opentrades < targetOpentrades
isClose = strategy.opentrades > targetOpentrades + 1

var string[] openTrades = array.new_string(0)

if(isBuy)
    strategy.entry("Buy"+str.tostring(array.size(openTrades)),strategy.long)
    array.push(openTrades, "Buy" + str.tostring(array.size(openTrades)))

if(isClose)
    if array.size(openTrades) > 0
        strategy.close(array.get(openTrades, array.size(openTrades) - 1))
        array.pop(openTrades)

Thêm nữa