Chiến lược theo dõi biến động và xu hướng qua các khung thời gian dựa trên Williams VIX và DEMA

Tác giả:ChaoZhang, Ngày: 2024-01-23 15:02:30
Tags:

img

Tổng quan

Chiến lược này đầu tiên tính toán chỉ số Williams VIX bằng cách lấy sự khác biệt giữa giá cao nhất và giá thấp nhất trong một khoảng thời gian nhất định chia cho giá cao nhất. Sau đó, kết hợp ý tưởng lệch chuẩn từ Bollinger Bands, nó thiết lập các dải trên và dưới. Đồng thời, nó thiết lập phạm vi lấy lợi nhuận dựa trên tỷ lệ phần trăm trong một khoảng thời gian nhất định. Trong phần đầu tiên, khi giá vượt qua dưới dải trên và thấp hơn chỉ số DEMA, nó đi dài. Khi giá vượt qua trên dải dưới và cao hơn chỉ số DEMA, nó đi ngắn.

Chiến lược logic

Chiến lược này chủ yếu sử dụng chỉ số Williams VIX để đánh giá sự biến động và rủi ro của thị trường, trong khi sử dụng chỉ số DEMA để đánh giá xu hướng giá.

Thứ nhất, công thức tính toán cho chỉ số Williams VIX là:

WVF = ((Highest(close, n) - Low) / (Highest(close, n))) * 100

Trong đó n là khoảng thời gian tham số. Chỉ số này phản ánh sự biến động giữa giá cao nhất và giá thấp nhất trong một khoảng thời gian nhất định. Giá trị càng cao, biến động càng lớn và rủi ro càng cao.

Trên cơ sở này, chiến lược sử dụng ý tưởng của Bollinger Bands. Dải trên được thiết lập là dải giữa + n lần độ lệch chuẩn, và dải dưới được thiết lập là dải giữa - n lần độ lệch chuẩn. Khi giá tiếp cận dải trên, nó chỉ ra sự biến động mở rộng và cơ hội dài; khi giá tiếp cận dải dưới, nó chỉ ra sự biến động co lại và cơ hội ngắn.

Ngoài ra, chiến lược cũng thiết lập phạm vi lợi nhuận dựa trên nguyên tắc phần trăm trong một khoảng thời gian. Ví dụ, phần trăm 90 có nghĩa là giá 90% gần đây nhất trong khoảng thời gian thống kê. Khi giá vượt quá phần trăm này, nó cho thấy sự biến động đã khá lớn và đã đến lúc xem xét lợi nhuận.

Trong chiến lược giao dịch thực tế, nó kết hợp chỉ số DEMA để đánh giá xu hướng. Nó chỉ đi dài khi giá vượt dưới dải trên và thấp hơn DEMA; nó chỉ đi ngắn khi giá vượt trên dải dưới và cao hơn DEMA.

Phân tích lợi thế

Chiến lược này kết hợp chỉ số Williams VIX đánh giá biến động, Bollinger Bands dựa trên độ lệch chuẩn và chỉ số DEMA đánh giá xu hướng, làm cho nó rất toàn diện để nắm bắt hai yếu tố thị trường chính: rủi ro và xu hướng.

Cụ thể, chỉ số Williams VIX kết hợp với các dải BB trên và dưới có thể đưa ra đánh giá rủi ro và biến động; chỉ số DEMA có thể xác định hướng xu hướng giá; cài đặt phạm vi lợi nhuận có thể khóa lợi nhuận và tránh tham lam quá mức.

Do đó, chiến lược này làm rất tốt trong việc nắm bắt rủi ro và xu hướng. Nó không chỉ chọn thời gian vào tốt hơn, mà còn tránh rủi ro đảo ngược khi lợi nhuận hợp lý đã được thực hiện thông qua phạm vi lợi nhuận, làm cho nó trở thành một chiến lược ổn định và bảo thủ.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là chỉ số biến động và chỉ số xu hướng có thể khác nhau. Đó là khi chỉ số Williams VIX cho thấy sự biến động ngày càng tăng và giá đến gần các dải BB trên hoặc dưới, phán đoán của chỉ số DEMA mâu thuẫn với nó. Ví dụ, biến động cho thấy cơ hội dài nhưng DEMA hiển thị xu hướng giảm. Có thể có tổn thất trong các tình huống như thế này.

Ngoài ra, các thiết lập phạm vi lợi nhuận quá bảo thủ cũng có thể làm tổn hại đến lợi nhuận của chiến lược.

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

Chúng ta có thể xem xét làm cho các thông số phạm vi lợi nhuận được điều chỉnh cho các môi trường thị trường khác nhau. Cụ thể, trong các thị trường giới hạn phạm vi, nâng các thông số phần trăm một cách thích hợp để mở rộng phạm vi lợi nhuận. Nhưng trong các thị trường xu hướng rõ ràng, giảm các thông số phần trăm để có lợi nhuận trong thời gian.

Ngoài ra, chúng ta có thể xem xét thêm các chỉ số khác để đánh giá xu hướng.

Kết luận

Chiến lược này sử dụng toàn diện các chỉ số biến động, nguyên tắc lệch chuẩn, đánh giá xu hướng và lợi nhuận để giải quyết rủi ro thị trường và thay đổi xu hướng rất tốt. Nó ổn định và bảo thủ, phù hợp với cổ phần dài hạn. Thông qua tối ưu hóa tham số, sự ổn định và lợi nhuận của chiến lược có thể được tăng thêm.


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

//@version=2

strategy("VIX and DEMA", overlay=false)
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bolinger Band Length")
multupper = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
multlow = input(2.0,minval=1,maxval=5,title="BB STD LOW")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
hp = input(false, title="Show High Range - Based on Percentile and LookBack Period?")
sd = input(false, title="Show Standard Deviation Line?")

wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100

sDevupper = multupper * stdev(wvf, bbl)
sDevlow = multlow *stdev(wvf,bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDevlow
upperBand = midLine + sDevupper

rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl

col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray
price=close 


plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(wvf, title="Williams Vix Fix", style=histogram, linewidth = 4, color=col)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=line, linewidth = 3, color=aqua)

yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)


lengthema = input(50, minval=1)
src = input(close, title="Source")
e1 = ema(src, lengthema)
e2 = ema(e1, lengthema)
dema = 2 * e1 - e2
plot(dema, color=green)


if ((crossunder(wvf,upperBand) ) and (price<dema) ) 
    strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND",  comment="AL")
    
else
    strategy.cancel(id="MMAL")


if   ((( (wvf<lowerBand) ) and  (price>dema) ) ) 

    strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND",  comment="SAT")
else
    strategy.cancel(id="MMSAT")
    
    
    
    

Thêm nữa