
Bài viết này sẽ phân tích chi tiết một chiến lược giao dịch đảo ngược dựa trên các điểm trung tâm. Chiến lược này xác định các mức hỗ trợ và kháng cự trung tâm có thể bằng cách tính toán giá cao nhất và giá thấp nhất trong một chu kỳ nhất định. Khi giá vượt qua các điểm trung tâm này, cho thấy xu hướng đảo ngược, thì có thể thực hiện giao dịch đảo ngược.
Chiến lược này chủ yếu dựa trên hai chỉ số: Pivot High và Pivot Low. Pivot High và Low là giá cao nhất và giá thấp nhất trong một chu kỳ, có thể được thực hiện bằng cáchpivothigh()Vàpivotlow()Tính toán hàm có được △ khi tính toán điểm trung tâm cần thiết phải đặt số chu kỳ ở cả hai bên trái và trái. Trong chiến lược này, số chu kỳ bên trái là 4 và số chu kỳ bên phải là 2.
Khi điểm cao nhất của chu kỳ mới nhất thấp hơn điểm cao trục của chu kỳ trước, tín hiệu đảo ngược đã xuất hiện. Nếu trước đây là hoạt động ngắn, bây giờ nên xem xét việc tạo ra cơ hội đảo ngược để tìm kiếm nhiều đầu. Tương tự như vậy, khi điểm thấp nhất của chu kỳ mới nhất cao hơn điểm thấp trục của chu kỳ trước, đầu trống nên được xem xét để xây dựng vị trí đảo ngược.
Các chiến lược này có thể được mô tả như sau:
Lợi thế lớn nhất của chiến lược này là nhận diện các điểm đảo ngược xu hướng tiềm năng, điều này đặc biệt quan trọng đối với các nhà giao dịch đảo ngược. So với các chỉ số khác, các điểm trung tâm có thể đánh giá rõ ràng hơn về kháng cự hỗ trợ và không có tín hiệu sai lệch thường xuyên.
Ngoài ra, chiến lược này cũng tạo ra các điều kiện mua và bán đồng thời, bao gồm tối đa các tình huống thị trường khác nhau, tránh bỏ lỡ cơ hội giao dịch. Kiểm soát rủi ro bằng cách dừng lỗ để đảm bảo tỷ lệ thua lỗ.
Nhìn chung, đây là một chiến lược đảo ngược rất hữu ích.
Mặc dù chiến lược này cố gắng làm giảm khả năng có tín hiệu giả, bất kỳ chiến lược nào dựa trên đột phá đều có thể xảy ra trường hợp có tín hiệu vượt trội hoặc tín hiệu quá muộn. Điều này có thể dẫn đến việc lên kế hoạch để tạo vị trí nhiều đầu nhưng thị trường đã bắt đầu giảm, hoặc lên kế hoạch để tạo vị trí trống nhưng thị trường bò đột ngột bùng nổ.
Ngoài ra, các điểm trung tâm không thể xác định một trăm phần trăm các vị trí kháng cự hỗ trợ quan trọng, chỉ để tham khảo. Nếu không may mắn, các điểm trung tâm có thể chỉ cần bỏ lỡ các vị trí hỗ trợ thực sự hình thành.
Tối ưu hóa chu kỳ: Số chu kỳ bên trái và bên phải hiện tại được đặt là 4 và 2, đây có thể là thiết lập ban đầu. Tuy nhiên, các trục trục của các chu kỳ khác nhau ở các thị trường khác nhau có thể có hiệu quả tốt hơn, bạn có thể thử tối ưu hóa để tìm ra sự kết hợp tham số tốt nhất.
Kết hợp với các bộ lọc chỉ số khác. Ví dụ: có thể thêm chỉ số khối lượng giao dịch, chỉ khi khối lượng giao dịch lớn hơn, phá vỡ sẽ được coi là hiệu quả, do đó có thể giảm bớt phá vỡ giả.
Hạn chế động lực. Hạn chế hiện tại là khoảng trống cho mỗi đơn vị giao dịch nhỏ nhất trên trục chính. Điều này có thể dựa trên mức độ biến động của thị trường, sử dụng Hạn chế động lực để thử điểm dừng tối ưu.
Chỉ hoạt động theo hướng xu hướng. Bây giờ điều kiện làm nhiều shorting là song song, thực tế, bạn chỉ có thể tìm kiếm cơ hội làm nhiều trong thị trường đa đầu, tìm kiếm cơ hội shorting trong thị trường trống. Kết hợp với chỉ số xu hướng có thể có hiệu quả tốt hơn.
Chiến lược này nói chung là một chiến lược đảo ngược đơn giản và thực tế. Lý tưởng cốt lõi của chiến lược này là để đánh giá sự đảo ngược xu hướng tiềm năng bằng cách tính toán các điểm trung tâm và giám sát sự phá vỡ của chúng.
Nhìn chung, ý tưởng chiến lược này rõ ràng và dễ thực hiện. Thiết lập tham số cũng khá trực tiếp và thân thiện với người mới. Bằng cách liên tục kiểm tra và tối ưu hóa, có thể cải thiện hiệu suất chiến lược theo từng bước, nên được đề xuất.
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Pivot Reversal Strategy", overlay=true)
leftBars = input(4)
rightBars = input(2)
// backtesting date range
from_day = input(defval = 1, title = "From Day", minval = 1)
from_month = input(defval = 3, title = "From Month", minval = 1)
from_year = input(defval = 2018, title = "From Year", minval = 1970)
to_day = input(defval = 1, title = "To Day", minval = 1)
to_month = input(defval = 1, title = "To Month", minval = 1)
to_year = input(defval = 2100, title = "To Year", minval = 1970)
time_cond = (time > timestamp(from_year, from_month, from_day, 00, 00)) and (time < timestamp(to_year, to_month, to_day, 23, 59))
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 and time_cond)
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 and time_cond)
strategy.entry("PivRevSE", strategy.short, comment="PivRevSE", stop=lprice - syminfo.mintick)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)