Chiến lược đột phá xu hướng dựa trên độ lệch trung bình động

Tác giả:ChaoZhang, Ngày: 2023-10-23 15:38:37
Tags:

img

Tổng quan

Chiến lược này xác định xu hướng thị trường và cơ hội đảo ngược bằng cách tính toán độ lệch của giá so với đường trung bình di chuyển trơn tru. Nó thuộc về các chiến lược theo xu hướng dựa trên sự phá vỡ của đường trung bình di chuyển. Ý tưởng cốt lõi là mua hoặc bán khi giá vượt qua đường trung bình di chuyển trơn tru.

Chiến lược logic

  1. Tính toán trung bình động cân nhắc 3 giai đoạn của giá FPrice dưới dạng đường MA trơn.

  2. Tính toán đường lệch chuẩn 17 ngày stdev và đường trung bình di chuyển đơn giản 17 ngày ema2 của FPrice.

  3. Tính toán tỷ lệ lệch của giá từ trung bình như (FPrice-ema2) /stdev.

  4. Khi Rate1 giảm xuống dưới -1 và bắt đầu tăng, nó báo hiệu một sự đột phá dưới đường xu hướng giảm và tạo ra một tín hiệu mua.

  5. Khi Rate1 tăng trên 1 và bắt đầu giảm, nó báo hiệu một sự đột phá trên đường xu hướng tăng và tạo ra một tín hiệu bán.

  6. Mở hoặc đóng vị trí theo tín hiệu.

Chiến lược này sử dụng phạm vi lệch chuẩn của sự lệch giá từ MA để xác định sự đảo ngược xu hướng. Bằng cách điều chỉnh động phạm vi tham chiếu, nó thích nghi với sự biến động của thị trường. Khi giá vượt ra khỏi MA hơn một lệch chuẩn, nó kích hoạt tín hiệu giao dịch. Điều này có hiệu quả lọc ra tiếng ồn thị trường ngắn hạn và bắt sự thay đổi xu hướng trung và dài hạn.

Phân tích lợi thế

  1. Phạm vi tham chiếu năng động tự động thích nghi với sự biến động của thị trường.

  2. MA trơn tru lọc ra tiếng ồn ngắn hạn hiệu quả.

  3. Khái lệch chuẩn đặt ra ngưỡng thoát hợp lý và tránh quá mức giao dịch.

  4. Bộ lọc động lực ngăn chặn các sự đột phá giả.

  5. Logic chiến lược đơn giản và rõ ràng, dễ hiểu và thực hiện.

  6. Các thông số có thể được điều chỉnh cho các công cụ giao dịch khác nhau.

  7. Nó có thể được kết hợp với các chỉ số khác để cải thiện hiệu suất.

Phân tích rủi ro

  1. Có thể có ít cơ hội giao dịch hơn trong thời gian biến động thấp kéo dài.

  2. Các thông số sai lệch chuẩn có thể dẫn đến việc bỏ lỡ các giao dịch tốt hoặc tạo ra các tín hiệu sai quá mức.

  3. Phản lệch chuẩn có thể thất bại trong các biến động giá cực đoan, gây ra các tín hiệu sai.

  4. Có thể xảy ra nhiều đột phá sai hơn xung quanh các chuyển đổi xu hướng.

  5. Các hệ thống MA đã bị chậm trễ trong việc phát hiện các ca chuyển ngắn hạn.

  6. Các thông số và bộ lọc cần phải được điều chỉnh đúng cách cho môi trường thị trường cụ thể.

Hướng dẫn cải thiện

  1. Tối ưu hóa ngày và loại MA dựa trên các đặc điểm của thiết bị.

  2. Điều chỉnh nhân độ lệch chuẩn để tìm phạm vi tham chiếu tối ưu.

  3. Thêm bộ lọc động lực giá để giảm tín hiệu sai.

  4. Kết hợp các chỉ số biến động để điều chỉnh các tham số theo biến động một cách năng động.

  5. Kết hợp với các chiến lược đột phá tương tự khác để cải thiện tỷ lệ thắng.

  6. Xem xét giảm kích thước vị trí xung quanh các điểm chuyển hướng để quản lý rủi ro.

  7. Thêm stop loss để kiểm soát lỗ giao dịch duy nhất.

Kết luận

Chiến lược có logic rõ ràng để xác định sự đảo ngược xu hướng. Với điều chỉnh tham số và sự kết hợp, nó có thể được điều chỉnh cho các thị trường khác nhau. Nhưng quản lý rủi ro là rất quan trọng để tránh tín hiệu sai trong thời kỳ biến động cao. Nếu được tối ưu hóa đúng cách, nó là một hệ thống theo xu hướng đơn giản và thực tế.


/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 4h
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/
// © Mustafaozver

//@version=4
strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)
//strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)

src = input(ohlc4,"Source")
FPrice = wma(src,3)
len = input(17,"Length")

stdev = stdev(FPrice,len)
ema2 = ema(FPrice,len)

Rate1 = (FPrice - ema2) / stdev
//bgcolor(color=((stdev/ema)>0.0015)?color.green:#00000000,transp=80)

colorG = color.lime
colorR = color.red

hline(0,linestyle=hline.style_solid,editable=false)
hline1=hline(1,linestyle=hline.style_dotted,editable=false)
hlinen1=hline(-1,linestyle=hline.style_dotted,editable=false)
fill(hline1,hlinen1,color=color.silver,transp=85,editable=true)

//plot(Rate,color=(Rate>0?colorG:colorR),transp=75,style=plot.style_area,editable=false)

plot(Rate1,title="ESC1",color=(Rate1>0?colorG:colorR),style=plot.style_line,linewidth=1,editable=true)

BUYSIGNAL = Rate1 < -1 and change(Rate1) > 0
SELLSIGNAL = Rate1 > 1 and change(Rate1) < 0

if (BUYSIGNAL)
    strategy.order("LONG1",true)
    //strategy.close("SHORT1")

if (SELLSIGNAL)
   // strategy.order("SHORT1",false)
    strategy.close("LONG1")

Thêm nữa