Chiến lược hỗ trợ kháng cự

Tác giả:ChaoZhang, Ngày: 2024-02-22 16:07:14
Tags:

img

Tổng quan

Chiến lược này chủ yếu sử dụng giá cao, thấp và đóng của ngày giao dịch trước đó như mức hỗ trợ và kháng cự cho ngày hiện tại. Nó đi dài khi mức kháng cự bị phá vỡ và đi ngắn khi mức hỗ trợ được kiểm tra lại. Nó thuộc về một chiến lược breakout điển hình.

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

Mã đầu tiên xác định một hàm calculateSupportResistance để tính toán mức hỗ trợ và kháng cự, lấy giá cao, thấp và đóng của ngày giao dịch trước như mức hỗ trợ và kháng cự của ngày hiện tại.

Sau đó, trong logic chính, hàm này được gọi để có được ba mức giá này và vẽ chúng.

Trong logic backtesting, nếu giá đóng thấp hơn mức thấp của ngày trước trong khi giá hiện tại cao hơn mức thấp đó tạo thành sự phá vỡ, nó sẽ dài. Nếu giá đóng cao hơn mức cao của ngày trước trong khi giá hiện tại thấp hơn mức cao đó tạo thành sự phá vỡ, nó sẽ ngắn.

Thông qua mô hình đột phá này, sự phán đoán về xu hướng và tạo ra các tín hiệu giao dịch được thực hiện.

Ưu điểm

  1. Sử dụng dữ liệu ngày giao dịch trước để xây dựng mức hỗ trợ và kháng cự của ngày hiện tại, tránh vấn đề tối ưu hóa tham số

  2. Mức hỗ trợ và kháng cự đến từ dữ liệu giao dịch thị trường thực tế, với một số giá trị tham chiếu

  3. Mô hình backtesting đơn giản và trực tiếp, dễ hiểu và thực hiện

  4. Hiển thị trực quan các mức hỗ trợ và kháng cự hình thành nhận thức về giá

  5. Theo dõi thời gian thực của các vụ phá vỡ, bắt kịp thời các cơ hội giao dịch

Rủi ro

  1. Mức hỗ trợ và kháng cự thay đổi theo thời gian, khó xác định tính hợp lệ

  2. Không thể dự đoán hướng xu hướng, nguy cơ không có sự đảo ngược

  3. Dễ bị ảnh hưởng bởi các vụ đột nhập giả, nguy cơ nhập cảnh sớm

  4. Không thể xác định sự tồn tại của sự đột phá, khả năng dừng lỗ sớm

  5. Sự thất bại của hỗ trợ và kháng cự cá nhân có nhiều khả năng hơn trong tình trạng biến động thị trường lớn

Các biện pháp đối phó:

  1. Kết hợp nhiều yếu tố khác nhau để đánh giá tính hợp lệ của sự đột phá

  2. Mở rộng phạm vi dừng lỗ phù hợp để bắt được xu hướng

  3. Mở các vị trí theo lô, giảm tác động của biến động cá nhân

Tối ưu hóa

  1. Thêm thêm dữ liệu lịch sử như đường 5 ngày, 10 ngày để xác định mức

  2. Bao gồm các chỉ số khác như khối lượng để đánh giá tính hợp lệ của sự đột phá

  3. Đặt lệnh dừng lỗ dựa trên biến động thực tế

  4. Tối ưu hóa quản lý vốn, kiểm soát lỗ đơn

Tóm lại

Nhìn chung, đây là một chiến lược đột phá điển hình, đơn giản và trực quan. Bằng cách xây dựng hỗ trợ và kháng cự của ngày hiện tại với dữ liệu ngày trước và kiểm tra lại các mức đột phá của các mức đó cho dài / ngắn. Ưu điểm dễ hiểu và trực tiếp hình dung các mức; nhược điểm là rủi ro đột phá sai và không chắc chắn về sự bền vững.


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Support and Resistance with Backtesting", overlay=true)

// Function to calculate support and resistance levels
calculateSupportResistance() =>
    highPrevDay = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
    lowPrevDay = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)
    closePrevDay = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)
    [highPrevDay, lowPrevDay, closePrevDay]

// Call the function to get support and resistance levels
[supResHigh, supResLow, supResClose] = calculateSupportResistance()

// Plotting support and resistance levels
plot(supResHigh, color=color.red, linewidth=2, title="Previous Day High")
plot(supResLow, color=color.green, linewidth=2, title="Previous Day Low")
plot(supResClose, color=color.blue, linewidth=2, title="Previous Day Close")

// Backtesting logic
backtestCondition = close[1] < supResLow and close > supResLow
strategy.entry("Long", strategy.long, when=backtestCondition)

// Plotting buy/sell arrows for backtesting
plotarrow(backtestCondition ? 1 : na, colorup=color.green, offset=-1, transp=0)


Thêm nữa