Chiến lược đường trung bình động đơn cắt dải Bollinger


Ngày tạo: 2023-12-22 14:10:14 sửa đổi lần cuối: 2023-12-22 14:10:14
sao chép: 1 Số nhấp chuột: 726
1
tập trung vào
1621
Người theo dõi

Chiến lược đường trung bình động đơn cắt dải Bollinger

Tổng quan

Chiến lược này dựa trên chỉ số đường trung bình đơn lẻ và Bollinger Bands, mua hoặc bán khi giá phá vỡ đường trung bình lên hoặc xuống đường. Đồng thời kết hợp xu hướng định hướng của đường trung bình, chỉ mua khi đường trung bình tăng và bán khi đường trung bình giảm.

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

Chiến lược này được đánh giá dựa trên một số chỉ số:

  1. Đường trung bình ((SMA): tính trung bình di chuyển đơn giản của giá đóng cửa CLOSE, đại diện cho xu hướng giá.
  2. Vành đai Brin trên đường ray: đại diện cho đường kháng cự góc ngửa, phá vỡ đường này cho thấy phá vỡ mạnh mẽ.
  3. Đường Brin xuống đường: đại diện cho đường hỗ trợ, giảm xuống đường này cho thấy xu hướng có thể đảo ngược.

Các tín hiệu giao dịch cụ thể như sau:

  1. Tín hiệu mua: Mua khi giá đóng cửa phá vỡ đường dây Bollinger và đường trung bình đang tăng.
  2. Tín hiệu bán ra: bán ra khi giá đóng cửa đi xuống dưới đường dây của Brin và đường trung bình đang giảm.

Bằng cách này, kết hợp xu hướng và phá vỡ, làm cho tín hiệu giao dịch đáng tin cậy hơn và tránh phá vỡ giả.

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

  1. Các quy tắc đơn giản, rõ ràng, dễ hiểu và dễ thực hiện.
  2. Sử dụng đường trung bình để đánh giá xu hướng lớn, tránh thị trường bò, thị trường gấu.
  3. Brin đi lên và xuống đường ray để xác định vị trí đột phá địa phương và nắm bắt chính xác tín hiệu đột phá.
  4. Việc rút tiền tương đối nhỏ, phù hợp với sở thích rủi ro của hầu hết mọi người.

Rủi ro chiến lược

  1. Chỉ số đơn dễ phát ra tín hiệu sai, có thể giảm tỷ lệ sai bằng cách tối ưu hóa tham số.
  2. Các điểm dừng lỗ có thể được điều chỉnh thích hợp nếu không thể đối phó với các biến động lớn.
  3. Nếu bạn không thể kiếm được nhiều lợi nhuận hơn trong một xu hướng lớn, bạn có thể cân nhắc tăng vị trí của mình.

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

  1. Tối ưu hóa các tham số chu kỳ trung bình để phù hợp với nhiều giống hơn.
  2. Thêm các bộ lọc cho các chỉ số khác, như MACD, để giảm tín hiệu sai.
  3. Động thái điều chỉnh điểm dừng lỗ, hạn chế rút tối đa.
  4. Trong khi đó, các nhà đầu tư khác cũng đang tìm kiếm những giải pháp khác để giảm bớt chi phí.

Tóm tắt

Chiến lược này nói chung là đơn giản và phù hợp với hầu hết mọi người. Với một số điều chỉnh tối ưu hóa, chiến lược có thể trở nên thô lỗ hơn, thích ứng với nhiều tình huống thị trường hơn, là một chiến lược đáng khuyên.

Mã nguồn chiến lược
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title="single sma cross", shorttitle="single sma cross",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,overlay=true,currency="USD")
s=input(title="s",defval=90)
p=input(title="p",type=float,defval=.9,step=.1)

sa=sma(close,s)
plot(sa,color=red,linewidth=3)
band=stdev(close,s)*p
plot(band+sa,color=lime,title="")
plot(-band+sa,color=lime,title="")

// ===Strategy Orders============================================= ========
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na

longCondition = crossover(close,sa+band) and rising(sa,5)
shortCondition = crossunder(close,sa-band) and falling(sa,5)
crossmid = cross(close,sa)


strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = shortCondition)
strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = longCondition)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid)