Chiến lược Scalping kênh biến động Noro


Ngày tạo: 2023-12-11 17:06:27 sửa đổi lần cuối: 2023-12-11 17:06:27
sao chép: 0 Số nhấp chuột: 436
1
tập trung vào
1213
Người theo dõi

Chiến lược Scalping kênh biến động Noro

Tổng quan

Noro’s Price Channel Scalping Strategy là một chiến lược giao dịch dựa trên kênh giá và dải biến động giá. Chiến lược này sử dụng kênh giá và biến động giá để xác định xu hướng thị trường và tham gia khi xu hướng biến đổi.

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

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

Chiến lược mở vị trí ngược khi có dấu hiệu suy thoái. Ví dụ: trong xu hướng tăng giá, nếu có hai đường dương, thì sẽ bị hỏng khi đường dương thứ hai đóng cửa; trong xu hướng giảm giá, nếu có hai đường âm, thì sẽ bị hỏng khi đường âm thứ hai đóng cửa.

Lợi thế chiến lược

  1. Sử dụng kênh giá để đánh giá xu hướng thị trường và tránh giao dịch sai
  2. Xác định xu hướng suy thoái dựa trên biến động giá, nắm bắt chính xác điểm biến
  3. Scalping là một phương pháp giao dịch có lợi nhuận nhanh chóng.

Rủi ro chiến lược

  1. Các kênh và dải dao động có thể bị hỏng khi giá dao động lớn
  2. Giao dịch scalping đòi hỏi tần suất giao dịch cao, dễ tăng chi phí giao dịch và rủi ro trượt
  3. Cần cân nhắc kỹ về chiến lược dừng lỗ để 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 kênh giá và dải dao động để phù hợp với nhiều tình huống thị trường hơn
  2. Kết hợp các chỉ số khác để đánh giá xu hướng và điểm thay đổi
  3. Tăng chiến lược dừng lỗ
  4. Xem xét chi phí giao dịch và ảnh hưởng của điểm trượt

Tóm tắt

Phương pháp này sử dụng các kênh giá và dải dao động để đánh giá xu hướng thị trường và mở vị trí ngược khi có dấu hiệu đỉnh hoặc đáy. Chiến lược này có tần suất giao dịch cao, lợi nhuận nhanh, nhưng cũng có một số rủi ro. Bằng cách tối ưu hóa hơn nữa, chiến lược này có thể được áp dụng trong nhiều thị trường khác nhau.

Mã nguồn chiến lược
/*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)