Chiến lược chỉ số biến động của DEMA

Tác giả:ChaoZhang, Ngày: 2023-10-24 16:04:37
Tags:

img

Tổng quan

Chiến lược này sử dụng DEMA để tính biến động giá và làm mịn biến động để phát hiện xu hướng biến động giá, đi dài khi biến động tăng và ngắn khi biến động giảm.

Chiến lược logic

  1. Tính toán DEMA của giá, công thức: DEMA = 2*EMA (giá, N) - EMA (giá, N), N)

  2. Tính toán biến động giá so với DEMA: biến động = (giá - DEMA) / giá * 100%

  3. Áp dụng DEMA làm mịn trên biến động một lần nữa để có được tín hiệu xu hướng của biến động

  4. Khi sự biến động trơn tru vượt qua một mức, hãy mua dài. Khi nó vượt qua dưới, hãy mua ngắn.

  5. Có thể đặt giao dịch chỉ trong một khoảng thời gian cụ thể.

Ưu điểm

  1. DEMA bắt được những thay đổi xu hướng nhanh hơn so với các đường trung bình di chuyển đơn giản.

  2. Sự biến động phản ánh tâm lý thị trường, sự gia tăng biến động đại diện cho sự thống trị của những con bò, giảm đại diện cho những con gấu.

  3. Đơn giản hóa biến động lọc ra tiếng ồn ngắn hạn và nắm bắt xu hướng chính.

  4. Giao dịch trong thời gian cụ thể tránh chi phí trượt không cần thiết.

  5. Các chiến lược dừng lỗ và thoát khỏi rủi ro.

Rủi ro

  1. DEMA có thể bị chậm trễ trong những xu hướng mạnh, bỏ lỡ những điểm xuất phát tốt nhất.

  2. Chỉ số biến động có thể cung cấp tín hiệu sai, nên kết hợp với các chỉ số khác.

  3. Cần thiết lập stop loss để ngăn chặn tổn thất phóng to.

  4. Lỡ cơ hội bên ngoài thời gian giao dịch.

  5. Thời gian giao dịch cần kiểm tra dữ liệu lịch sử, thời gian không phù hợp có thể làm giảm lợi nhuận.

Quản lý rủi ro

  1. Tối ưu hóa các thông số DEMA, sử dụng các giá trị N nhỏ hơn.

  2. Kết hợp các chỉ số khác như RSI, MACD để xác nhận.

  3. Đặt stop loss dựa trên dữ liệu lịch sử và lỗ tối đa được chấp nhận.

  4. Tối ưu hóa lựa chọn thời gian giao dịch.

  5. Kiểm tra thời gian giao dịch tối ưu cho các sản phẩm khác nhau.

Cơ hội gia tăng

  1. Kiểm tra các kết hợp tham số DEMA khác nhau để làm mịn tốt nhất.

  2. Hãy thử các đường trung bình động khác như EMA, SMA.

  3. Việc làm mịn mịn thêm sự biến động với các thông số khác nhau.

  4. Thêm các chỉ số khác cho xác minh đa yếu tố.

  5. Sử dụng máy học để tự động tối ưu hóa các thông số vào và ra.

  6. Kiểm tra các thông số tối ưu riêng biệt cho các sản phẩm khác nhau.

  7. Thêm các chiến lược dừng lỗ và thoát để kiểm soát rủi ro.

Tóm lại

Chiến lược này nắm bắt sự thay đổi xu hướng trong tâm lý thị trường bằng cách tính toán biến động DEMA trơn tru, đi dài khi biến động tăng và ngắn khi giảm. Nhưng sự chậm trễ của DEMA và tín hiệu sai là rủi ro. Các thông số nên được tối ưu hóa, thực hiện dừng lỗ nghiêm ngặt và các chỉ số khác được kết hợp để xác nhận. Nếu sử dụng đúng cách, chiến lược này có thể bắt được sự đảo ngược xu hướng và cung cấp lợi nhuận đầu tư tốt.


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

//@version= 2
strategy("DEMA of DPD Strategy ",shorttitle="DPD% DEMA " ,overlay=false)

buyper =input(-2)
sellper=input(2)

demalen = input(50,title="Dema Length")

e1= ema(close,demalen)
e2=ema(e1,demalen)
demaprice  =   2 * e1 - e2

price=close
demadifper =  ((price-demaprice)/price)*100


OverDemaPer = input(1, title="Band for OverBought")
UnderDemaPer= input(-1,title="Band for OverSold")

band1 = hline(OverDemaPer)
band0 = hline(UnderDemaPer)
zeroline=0
fill(band1, band0, color=green, transp=90)


demalen2 = input(21,title="DEMA to Calculate dema of DPD")
demaofdpd =ema(demadifper,demalen2)
demaofdpd2 =ema(demaofdpd,demalen2)
resultstrategy = 2*demaofdpd - demaofdpd2

plot(resultstrategy,color=blue)


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



if (  crossover(resultstrategy,buyper)  ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( crossunder(resultstrategy,sellper) ) 

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

Thêm nữa