Chiến lược giao dịch đảo ngược biến thể

Tác giả:ChaoZhang, Ngày: 2023-10-31 14:42:13
Tags:

img

Tổng quan

Chiến lược giao dịch đảo ngược biến thể tạo ra tín hiệu giao dịch bằng cách tính tỷ lệ giữa các tùy chọn gọi và đặt, còn được gọi là tỷ lệ đặt gọi. Khi tỷ lệ đảo ngược, nó kích hoạt các giao dịch kết hợp với các quy tắc quản lý tiền đơn giản để thực hiện lợi nhuận. Nó phù hợp với các khoảng thời gian 30 phút của NDX và SPX. Sự dao động cần phải được điều chỉnh để phản ánh điểm đảo ngược chính xác. Kết quả kiểm tra ngược vững chắc chỉ ra điểm đảo ngược tối ưu.

Chiến lược logic

Các chỉ số cốt lõi của chiến lược này là trung bình di chuyển và độ lệch chuẩn của tỷ lệ gọi / đặt. Nó đầu tiên tính toán trung bình di chuyển 20 ngày của tỷ lệ gọi / đặt, sau đó tính toán độ lệch chuẩn 30 ngày của tỷ lệ. Một tín hiệu dài được kích hoạt khi tỷ lệ vượt quá mức trung bình di chuyển cộng với độ lệch chuẩn 1.5. Một tín hiệu ngắn được kích hoạt khi tỷ lệ giảm xuống dưới mức trung bình di chuyển trừ độ lệch chuẩn 1.5.

Sau khi mua mua, nếu tỷ lệ phục hồi trở lại trên đường trung bình động, hãy đóng vị trí mua. Stop loss được đặt ở mức 1% dưới giá nhập. Take profit được đặt ở khoảng cách 3 lần stop loss so với giá nhập.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là nắm bắt các điểm đảo ngược tinh thần khi thị trường trở nên quá bi quan hoặc tăng giá, gây ra sự bất thường trong tỷ lệ gọi / đặt. Giao dịch chống lại những bất thường như vậy có thể kiếm lợi từ sự đảo ngược địa phương. Các quy tắc quản lý tiền có hiệu quả hạn chế rủi ro và lợi nhuận của các giao dịch cá nhân.

Phân tích rủi ro

Rủi ro lớn nhất đến từ việc điều chỉnh tham số không đúng cách. Các tín hiệu quá thường xuyên không thể bắt được những sự đảo ngược đáng kể. Các tín hiệu đảo ngược cũng có thể bị giả mạo bởi các sự đột phá sai, gây ra tổn thất. Các tham số nên được tối ưu hóa cho các tín hiệu đáng tin cậy hơn.

Tối ưu hóa

Xem xét thêm các bộ lọc để xác nhận tín hiệu đảo ngược và tránh đột phá sai. Ví dụ, chỉ xem xét các tín hiệu khi khối lượng khuếch đại. Các bộ lọc xu hướng cũng có thể tránh giao dịch ngược xu hướng. Các thông số tối ưu có thể khác nhau trên các thị trường và khung thời gian khác nhau. Kết hợp nhiều yếu tố sẽ làm cho chiến lược mạnh mẽ hơn.

Kết luận

Chiến lược này nhằm mục đích nắm bắt các điểm đảo ngược thị trường bằng cách sử dụng tỷ lệ gọi / đặt với các quy tắc quản lý tiền cơ bản. Nó có thể kiếm lợi từ các sự đảo ngược tại địa phương nhưng phải đối mặt với rủi ro phá vỡ sai. Tối ưu hóa các tham số, thêm bộ lọc và tích hợp nhiều yếu tố hơn có thể tăng cường sự ổn định và lợi nhuận của nó. Nhìn chung, nó cung cấp một hướng để đảo ngược thương mại dựa trên tâm lý thị trường.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © I11L

//@version=5
strategy("I11L Long Put/Call Ratio Inversion", overlay=false, pyramiding=1, default_qty_value=10000, initial_capital=10000, default_qty_type=strategy.cash)

SL = input.float(0.01,step=0.01)
CRV = input.float(3)
TP = SL * CRV

len = input.int(30,"Lookback period in Days",step=10)
ratio_sma_lookback_len = input.int(20,step=10)
mult = input.float(1.5,"Standard Deviation Multiple")

ratio_sma = ta.sma(request.security("USI:PCC","D",close),ratio_sma_lookback_len)

median = ta.sma(ratio_sma,len)
standartDeviation = ta.stdev(ratio_sma,len)
upperDeviation = median + mult*standartDeviation
lowerDeviation = median - mult*standartDeviation


isBuy = ta.crossunder(ratio_sma, upperDeviation)// and close < buyZone
isCloseShort = (ratio_sma > median and strategy.position_size < 0)
isSL = (strategy.position_avg_price * (1.0 - SL) > low and strategy.position_size > 0) or (strategy.position_avg_price * (1.0 + SL) < high and strategy.position_size < 0)
isSell = ta.crossover(ratio_sma,lowerDeviation) 
isTP = strategy.position_avg_price * (1 + TP) < high

if(isBuy)
    strategy.entry("Long", strategy.long)

if(isCloseShort)
    strategy.exit("Close Short",limit=close)

if(isSL)
    strategy.exit("SL",limit=close)

if(isTP)
    strategy.exit("TP",limit=close)
    
plot(ratio_sma,color=color.white)
plot(median,color=color.gray)
plot(upperDeviation,color=color.rgb(0,255,0,0))
plot(lowerDeviation,color=color.rgb(255,0,0,0))

bgcolor(isBuy?color.rgb(0,255,0,90):na)
bgcolor(isSell?color.rgb(255,0,0,90):na)


Thêm nữa