Chiến lược đảo ngược pivot

Tác giả:ChaoZhang, Ngày: 2023-09-26 17:38:56
Tags:

Tổng quan

Chiến lược đảo ngược trục trặc là một chiến lược giao dịch đột phá kết hợp khái niệm hỗ trợ và mức kháng cự trục trặc. Nó có vị trí đảo ngược khi giá vượt qua mức trục trặc. Chiến lược đơn giản và dễ thực hiện, làm cho nó trở thành một chiến lược giao dịch đột phá ngắn hạn.

Chiến lược logic

Chiến lược đầu tiên tính toán giá cao nhất và thấp nhất trong một khoảng thời gian nhất định (ví dụ: 4 thanh) như mức kháng cự và hỗ trợ trục trục. Sau đó nó theo dõi hành động giá trong thời gian thực và xác định xem giá có phá vỡ các mức trục trục hay không. Cụ thể:

  1. Sử dụng hàm pivothigh để tính giá cao nhất cho kháng cự pivot swh
  2. Sử dụng hàm pivotlow ((() để tính giá thấp nhất cho hỗ trợ pivot swl
  3. Đi ngắn (strategy.short) khi giá phá vỡ trên ngưỡng kháng cự trục
  4. Đi dài (chiến lược. dài) khi giá phá vỡ dưới mức hỗ trợ trục trục

Chiến lược logic là đơn giản và rõ ràng - lấy các vị trí ngược lại khi giá vượt qua mức trọng điểm. Nó cũng kết hợp kiểm soát giờ giao dịch để tránh rủi ro qua đêm.

Phân tích lợi thế

Chiến lược đảo ngược pivot có một số lợi thế:

  1. Ý tưởng chiến lược đơn giản và dễ hiểu cho người mới bắt đầu.
  2. Sử dụng các mức pivot để xác định sự đảo ngược xu hướng là mạnh mẽ chống lại tiếng ồn thị trường ngắn hạn.
  3. Chỉ giao dịch trên các điểm đột phá then chốt tránh tần suất giao dịch quá mức.
  4. Kiểm soát giờ giao dịch giúp tránh rủi ro qua đêm.
  5. Mã ngắn gọn dễ dàng tối ưu hóa.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro cần lưu ý:

  1. Mức pivot không đảm bảo dự đoán xu hướng hoàn hảo và các sự đột phá sai là có thể.
  2. Chỉ có các tín hiệu quan trọng có thể gây ra sự gia nhập sớm. Các chỉ số khác nên xác nhận tín hiệu giao dịch.
  3. Nó không xem xét chế độ thị trường và các đặc điểm cá nhân của cổ phiếu, dẫn đến rủi ro hệ thống.
  4. Sự hỗ trợ và kháng cự mờ mờ làm tăng cơ hội thất bại trong việc phá vỡ.

Để kiểm soát rủi ro, các tối ưu hóa được khuyến cáo bao gồm sử dụng stop loss di chuyển để theo xu hướng chính, ghép hợp cổ phiếu với điều kiện thị trường và giảm tỷ lệ phá vỡ sai.

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

Xem xét các rủi ro, tối ưu hóa trong tương lai có thể tập trung vào:

  1. Tối ưu hóa các thông số pivot như tăng thời gian tính toán để cải thiện tỷ lệ thành công.

  2. Thêm stop loss di chuyển để theo xu hướng chính và giảm rủi ro đảo ngược.

  3. Tích hợp các chỉ số khác như MACD để xác nhận xu hướng và tránh các sự đột phá sai.

  4. Phân loại cổ phiếu theo đặc điểm và thiết lập các tham số duy nhất.

  5. Tối ưu hóa giờ giao dịch cho các thị trường khác nhau như cổ phiếu Mỹ và Hồng Kông.

  6. Xem xét xu hướng thị trường tổng thể cho giao dịch chọn lọc.

Kết luận

Nhìn chung, Chiến lược đảo ngược Pivot là một chiến lược đột phá đơn giản tuyệt vời cho người mới bắt đầu học. Nó xác định mức độ đảo ngược một cách sạch sẽ bằng cách sử dụng các điểm trục. Trong khi rủi ro tồn tại, tối ưu hóa các tham số, dừng lỗ, giờ giao dịch và kết hợp các chỉ số có thể biến nó thành một chiến lược giao dịch ngắn hạn mạnh mẽ.


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

//@version=3
strategy("Pivot Reversal Strategy", overlay=true)

// === BACKTEST RANGE ===
FromMonth = input(defval = 2, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)


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

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)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Thêm nữa