Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch năng động thích nghi dựa trên lợi nhuận logarithmic chuẩn hóa

Tác giả:ChaoZhang, Ngày: 2024-12-27 14:39:32
Tags:SZISMALOGBệnh lây qua đường tình dục

img

Tổng quan

Chiến lược này là một hệ thống giao dịch thích nghi dựa trên chỉ số Shiryaev-Zhou (SZI). Nó xác định các điều kiện thị trường mua quá mức và bán quá mức bằng cách tính toán điểm chuẩn của lợi nhuận logarithmic, nhằm mục đích nắm bắt cơ hội đảo ngược trung bình. Chiến lược kết hợp các mục tiêu dừng lỗ và lợi nhuận năng động để kiểm soát rủi ro chính xác.

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

Cốt lõi của chiến lược nằm trong việc xây dựng một chỉ số tiêu chuẩn bằng cách sử dụng các tính chất thống kê lăn lăn của kết quả logarithmic.

  1. Tính toán các kết quả logaritm cho bình thường hóa
  2. Tính toán trung bình lăn và độ lệch chuẩn bằng cách sử dụng cửa sổ 50 thời gian
  3. Xây dựng SZI: (logarithmic return - rolling mean) / rolling standard deviation
  4. Tạo tín hiệu dài khi SZI giảm xuống dưới -2,0 và tín hiệu ngắn khi trên 2,0
  5. Đặt mức dừng lỗ 2% và mức lợi nhuận 4% dựa trên giá nhập cảnh

Ưu điểm chiến lược

  1. Cơ sở lý thuyết vững chắc: Dựa trên các giả định phân bố bình thường theo log với hỗ trợ thống kê mạnh mẽ
  2. Khả năng thích nghi cao: Các tính toán cửa sổ lăn thích nghi với những thay đổi trong đặc điểm biến động thị trường
  3. Kiểm soát rủi ro toàn diện: Chiến lược dừng lỗ dựa trên tỷ lệ phần trăm cho phép kiểm soát rủi ro chính xác cho mỗi giao dịch
  4. Hình ảnh thân thiện với người dùng: chú thích rõ ràng về tín hiệu giao dịch và mức kiểm soát rủi ro trên biểu đồ

Rủi ro chiến lược

  1. Độ nhạy của tham số: Hiệu suất chiến lược bị ảnh hưởng đáng kể bởi sự lựa chọn chiều dài cửa sổ lăn và ngưỡng
  2. Sự phụ thuộc vào môi trường thị trường: Có thể tạo ra các tín hiệu sai thường xuyên trong các thị trường xu hướng
  3. Tác động trượt: Giá thực hiện thực tế có thể lệch đáng kể từ mức lý tưởng trong thời gian biến động
  4. Sự chậm trễ tính toán: Việc tính toán thời gian thực của các chỉ số thống kê có thể dẫn đến sự chậm trễ tín hiệu

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

  1. Các ngưỡng động: Xem xét điều chỉnh các ngưỡng tín hiệu dựa trên biến động thị trường
  2. Nhiều khung thời gian: giới thiệu các cơ chế xác nhận tín hiệu trên nhiều khung thời gian
  3. Bộ lọc biến động: Ngăn chặn giao dịch hoặc điều chỉnh các vị trí trong thời gian biến động cực kỳ
  4. Xác nhận tín hiệu: Thêm âm lượng, động lượng và các chỉ số phụ trợ khác để xác nhận tín hiệu
  5. Quản lý vị trí: Thực hiện định hình vị trí động dựa trên biến động

Tóm lại

Đây là một chiến lược giao dịch định lượng được xây dựng trên nền tảng thống kê vững chắc, nắm bắt các cơ hội biến động giá thông qua lợi nhuận logaritm tiêu chuẩn.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Jalambi Paul model", overlay=true)

// Define the length for the rolling window
window = input.int(50, title="Window Length", minval=1)
threshold = 2.0 // Fixed threshold value
risk_percentage = input.float(1.0, title="Risk Percentage per Trade", step=0.1) / 100

// Calculate the logarithmic returns
log_return = math.log(close / close[1])

// Calculate the rolling mean and standard deviation
rolling_mean = ta.sma(log_return, window)
rolling_std = ta.stdev(log_return, window)

// Calculate the Shiryaev-Zhou Index (SZI)
SZI = (log_return - rolling_mean) / rolling_std

// Generate signals based on the fixed threshold
long_signal = SZI < -threshold
short_signal = SZI > threshold

// Plot the signals on the main chart (overlay on price)
plotshape(series=long_signal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY", offset=-1)
plotshape(series=short_signal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL", offset=-1)

// Strategy logic: Buy when SZI crosses below the negative threshold, Sell when it crosses above the positive threshold
if (long_signal)
    strategy.entry("Buy", strategy.long, comment="Long Entry")
    
if (short_signal)
    strategy.entry("Sell", strategy.short, comment="Short Entry")

// Calculate the stop loss and take profit levels based on the percentage of risk
stop_loss_pct = input.float(2.0, title="Stop Loss (%)") / 100
take_profit_pct = input.float(4.0, title="Take Profit (%)") / 100

// Set the stop loss and take profit levels based on the entry price
strategy.exit("Take Profit / Stop Loss", "Buy", stop=close * (1 - stop_loss_pct), limit=close * (1 + take_profit_pct))
strategy.exit("Take Profit / Stop Loss", "Sell", stop=close * (1 + stop_loss_pct), limit=close * (1 - take_profit_pct))

// Plot the stop loss and take profit levels for visualization (optional)
plot(stop_loss_pct != 0 ? close * (1 - stop_loss_pct) : na, color=color.red, linewidth=1, title="Stop Loss Level")
plot(take_profit_pct != 0 ? close * (1 + take_profit_pct) : na, color=color.green, linewidth=1, title="Take Profit Level")


Có liên quan

Thêm nữa