Chiến lược xu hướng phá vỡ hỗ trợ kháng động

Tác giả:ChaoZhang, Ngày: 2023-12-26 15:21:45
Tags:

img

Tổng quan

Chiến lược này đánh giá hướng xu hướng dựa trên sự phá vỡ hỗ trợ / kháng cự dài hạn và đi vào vị trí khi hỗ trợ / kháng cự bị phá vỡ. Nó sử dụng zigzag để xác định đỉnh và thung lũng, xác nhận đỉnh / thung lũng với 2 thanh, do đó có sự chậm trễ 2 thanh. Nó tính toán sự khác biệt giữa SMA của đỉnh và thung lũng trong một khoảng thời gian xác định (21 theo mặc định) như mức SR thay thế. Ý tưởng này đến từ chỉ số Nebula-Advanced-Dynamic-Support-Resistance của synapticEx. Nó đi dài khi kháng cự bị phá vỡ và đi ngắn khi hỗ trợ bị phá vỡ.

Chiến lược logic

Chiến lược sử dụng logic sau đây để xác định xu hướng và tín hiệu giao dịch:

  1. Xác nhận đỉnh/thung lũng bằng cách chập chững: khi trong 5 thanh cuối cùng, thanh 5 đỉnh < thanh 4 đỉnh < thanh 3 đỉnh > thanh 2 đỉnh > thanh 1 đỉnh, thanh 3 thung lũng được xác nhận là thung lũng thấp nhất. xác nhận đỉnh cao nhất tương tự.

  2. Tính toán số đỉnh hn và thung lũng ln trong một khoảng thời gian xác định (mục tiêu 21). Nếu hn>0 và ln>0, tính toán mức trung bình của đỉnh hsum/hn và mức trung bình của thung lũng lsum/ln. Sự khác biệt r của chúng được sử dụng làm mức SR thay thế.

  3. So sánh giá đóng với ngưỡng kháng cự động và ngưỡng hỗ trợ để xác định hướng xu hướng.

  4. Đi dài khi phá vỡ kháng cự hợp lệ xảy ra. Đi ngắn khi phá vỡ hỗ trợ hợp lệ xảy ra.

Phân tích lợi thế

Những lợi thế của chiến lược này:

  1. Sử dụng zigzag để xác nhận SR cung cấp độ chính xác, tránh phá vỡ sai.

  2. SR dựa trên thống kê dài hạn có giá trị hơn để giảm rủi ro.

  3. SR thay thế cải thiện tính hợp lệ của tín hiệu đột phá.

  4. Lý thuyết đơn giản và dễ hiểu, phù hợp với giao dịch lượng tử.

  5. Thời gian thống kê có thể tùy chỉnh phù hợp với các chu kỳ và sản phẩm khác nhau.

Phân tích rủi ro

Rủi ro của chiến lược này:

  1. 2 bar lag với zigzag có thể bỏ lỡ điểm đầu vào tốt nhất.

  2. Dự đoán SR chỉ để tham khảo, sự đột quỵ bất thường vẫn có thể xảy ra.

  3. Thời gian thống kê không chính xác dẫn đến SR không hợp lệ.

  4. Giá giảm sau khi phá vỡ có thể kích hoạt dừng lỗ.

  5. Sự dao động giá mạnh mẽ sau khi nhập khẩu mang lại tổn thất lớn hơn.

Các giải pháp là:

  1. Giảm thời gian thống kê một cách thích hợp để giảm sự chậm trễ.

  2. Kết hợp nhiều yếu tố để dự đoán SR.

  3. Độ ổn định thử nghiệm của các khoảng thời gian khác nhau.

  4. Đặt mức dừng lỗ hợp lý.

  5. Sử dụng kích thước vị trí để hạn chế tổn thất đơn.

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

Chiến lược có thể được tối ưu hóa từ các khía cạnh dưới đây:

  1. Sử dụng máy học để dự đoán SR, cải thiện tỷ lệ thành công của tín hiệu đột phá.

  2. Kết hợp khối lượng CONF để xác nhận tính hợp lệ của tín hiệu đột phá.

  3. Phân loại thống kê về SR dựa trên các chu kỳ khác nhau, cải thiện hiệu quả của SR.

  4. Thêm vị trí trên lợi nhuận, đặt dấu dừng để cân bằng lợi nhuận/mất.

  5. Kết hợp MA để xác định xu hướng, tránh mù quáng dài / ngắn mà không có xu hướng.

Kết luận

Tóm lại, đây là một chiến lược theo xu hướng mạnh mẽ. Nó có độ chính xác cao trong việc xác định hướng xu hướng và kiểm soát rủi ro thích hợp. Nhưng sự chậm trễ làm cho không thể kiếm lợi từ mọi tín hiệu dài / ngắn. Vì vậy, nó phù hợp với các nhà giao dịch lượng giàu kinh nghiệm để kết hợp với các chiến lược của riêng họ. Bằng cách tối ưu hóa các giai đoạn thống kê và tích hợp các chỉ số hoặc mô hình khác, nó có thể trở thành một chiến lược theo xu hướng hiệu quả.


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

//@version=4
strategy("SR TREND STRATEGY", shorttitle="SR TREND", overlay=true, calc_on_order_fills=true)
//based on by synapticEx SR indicator https://www.tradingview.com/script/O0F675Kv-Nebula-Advanced-Dynamic-Support-Resistance/
length = input(title="SR lookbak length", type=input.integer, defval=21)
h = bar_index>5 and high[5]<high[4] and high[4]<high[3] and high[3]>high[2] and high[2]>high[1] ? 1 : 0
l = bar_index>5 and low[5]>low[4]   and low[4]>low[3]   and low[3]<low[2]   and low[2]<low[1]   ? 1 : 0
ln = sum(l, length)
hn = sum(h, length)
hval =  h>0 ? high[3] : 0
lval =  l>0 ? low[3]  : 0
lsum = sum(lval, length)
hsum = sum(hval, length)
r = ln>0 and hn>0 ? abs((hsum/hn) - (lsum/ln)): 0
float lvalc = na
float lvalr = na
float hvalc = na
float hvalr = na
lvalc := lval and r>0 ? lval   : lvalc[1]
lvalr := lval and r>0 ? lval+r : lvalr[1]
hvalc := hval and r>0 ? hval   : hvalc[1]
hvalr := hval and r>0 ? hval-r : hvalr[1]
int trend=0
trend:=close > lvalr and close > hvalr ? 1 : close < lvalr and close < hvalr ? -1 : trend[1]
strategy.close("Long", when=trend==-1)
strategy.close("Short", when=trend==1)
strategy.entry("Long", strategy.long, when=trend==1 and close>hvalc)
strategy.entry("Short", strategy.short, when=trend==-1 and close<lvalc)
int long=0
int short=0
long:= trend==1 and close>hvalc ? 1 : trend==-1 ? -1 : long[1]
short:= trend==-1 and close<lvalc ? 1 : trend==1 ? -1 : short[1]
barcolor(long>0? color.green : short>0? color.red : trend>0? color.white: trend<0 ? color.orange : color.blue)

Thêm nữa