Chiến lược cắt đầu giá kênh của Noro

Tác giả:ChaoZhang, Ngày: 2023-12-11 17:06:27
Tags:

img

Tổng quan

Noros Price Channels Scalping Strategy là một chiến lược giao dịch scalping dựa trên các kênh giá và dải biến động. Chiến lược này sử dụng các kênh giá và dải biến động để xác định xu hướng thị trường và nắm giữ các vị trí khi xu hướng đảo ngược xảy ra.

Chiến lược logic

Chiến lược này đầu tiên tính toán kênh giá cao nhất (lần cao nhất) và kênh giá thấp nhất (lần thấp nhất) của giá, sau đó tính toán đường giữa của kênh giá (trung tâm). Tiếp theo, nó tính toán khoảng cách (dist) giữa giá và đường giữa cũng như trung bình động đơn giản của khoảng cách (distsma). Dựa trên điều này, các dải biến động 1 lần (hd và ld) và 2 lần (hd2 và ld2) khoảng cách từ đường giữa có thể được tính toán.

Khi giá vượt qua dải biến động bằng khoảng cách 1 lần so với đường giữa, nó được đánh giá là tăng giá. Khi giá vượt qua dải biến động dưới đường giữa, nó được đánh giá là giảm giá. Chiến lược mở các vị trí ngược lại khi có dấu hiệu kiệt sức trong xu hướng. Ví dụ, trong xu hướng tăng, nếu có hai đường yang, các vị trí ngắn sẽ được mở vào ngày đóng đường yang thứ hai; trong xu hướng giảm, nếu có hai đường yin, các vị trí dài sẽ được mở vào ngày đóng đường yin thứ hai.

Ưu điểm của Chiến lược

  1. Sử dụng các kênh giá để xác định hướng xu hướng thị trường và tránh các lỗi giao dịch
  2. Sử dụng các dải biến động để đánh giá liệu xu hướng đã cạn kiệt và nắm bắt chính xác các điểm chuyển đổi
  3. Nhập giao dịch scalping để kiếm lợi nhuận nhanh chóng

Rủi ro của chiến lược

  1. Các kênh giá và dải biến động có thể thất bại khi biến động giá lớn
  2. Giao dịch scalping đòi hỏi tần suất giao dịch cao, có thể làm tăng chi phí giao dịch và rủi ro trượt
  3. Chiến lược dừng lỗ cần được xem xét đầy đủ để kiểm soát rủi ro mất mát

Tối ưu hóa chiến lược

  1. Tối ưu hóa các tham số của các kênh giá và dải biến động để thích nghi với nhiều điều kiện thị trường hơn
  2. Kết hợp các chỉ số khác để xác định xu hướng và điểm chuyển đổi
  3. Tăng các chiến lược dừng lỗ 4. Xem xét tác động của chi phí giao dịch và trượt

Kết luận

Nói chung, Noro's Price Channels Scalping Strategy là một chiến lược rất phù hợp cho giao dịch scalping. Nó sử dụng các kênh giá và dải biến động để xác định xu hướng thị trường, và mở các vị trí ngược khi có dấu hiệu tăng hoặc giảm. Chiến lược có tần suất giao dịch cao, kiếm lợi nhuận nhanh, nhưng cũng phải đối mặt với một số rủi ro nhất định. Tăng cường tối ưu hóa hơn có thể cho phép chiến lược được áp dụng trên nhiều thị trường khác nhau hơn.


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


//@version=2
strategy("Noro's Bands Scalper Strategy v1.0", shorttitle = "Scalper str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

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

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

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

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and bar == -1 and bar[1] == -1 ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price ? 1 : 0
dn8 = trend == -1 and bar == 1 and bar[1] == 1 ? 1 : 0

if up7 == 1 or up8 == 1
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 ? 0 : na)

Thêm nữa