Chiến lược đảo ngược giá dựa trên kênh giá

Tác giả:ChaoZhang, Ngày: 2023-11-27 11:40:36
Tags:

img

Tổng quan

Chiến lược đảo ngược giá được hướng dẫn bởi kênh giá tính toán đường trung tâm của kênh giá để xác định hướng xu hướng của biến động giá. Nó tạo ra các tín hiệu dài và ngắn khi giá tiếp cận đường trung tâm kênh. Chiến lược này kết hợp nhiều điều kiện lọc để tìm kiếm các cơ hội giao dịch có khả năng cao.

Chiến lược logic

Chỉ số cốt lõi của chiến lược này là đường trung tâm kênh giá. Nó được tính bằng mức trung bình của giá cao nhất và giá thấp nhất của 30 ngọn nến gần đây nhất. Khi mức thấp hơn đường trung tâm, nó được coi là xu hướng tăng. Khi mức cao thấp hơn đường trung tâm, nó được coi là xu hướng giảm.

Chiến lược chỉ tạo ra tín hiệu giao dịch khi nền xu hướng thay đổi. nghĩa là, trong nền xu hướng tăng, nó chỉ đi ngắn khi ngọn nến chuyển sang màu đỏ. Trong nền xu hướng giảm, nó chỉ đi dài khi ngọn nến chuyển sang màu xanh lá cây.

Ngoài ra, chiến lược cũng thiết lập các điều kiện lọc kép: bộ lọc thân nến và bộ lọc thanh kênh giá. Các tín hiệu chỉ được kích hoạt khi khối lượng thân nến lớn hơn 20% giá trị trung bình, và phải có các tín hiệu xu hướng liên tiếp trong chu kỳ lọc để mở các vị trí.

Phân tích lợi thế

Chiến lược này kết hợp xu hướng, khu vực giá trị và mô hình nến, đó là một chiến lược giao dịch đảo ngược hiệu quả.

  1. Sử dụng kênh giá để xác định xu hướng chính và tránh bị đánh lừa bởi các thị trường giới hạn phạm vi.
  2. Chọn mức giá gần đường trung tâm kênh giá, đó là khu vực mua thấp bán cao cổ điển.
  3. Các bộ lọc thân nến và thanh kênh làm tăng chất lượng tín hiệu và giảm tỷ lệ tín hiệu sai.
  4. Mở các vị trí chỉ ở các điểm đảo ngược rõ ràng để tránh theo đuổi mức cao và bán mức thấp.

Rủi ro và giải pháp

Rủi ro chính của chiến lược này xuất phát từ việc thiếu các điểm đảo ngược giá và chờ đợi các tín hiệu không cần thiết.

  1. Điều chỉnh độ nghiêm ngặt của điều kiện lọc và giảm tiêu chuẩn lọc để giảm các giao dịch bị thiếu.
  2. Tăng kích thước vị trí trong giai đoạn đầu của xu hướng đảo ngược để nắm bắt lợi nhuận xu hướng.
  3. Kết hợp các chỉ số khác để đánh giá cường độ tín hiệu và can thiệp vào bộ lọc theo cách thủ công.

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

Chiến lược này có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa các thông số như thời gian kênh giá, số thanh kênh vv
  2. Thêm chiến lược dừng lỗ để dừng lỗ khi lỗ đạt đến một tỷ lệ phần trăm nhất định.
  3. Kết hợp khối lượng giao dịch để can thiệp vào sức mạnh của bộ lọc. Ví dụ, thư giãn bộ lọc khi khối lượng giao dịch tăng cường.
  4. Thêm mô hình học máy để đánh giá xác suất đảo ngược xu hướng, thay thế các bộ lọc đơn giản.

Kết luận

Chiến lược đảo ngược giá được hướng dẫn bởi kênh giá xác định các điểm đảo ngược thông qua các kênh giá và thiết lập các điều kiện lọc kép để tạo ra các tín hiệu chất lượng cao.


/*backtest
start: 2023-11-19 00:00:00
end: 2023-11-26 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's PriceChannel for D1 v1.0", shorttitle = "PriceChannel D1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, "long")
needshort = input(true, "short")
slowlen = input(30, defval = 30, minval = 2, maxval = 200, title = "PriceChannel Period")
pcbars = input(1, defval = 1, minval = 1, maxval = 20, title = "PriceChannel Bars")
usecol = input(true, "Use color-filter")
usebod = input(true, "Use body-filter")
needbg = input(false, defval = false, title = "Need trend Background?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

src = close

//PriceChannel
lasthigh = highest(src, slowlen)
lastlow = lowest(src, slowlen)
center = (lasthigh + lastlow) / 2

//Trend
ub = low > center ? 1 : 0
db = high < center ? 1 : 0
trend = sma(ub, pcbars) == 1 ? 1 : sma(db, pcbars) == 1 ? -1 : trend[1]

//Body
body = abs(close - open)
abody = sma(body, 10)

//Signals
up = trend == 1 and (close < open or usecol == false) and (body > abody / 5 or usebod == false)
dn = trend == -1 and (close > open or usecol == false) and (body > abody / 5 or usebod == false)

//Lines
plot(center, color = blue, linewidth = 3, transp = 0, title = "PriceChannel Center")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    

Thêm nữa