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

Chiến lược giao dịch đảo ngược tỷ lệ khối lượng

Tác giả:ChaoZhang, Ngày: 2024-01-12 12:08:05
Tags:

img

Tổng quan

Chiến lược giao dịch đảo ngược tỷ lệ khối lượng (VR Reversal Strategy) là một chiến lược giao dịch đảo ngược ngắn hạn dựa trên chỉ số khối lượng.

Chiến lược logic

Chỉ số cốt lõi của chiến lược đảo ngược VR là Tỷ lệ khối lượng (viết tắt là VR), đại diện cho tỷ lệ giữa khối lượng giao dịch trong thời gian hiện tại và khối lượng giao dịch trung bình trong một khoảng thời gian.

VR = Khối lượng hiện tại / SMA (khối lượng, N)

N là ký tự của tham số Length, khối lượng giao dịch của chu kỳ hiện tại chia cho trung bình di chuyển đơn giản của khối lượng giao dịch trong chu kỳ Length.

Khi VR > ngưỡng, nó được coi là một tín hiệu về sự tham gia của các cầu thủ lớn.

Chiến lược cũng giới thiệu một chỉ số phán đoán hướng phụ trợ dir. Nó so sánh giá đóng của chu kỳ hiện tại với giá của N chu kỳ trước.

Khi VR lớn hơn ngưỡng được chỉ định, nếu dir = 1, một tín hiệu mua được tạo ra. Nếu dir = -1, một tín hiệu bán được tạo ra.

Ưu điểm

Ưu điểm lớn nhất của chiến lược đảo ngược VR là nắm bắt cơ hội đảo ngược giá đột ngột. Khi có tín hiệu can thiệp của các cầu thủ lớn, chiến lược có thể đưa ra phán đoán nhanh chóng và nắm bắt cơ hội phục hồi hoặc khôi phục kịp thời.

Những lợi thế khác bao gồm:

  • Sử dụng chỉ số khối lượng, đánh giá về các cầu thủ lớn là tương đối đáng tin cậy
  • Thuật toán đơn giản, dễ hiểu và thực hiện
  • Các thông số cấu hình linh hoạt, khả năng thích nghi tốt hơn

Rủi ro

Mặc dù chiến lược đảo ngược VR có một số lợi thế, nhưng vẫn có một số rủi ro cần lưu ý:

  • Là một chiến lược ngắn hạn, có một số ngẫu nhiên với đường cong lợi nhuận dao động
  • Chỉ số VR có thể không xác định chính xác những người chơi chính
  • Cần phải lựa chọn các sản phẩm cơ bản phù hợp.

Ngoài ra, nên tránh giao dịch quá mức, dừng lỗ nên được thiết lập để kiểm soát lỗ duy nhất, v.v.

Các đề xuất tối ưu hóa

Có chỗ cho việc tối ưu hóa thêm chiến lược đảo ngược VR. Các đề xuất chính là:

  • Kết hợp nhiều chỉ số để đánh giá để tránh thất bại VR
  • Thêm logic dừng lỗ, có thể tham khảo chỉ số ATR để thiết lập phạm vi dừng lỗ
  • Tối ưu hóa các tham số, đặc biệt là tham số chu kỳ dài cho các chu kỳ và sản phẩm khác nhau
  • Điều chỉnh ngưỡng VR tích cực và tiêu cực dựa trên kết quả backtest để đảm bảo độ bền

Kết luận

Chiến lược giao dịch đảo ngược VR là một chiến lược định lượng ngắn hạn đơn giản, dễ thực hiện. Nó nắm bắt các cơ hội đảo ngược bằng cách bắt tín hiệu của các cầu thủ chính. Chiến lược này đặc biệt phù hợp với các sản phẩm biến động có đảo ngược rõ ràng, nhưng cũng cần kiểm soát rủi ro. Tăng cường thêm có thể làm cho chiến lược mạnh mẽ hơn và lọc ra nhiều tín hiệu sai hơn.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title="Volume Ratio_30min", shorttitle="VR_30min")//,initial_capital=1000)

// User Input ------------------------------------------------------------------
len = input(20, title="Length", minval=1)
threshold  = input(3,step=0.05, title="閾値")

// Volume Caliculetion ---------------------------------------------------------
vol = volume
sma=sma(volume,len)
vrs = vol / sma

// Direction -------------------------------------------------------------------
dirtime=input(1,"direction picker # bars")
dir=if close/close[dirtime] > 1
    1
else
    -1

// Plot ------------------------------------------------------------------------
plot(vrs, title="VRS",  color=color.green, transp=0)
hline(1, title="baseline")
plot(threshold, color=color.white)

// ️⚠️⚠️Logic -----------------------------------------------------------------

long    = vrs > threshold  and dir == 1
short   = vrs > threshold  and dir ==-1

// Back Test Fnction -----------------------------------------------------------
start = timestamp(input(2019, "Start Year"), input(1, "Start Month"), input(1, "Start Day"), 0, 0)
end = timestamp(input(9999, "End Year"), input(1, "End Month"), input(1, "End Day"), 0, 0)
_testPeriod() => true

// Order -----------------------------------------------------------------------
if _testPeriod()
    if long
        strategy.entry("Long", strategy.long)
    if short
        strategy.entry("Short", strategy.short)


Thêm nữa