Một chiến lược phá vỡ đà

Tác giả:ChaoZhang, Ngày: 2023-10-09 15:15:22
Tags:

Tổng quan

Đây là một chiến lược giao dịch trong ngày sử dụng các chỉ số động lực và các mức hỗ trợ / kháng cự chính cho giao dịch đột phá. Nó kết hợp chỉ số Choppiness để xác định xu hướng và chỉ giao dịch khi xu hướng rõ ràng, để kiểm soát rủi ro.

Chiến lược logic

Chiến lược này sử dụng chỉ số Choppiness để xác định xu hướng. Giá trị Choppiness thấp cho thấy xu hướng rõ ràng trong khi giá trị cao cho thấy hợp nhất. Chiến lược chỉ giao dịch khi Choppiness dưới 44.

Đối với các tín hiệu nhập cảnh, nó tính toán các mức hỗ trợ / kháng cự nội ngày chính bao gồm H4, H5 vv. Nó đi dài khi giá đóng trên H4 và đi ngắn khi giá đóng dưới L4.

Cụ thể, nó tính toán các mức trong ngày sau:

  • Pivot = (cao + thấp + đóng) / 3
  • Phạm vi = cao - thấp
  • H1-H6 = Pivot + Range * Tỷ lệ
  • L1-L6 = Pivot - Range * Ratio

Sau khi tính toán các mức này, nó sử dụng H4 và L4 như các mức đột phá chính.

Khi giá phá vỡ trên H4, nó báo hiệu tăng động lực tăng và chiến lược đi dài. Khi giá phá vỡ dưới L4, nó báo hiệu tăng động lực giảm và chiến lược đi ngắn.

Phân tích lợi thế

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

  1. Sử dụng Choppiness để xác định xu hướng rõ ràng tránh những thất bại trong việc hợp nhất.

  2. Các mức hỗ trợ / kháng cự được tính toán thường có ý nghĩa.

  3. Khoảng thời gian dừng giao dịch của H4 và L4 gần giá đóng nắm bắt các khoảng thời gian dừng giao dịch trong ngày quan trọng.

  4. Các tín hiệu Breakout có tỷ lệ thắng rất cao.

  5. Logic đơn giản và rõ ràng, dễ hiểu và thực hiện cho người mới bắt đầu.

Phân tích rủi ro

Những rủi ro của chiến lược này bao gồm:

  1. Việc dựa vào Choppiness để xác định xu hướng có thể thất bại và hiểu sai xu hướng.

  2. Mức được tính toán có thể không giữ và giá có thể phá vỡ, gây ra dừng.

  3. Các tín hiệu đột phá có thể là những đột phá sai với sự đảo ngược nhanh chóng.

  4. Không xem xét xu hướng tổng thể, tổn thất có thể tích lũy trong thị trường hỗn loạn.

  5. Không có lỗ dừng có nghĩa là lỗ thương mại đơn lớn là có thể trong các động thái cực đoan.

Giải pháp:

  1. Thêm các chỉ số khác để xác nhận chéo và cải thiện độ chính xác.

  2. Thực hiện di chuyển dừng lỗ để kiểm soát lỗ giao dịch duy nhất.

  3. Kết hợp bộ lọc xu hướng dài hạn để tránh giao dịch ngược xu hướng.

  4. Thêm tín hiệu nhập cảnh để tránh đuổi theo những kẻ trốn thoát giả.

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

Chiến lược này có thể được tối ưu hóa thêm bằng cách:

  1. Tối ưu hóa các thông số Choppiness để tìm ra các giá trị tốt hơn.

  2. Kiểm tra các mức độ thoát khác nhau như H3 và L3 để có hiệu quả tốt hơn.

  3. Thêm stop loss di chuyển để bảo vệ lợi nhuận và kiểm soát rủi ro.

  4. Thêm tín hiệu nhập cảnh để tránh tổn thất từ các vụ phá vỡ giả.

  5. Tích hợp bộ lọc xu hướng dài hạn để tránh giao dịch ngược xu hướng.

  6. Tối ưu hóa thời gian giao dịch như chỉ giao dịch phiên Mỹ hoặc châu Âu.

  7. Thêm các quy tắc kích thước vị trí như số lượng cố định hoặc tỷ lệ phần trăm cố định.

  8. Phân tích dữ liệu backtest để điều chỉnh các tham số.

Kết luận

Tóm lại, ý tưởng cốt lõi là giao dịch breakout sau khi xác định xu hướng. Nó có logic đơn giản và tỷ lệ thắng tốt. Nhưng rủi ro tồn tại và cần phải tinh chỉnh thêm để kiểm soát rủi ro và cải thiện lợi nhuận. Với điều chỉnh tham số, dừng lỗ, bộ lọc xu hướng vv nó có thể trở thành một hệ thống breakout trong ngày rất thực tế. Nó cung cấp một khuôn khổ breakout động lực là một chiến lược giao dịch trong ngày hiệu quả.


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

//@version=4
//Created by AS
strategy(title="ASH1Strategy", shorttitle="AS_H1_Strategy", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,3)

pivot = (high + low + close ) / 3.0 
range = high - low
h5 = (high/low) * close 
h4 = close + (high - low) * 1.1 / 2.0
h3 = close + (high - low) * 1.1 / 4.0
h2 = close + (high - low) * 1.1 / 6.0
h1 = close + (high - low) * 1.1 / 12.0
l1 = close - (high - low) * 1.1 / 12.0
l2 = close - (high - low) * 1.1 / 6.0
l3 = close - (high - low) * 1.1 / 4.0
l4 = close - (high - low) * 1.1 / 2.0
h6 = h5 + 1.168 * (h5 - h4) 
l5 = close - (h5 - close)
l6 = close - (h6 - close)

// Daily line breaks
//sopen = request.security(syminfo.tickerid, "D", open [1])
//shigh = request.security(syminfo.tickerid, "D", high [1])
//slow = request.security(syminfo.tickerid, "D", low [1])
//sclose = request.security(syminfo.tickerid, "D", close [1])
//
// Color
//dcolor=sopen != sopen[1] ? na : black
//dcolor1=sopen != sopen[1] ? na : red
//dcolor2=sopen != sopen[1] ? na : green

//Daily Pivots 
dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) 
dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1]) 
dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1]) 
dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1]) 
dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1]) 
dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1]) 
dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1]) 
dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1]) 
dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1]) 
dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1]) 
dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1]) 
dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1]) 
dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1]) 

//offs_daily = 0
//plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2)
//plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2)
//plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2)
//plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2)
//plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3)
//plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2)
//plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2)
//plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2)
//plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3)
//plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2)
//plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2)
//plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2)

longCondition = close >dtime_h4
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)
    


shortCondition = close <dtime_l4
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)
    


Thêm nữa