Chiến lược kênh giá của Noro v1.1

Tác giả:ChaoZhang, Ngày: 2023-10-24 10:59:38
Tags:

img

Tổng quan

Noros Price Channel Strategy v1.1 là một chiến lược giao dịch xu hướng dựa trên các kênh giá và thay đổi hướng giá. Chiến lược này kết hợp chỉ số kênh giá và chỉ số RSI nhanh để xác định các tín hiệu đột phá giá từ kênh, cùng với các tín hiệu đảo ngược màu nến đỏ / xanh liên tiếp để thiết lập các vị trí dài / ngắn. Mục tiêu của chiến lược này là nắm bắt hướng của xu hướng trung và dài hạn, trong khi tránh tiếng ồn từ biến động thị trường ngắn hạn.

Chiến lược logic

Chiến lược này đầu tiên tính toán trung bình giá cao nhất và thấp nhất trong một khoảng thời gian nhất định để xây dựng một kênh giá trung bình. Khi giá vượt qua kênh từ dưới, nó được coi là tín hiệu dài. Khi giá giảm xuống dưới kênh từ trên, nó được coi là tín hiệu ngắn.

Trong khi đó, chiến lược bao gồm hai quy tắc phụ: RSI nhanh và màu nến. Khi RSI nhanh dưới 25%, nó chỉ ra tình trạng bán quá mức và giá có thể phục hồi. Cùng với sự đột phá trên kênh, điều này tạo ra một tín hiệu dài mạnh hơn. Ngược lại, khi RSI nhanh trên 75%, nó chỉ ra tình trạng mua quá mức và giá có thể giảm. Cùng với sự phá vỡ dưới kênh, điều này tạo ra một tín hiệu ngắn mạnh hơn. Ngoài ra, chiến lược theo dõi sự thay đổi màu nến trong hai nến gần đây nhất. Hai nến màu đỏ liên tiếp tăng cường tín hiệu ngắn, trong khi hai nến màu xanh lá cây liên tiếp tăng cường tín hiệu dài.

Bằng cách kết hợp ba chỉ số tín hiệu này, chiến lược có thể xác định hiệu quả xu hướng trung và dài hạn và thiết lập các vị trí phù hợp.

Ưu điểm

Ưu điểm lớn nhất của chiến lược này là kết hợp nhiều chỉ số để xác định hướng xu hướng và tránh tiếng ồn từ biến động thị trường ngắn hạn.

  1. Kênh giá xác định rõ hướng và sức mạnh của xu hướng.

  2. Chỉ số RSI nhanh đánh giá các điều kiện mua quá mức / bán quá mức để tránh theo đuổi xu hướng tại các điểm chuyển hướng.

  3. Xác minh màu nến xác minh thêm sự bền vững của xu hướng.

  4. Chiến lược chỉ đi vào hai ngọn nến cùng màu liên tiếp phá vỡ kênh, tránh tín hiệu sai từ dao động ngắn hạn.

  5. Đơn giản trung bình dừng lỗ đóng các vị trí một khi nến màu thay đổi, giảm thiểu lỗ hiệu quả.

Rủi ro

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

  1. Các thiết lập tham số kênh giá không chính xác có thể dẫn đến các kênh quá rộng hoặc quá hẹp, bỏ lỡ các điểm thay đổi xu hướng hoặc tạo ra các tín hiệu sai quá mức.

  2. Các thiết lập tham số RSI nhanh không chính xác có thể không xác định chính xác các điều kiện mua quá mức / bán quá mức, do đó bỏ lỡ cơ hội đảo ngược.

  3. Cơ chế dừng lỗ đơn giản có thể quá nhạy cảm trong xu hướng hỗn loạn, gây ra việc mở và đóng vị trí quá mức.

  4. Nó không thể dự đoán sự tiếp tục xu hướng thực tế sau khi phá vỡ kênh giá, dẫn đến tổn thất tăng cường.

  5. Nó không thể thích nghi với các sự kiện thiên nga đen với tác động thị trường đột ngột, dẫn đến tổn thất khổng lồ.

Cơ hội gia tăng

Một số cơ hội chính để tăng cường chiến lược bao gồm:

  1. Điều chỉnh động các thông số kênh giá để thích nghi tốt hơn với sự biến động trong các giai đoạn và thị trường khác nhau.

  2. Bao gồm các biện pháp biến động để điều chỉnh các thông số RSI, giảm độ nhạy trong khi biến động cao và tăng độ nhạy trong khi biến động thấp.

  3. Thêm các cơ chế dừng lại với mức dừng dựa trên biến động xu hướng để tránh dừng quá nhạy cảm.

  4. Cải thiện xác định sức mạnh đột phá và chênh lệch giảm/bullish để tránh đột phá sai.

  5. Kết hợp các mô hình đào tạo dữ liệu lịch sử để hỗ trợ ước tính các điểm chuyển đổi xu hướng có khả năng cao và cải thiện độ chính xác đầu vào.

  6. Tối ưu hóa các mô hình kích thước vị trí để điều chỉnh phân bổ năng động dựa trên các điều kiện rủi ro.

Kết luận

Nhìn chung, Noro's Price Channel Strategy v1.1 là một chiến lược theo xu hướng đơn giản và thực tế. Nó kết hợp nhiều chỉ số để xác định hướng xu hướng trung và dài hạn và thiết lập các quy tắc nhập cảnh tương đối thận trọng. Có chỗ để cải thiện hơn nữa trong các lĩnh vực như cơ chế dừng lỗ và điều chỉnh tham số động. Nhưng logic tổng thể là đơn giản và rõ ràng, giúp dễ dàng thực hiện cho giao dịch định lượng, đặc biệt là cho người mới bắt đầu. Với điều chỉnh tham số và tối ưu hóa cơ chế, nó có thể trở thành một hệ thống giao dịch ổn định và đáng tin cậy.


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

//Noro
//2018

//@version=2
strategy(title = "Noro's Price Channel Strategy v1.1", shorttitle = "Price Channel str 1.1", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usecol = input(true, defval = true, title = "Use color strategy")
usersi = input(true, defval = true, title = "Use RSI strategy")
lev = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage")
pch = input(30, defval = 30, minval = 2, maxval = 200, title = "Price Channel")
showcl = input(true, defval = true, title = "Show center-line")
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

//Price channel
lasthigh = highest(src, pch)
lastlow = lowest(src, pch)
center = (lasthigh + lastlow) / 2
trend = low > center ? 1 : high < center ? -1 : trend[1]
col = showcl ? blue : na
plot(center, color = col, linewidth = 2)

//Bars
bar = close > open ? 1 : close < open ? -1 : 0
rbars = sma(bar, 2) == -1
gbars = sma(bar, 2) == 1

//Fast RSI
fastup = rma(max(change(src), 0), 2)
fastdown = rma(-min(change(src), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Signals
body = abs(close - open)
abody = sma(body, 10)
up1 = rbars and close > center and usecol
dn1 = gbars and close < center and usecol
up2 = fastrsi < 25 and close > center and usersi
dn2 = fastrsi > 75 and close < center and usersi
exit = (((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2)
lot = strategy.equity / close * lev

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

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

Thêm nữa