Chiến lược chỉ báo biến động DEMA


Ngày tạo: 2023-10-24 16:04:37 sửa đổi lần cuối: 2023-10-24 16:04:37
sao chép: 1 Số nhấp chuột: 677
1
tập trung vào
1617
Người theo dõi

Chiến lược chỉ báo biến động DEMA

Tổng quan

Chiến lược này sử dụng phương pháp DEMA để tính toán biến động của giá cả và xử lý lại để phát hiện xu hướng biến động của giá, làm nhiều khi biến động tăng và làm giảm khi biến động giảm.

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

  1. Tính toán giá theo đường trung bình di chuyển hai chỉ số ((DEMA), với công thức: DEMA = 2*EMA(price, N) - EMA(EMA(price, N), N)

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

  3. Một lần nữa xử lý DEMA để thu được tín hiệu xu hướng của biến động

  4. Khi biến động sau khi làm mịn lại vượt qua một mức độ nào đó, hãy làm nhiều hơn; Khi biến động sau khi làm mịn lại vượt qua một mức độ nào đó, hãy làm trống

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

Lợi thế chiến lược

  1. Sử dụng đường trung bình di chuyển hai chỉ số để nắm bắt xu hướng thay đổi giá nhanh hơn

  2. Tỷ lệ biến động có thể phản ánh cảm xúc của thị trường, tăng tỷ lệ biến động có nghĩa là nhiều người chiếm ưu thế, giảm là người chiếm ưu thế

  3. Phương pháp này có thể được sử dụng để lọc tiếng ồn ngắn hạn và nắm bắt các xu hướng chính.

  4. Có thể thiết lập chỉ giao dịch trong một khoảng thời gian nhất định để tránh mất điểm trượt không cần thiết

  5. Sử dụng chiến lược dừng lỗ, thoát sân, kiểm soát rủi ro

Rủi ro chiến lược

  1. DEMA có thể bị chậm trễ trong thời gian cao điểm, do đó bỏ lỡ vị trí đầu vào tốt nhất.

  2. Chỉ số biến động có thể bị phá vỡ giả, nên được xác minh kết hợp với các chỉ số khác

  3. nên thiết lập điểm dừng lỗ để ngăn chặn tổn thất mở rộng

  4. Nếu bạn không tham gia, bạn sẽ bỏ lỡ cơ hội giao dịch.

  5. Lựa chọn khoảng thời gian giao dịch cần được kiểm tra dựa trên dữ liệu lịch sử, khoảng thời gian không phù hợp có thể làm giảm lợi nhuận

Giải pháp rủi ro

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

  2. Kết hợp với các chỉ số khác như RSI, MACD

  3. Xác định điểm dừng dựa trên dữ liệu lịch sử và mức lỗ tối đa có thể chịu được

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

  5. Thời gian giao dịch tốt nhất cho các giống khác nhau

Hướng tối ưu hóa chiến lược

  1. Kiểm tra các kết hợp các tham số DEMA khác nhau để tìm ra tham số tốt nhất cho hiệu quả mài mòn

  2. Hãy thử các loại moving average khác như EMA, SMA, và nhiều loại khác.

  3. Đơn giản hóa các chỉ số dao động nhiều lần để tìm ra các tham số phẳng tốt nhất

  4. Thêm các chỉ số phụ để thực hiện xác minh đa yếu tố

  5. Sử dụng các phương pháp như học máy để tự động tối ưu hóa các tham số nhập cảnh và xuất cảnh

  6. Gói tham số tốt nhất để thử nghiệm cho các giống khác nhau

  7. Tăng các chiến lược dừng lỗ và rút lui, kiểm soát rủi ro chặt chẽ

Tóm tắt

Chiến lược này có thể nhanh chóng phát hiện xu hướng thay đổi của tâm trạng thị trường dư thừa bằng cách tính toán tỷ lệ dao động DEMA của giá và làm mịn lại. Khi tỷ lệ dao động tăng, hãy làm nhiều hơn, khi tỷ lệ dao động giảm, hãy làm trống, thực hiện giao dịch theo hướng tiến bộ. Tuy nhiên, chiến lược có thể có các vấn đề như DEMA chậm trễ, phá vỡ giả.

Mã nguồn chiến lược
/*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")