Chiến lược giao dịch kênh giá năng động

Tác giả:ChaoZhang, Ngày: 2023-09-16 19:01:26
Tags:

Tổng quan

Bài viết này giới thiệu một chiến lược giao dịch ngắn hạn dựa trên các kênh giá năng động. Nó đánh giá hướng xu hướng bằng cách tính toán các kênh giá năng động và giao dịch tại các kênh đột phá.

Chiến lược logic

Chiến lược dựa trên logic sau:

  1. Tính toán các kênh giá năng động bằng cách sử dụng giá cao nhất và thấp nhất. Dải trên là mức trung bình của giá cao nhất và điểm giữa kênh. Dải dưới là điểm giữa trừ đi sự khác biệt giữa giá thấp nhất và điểm giữa.

  2. Khi giá phá vỡ trên dải trên, xu hướng tăng bắt đầu. Khi giá phá vỡ dưới dải dưới, xu hướng giảm bắt đầu.

  3. Trong xu hướng tăng, đi dài khi hai thanh giảm liên tiếp xuất hiện. Trong xu hướng giảm, đi ngắn khi hai thanh tăng liên tiếp xuất hiện.

  4. Hãy xem xét các mục chống xu hướng để theo đuổi đà thị trường. ví dụ, ngắn trong xu hướng tăng và dài trong xu hướng giảm.

  5. Đặt tỷ lệ phần trăm lợi nhuận, như x% giá nhập cảnh, để khóa lợi nhuận.

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Các kênh năng động phản ánh những thay đổi thị trường trong thời gian thực để đánh giá xu hướng tốt hơn.

  2. Kết hợp xu hướng và sự đột phá lọc những sự đột phá sai.

  3. Các mục chống xu hướng tận dụng động lực thị trường để có lợi nhuận vượt quá.

  4. Dừng lợi nhuận kiểm soát rủi ro hiệu quả.

  5. Lý thuyết đơn giản và rõ ràng để dễ dàng thực hiện.

Phân tích rủi ro

Ngoài ra còn có một số rủi ro cần xem xét:

  1. Các kênh có thể thất bại trong thời gian thị trường biến động.

  2. Các giao dịch ngược xu hướng dễ bị tổn thất.

  3. Sự phá vỡ giả mạo có thể gây ra các giao dịch xấu.

  4. Tránh quá mức để kiểm soát chi phí.

Kết luận

Chiến lược này tích hợp các kênh năng động, breakout và lấy lợi nhuận. Với điều chỉnh đúng, nó có thể là một công cụ giao dịch ngắn hạn hiệu quả. Nhưng các nhà giao dịch nên lưu ý kiểm soát rủi ro và điều chỉnh nó theo phong cách của riêng họ.


/*backtest
start: 2022-09-09 00:00:00
end: 2023-09-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.1", shorttitle = "Scalper str 1.1", 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")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
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
sma = sma(close, 20)
smatrend = close > sma ? 1 : close < sma ? -1 : smatrend[1]
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 * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 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 and needct == false ? 0 : na)

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

Thêm nữa