Chiến lược đảo ngược đột phá hai chiều


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

Chiến lược đảo ngược đột phá hai chiều

Tổng quan

Chiến lược đảo ngược phá vỡ hai chiều là một chiến lược giao dịch đảo ngược dựa trên điểm trung tâm giá. Nó xác định thời điểm giá có thể đảo ngược bằng cách phát hiện các điểm cực đoan trong một số lượng bar. Khi giá phá vỡ các điểm cực đoan, hãy thực hiện bước vào đảo ngược.

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

Lập luận cốt lõi của chiến lược đảo ngược hai chiều là:

  1. Sử dụngpivothigh()pivotlow()Chức năng tính giá trị cao nhất và giá trị thấp nhất trong n bar gần nhất làm điểm cực đoan. N được đặt là 4.

  2. Khi điểm cao của thanh mới nhất vượt quá điểm cực đại, chiến lược cho rằng giá có thể đảo ngược, tháo lỗ.

  3. Khi mức thấp của bar mới nhất thấp hơn mức tối thiểu, chiến lược cho rằng giá có thể đảo ngược và mua nhiều hơn. Đặt stop loss dưới mức tối thiểu.

  4. Một khi giá đảo ngược vượt quá điểm cực đoan, tín hiệu trước đó sẽ không có hiệu lực và chờ cơ hội giao dịch tiếp theo.

Bằng cách này, chiến lược nắm bắt cơ hội biến động ngắn hạn của giá khi phá vỡ điểm cực đoan. Đồng thời, thiết lập dừng lỗ có thể kiểm soát rủi ro.

Phân tích lợi thế

Chiến lược đảo ngược hai chiều có những lợi thế sau:

  1. Sellable/round, sử dụng điểm cực đoan để đánh giá điểm đảo ngược.

  2. Nó được sử dụng cho các thị trường có biến động cao như tiền điện tử, có thể nắm bắt cơ hội đảo ngược đường ngắn.

  3. Các quy tắc tương đối đơn giản và dễ hiểu.

  4. Chỉ có 10% rút lui, rủi ro được kiểm soát.

  5. Lợi nhuận lên đến 350% và tỷ lệ Sharp trên 1.

Phân tích rủi ro

Chiến lược đảo ngược hai chiều có những rủi ro sau:

  1. Thị trường có xu hướng tiếp tục có nhiều lần dừng lỗ nhỏ.

  2. Điểm cực đoan không nhất thiết phải là điểm đảo ngược, có nguy cơ bị lỡ đảo ngược hoặc không đủ đảo ngược.

  3. Sau khi vượt qua điểm cực đoan, không có gì đảm bảo ngay lập tức đảo ngược, có nguy cơ truy lùng lỗ.

  4. Chỉ yêu cầu cực đại của 4 bar gần đây nhất, khoảng mẫu có thể quá nhỏ.

  5. Không tính đến tính thanh khoản của thị trường, việc nhập khẩu lớn có thể gây ra tác động đến giá cả.

  6. Các nhà khoa học đã phát hiện ra rằng các kết quả này có tác dụng lâu dài.

Hướng tối ưu hóa

Chiến lược đảo ngược đột phá hai chiều có thể được tối ưu hóa bằng cách:

  1. Tăng khoảng thời gian điểm cực đoan để tránh mẫu quá nhỏ. Bạn có thể đặt khoảng thời gian động.

  2. Sau khi vượt qua điểm cực, chờ tín hiệu xác nhận bổ sung để tránh phá vỡ giả. Ví dụ: thêm nhiều, MACD lệch và vân vân.

  3. Đổi vị trí đầu vào theo biến động của thị trường.

  4. Kết hợp với các chỉ số xu hướng, để tránh bị dừng lại trong xu hướng.

  5. Thêm chiến lược di chuyển đường dừng để dừng theo dõi lợi nhuận.

  6. Các tham số thử nghiệm cho các giống khác nhau, thiết lập tham số tối ưu.

  7. Thêm thời gian phản hồi dài hơn và dữ liệu kỳ hạn để xác minh tính ổn định của chiến lược.

Tóm tắt

Chiến lược đảo ngược phá vỡ hai chiều sử dụng các điểm giá cực đoan để xác định thời gian đảo ngược và có thể nắm bắt cơ hội ngắn hạn trong thị trường biến động cao. Các lợi thế là quy tắc đơn giản, rút lui thấp, lợi nhuận cao.

Mã nguồn chiến lược
/*backtest
start: 2023-10-16 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("QuantNomad - Pivot Reversal Strategy - XBTUSD - 1h", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 50)

// 
// author: QuantNomad
// date: 2019-06-01
// Pivot Reversal Strategy - XBTUSD - 1h
// https://www.tradingview.com/u/QuantNomad/
// https://t.me/quantnomad
//

leftBars  = input(4)
rightBars = input(4)

swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)

swh_cond = not na(swh)

hprice = 0.0
hprice := swh_cond ? swh : hprice[1]

le = false
le := swh_cond ? true : (le[1] and high > hprice ? false : le[1])

if (le)
    strategy.entry("PivRevLE", strategy.long, comment="PivRevLE", stop=hprice + syminfo.mintick)

swl_cond = not na(swl)

lprice = 0.0
lprice := swl_cond ? swl : lprice[1]


se = false
se := swl_cond ? true : (se[1] and low < lprice ? false : se[1])

if (se)
    strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)