Chiến lược theo dõi xu hướng dựa trên dải Bollinger


Ngày tạo: 2024-01-18 16:37:56 sửa đổi lần cuối: 2024-01-18 16:37:56
sao chép: 0 Số nhấp chuột: 394
1
tập trung vào
1237
Người theo dõi

Chiến lược theo dõi xu hướng dựa trên dải Bollinger

Tổng quan

Chiến lược này sử dụng chỉ số Brin để xác định hướng xu hướng giá, kết hợp với đường trung bình di chuyển nhanh để vào. Khi giá phá vỡ đường trung bình Brin và vượt qua đường trung bình di chuyển nhanh, hãy làm nhiều tín hiệu. Khi giá rơi xuống đường trung bình Brin và vượt qua đường trung bình di chuyển chậm làm trống.

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

Chiến lược này chủ yếu bao gồm các chỉ số Brin và các chỉ số trung bình di chuyển.

Chỉ số Brin BeltNó bao gồm các đường trung đạo, đường trên và đường dưới. Đường trung đạo là đường trung đạo đơn giản di chuyển n ngày. Đường trên và đường dưới tương ứng với đường trung đạo thấp hơn k lần. Khi giá gần đường trên, nó đại diện cho mua quá mức, và khi giá gần đường dưới, nó đại diện cho bán quá mức.

Chỉ số trung bình di chuyểnSử dụng trung bình di chuyển nhanh và trung bình di chuyển chậm. Các tham số trung bình di chuyển nhanh là 40, tham số trung bình di chuyển chậm là 120.

Theo quy tắc chỉ số trên, tín hiệu giao dịch cụ thể cho chiến lược này là:

Làm nhiều tín hiệu: Giá đóng cửa phá vỡ đường trung tâm của Brin và vượt qua đường trung bình di chuyển chậm trên đường trung bình di chuyển nhanh

Tín hiệu trống.: Giá đóng cửa đã rơi xuống đường trung tâm của vùng Brin và vượt qua đường trung bình di chuyển chậm dưới đường trung bình di chuyển nhanh

Phương pháp dừng lỗ: ATR dừng, điểm dừng là giá hiện tại trừ 4 lần giá trị ATR

Phân tích lợi thế

Chiến lược này kết hợp với chỉ số BRI và chỉ số trung bình di chuyển để có thể xác định hiệu quả xu hướng của giá và tránh việc mở nhiều vị trí do tình hình bất ổn.

Đường trung tâm của Brin có thể phản ánh rõ ràng xu hướng giá và tạo ra tín hiệu xu hướng mạnh khi giá vượt qua đường trung tâm. Đường trên và dưới có thể xác định hiệu quả tình trạng quá mua quá bán, tránh theo đuổi giá cao và thấp trong tình trạng xung đột.

Đánh giá xu hướng thông thường cũng được sử dụng với các đường cong vàng của các đường trung bình di chuyển chậm. Kết hợp với chỉ số Brin, có thể đánh giá chính xác hơn thời gian nhập cảnh.

Phương pháp dừng lỗ ATR cho phép điểm dừng lỗ tự điều chỉnh theo biến động của thị trường, kiểm soát hiệu quả tổn thất đơn lẻ.

Phân tích rủi ro

Rủi ro lớn nhất của chiến lược này là giá sẽ rút lui ngay sau khi phá vỡ đường trung đạo và không thể kiếm được lợi nhuận hiệu quả. Điều này sẽ gây ra tổn thất. Giải pháp là điều chỉnh các tham số trung bình di chuyển một cách thích hợp để các tham số chỉ số phù hợp hơn với các đặc điểm của thị trường.

Một rủi ro khác là trong tình huống biến động, các chỉ số Binance và Moving Average có thể phát ra tín hiệu sai. Trong trường hợp này, bạn nên cân nhắc việc bỏ qua tín hiệu giao dịch và chờ đợi một xu hướng rõ ràng hơn.

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Điều chỉnh các tham số của chỉ số BRI để phù hợp với các đặc điểm của thị trường trong các chu kỳ khác nhau

  2. Điều chỉnh tham số trung bình di chuyển chậm để chỉ số phù hợp hơn với các loại giao dịch cụ thể

  3. Thêm các chỉ số hỗ trợ khác để kết hợp, tăng sự ổn định của chiến lược

  4. Tối ưu hóa quản lý vị trí, tăng vị trí trong thời gian xu hướng, giảm vị trí trong thời gian chấn động

  5. Kiểm tra các phương pháp giảm tổn thất khác nhau để tìm ra giải pháp tốt hơn

Tóm tắt

Chiến lược này nói chung là một chiến lược theo dõi xu hướng điển hình hơn. Nó kết hợp các chỉ số Bollinger Bands và Moving Averages để xác định xu hướng giá và cơ hội giao dịch.

Mã nguồn chiến lược
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Robrecht99

//@version=5
strategy("Trend Following with Bollinger Bands", overlay=true, margin_long=100, margin_short=100, pyramiding=4)

// Bollinger Bands //

length = input.int(20, minval=1, group="Bollinger Bands Inputs")
src = input(close, title="Source", group="Bollinger Bands Inputs")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500, group="Bollinger Bands Inputs")
plot(basis, "Basis", color=color.orange, offset = offset)
p1 = plot(upper, "Upper", color=color.orange, offset = offset)
p2 = plot(lower, "Lower", color=color.orange, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(255, 0, 255, 95))

// Moving Averages //

len1 = input.int(40, minval=1, title="Length Fast MA", group="Moving Average Inputs")
len2 = input.int(120, minval=1, title="Length Slow MA", group="Moving Average Inputs")
src1 = input(close, title="Source Fast MA")
src2 = input(close, title="Source Slow MA")
maColorFast = input.color(color.new(color.red, 0), title = "Color Fast MA", group = "Moving Average Inputs", inline = "maFast")
maColorSlow = input.color(color.new(color.purple, 0), title = "Color Slow MA", group = "Moving Average Inputs", inline = "maSlow")
fast = ta.ema(src1, len1) 
slow = ta.ema(src2, len2)
plot(fast, color=maColorFast, title="Fast EMA")
plot(slow, color=maColorSlow, title="Slow EMA")

// ATR Inputs //
strategy.initial_capital = 50000

lengthATR = input.int(title="ATR Period", defval=14, minval=1, group="ATR Input")
risk = input(title="Risk Per Trade", defval=0.01, group="ATR Input")
multiplier = input(title="ATR Multiplier", defval=2, group="ATR Inputs")
atr = ta.atr(length)
amount = (risk * strategy.initial_capital / (2 * atr))

// Buy and Sell Conditions //

entrycondition1 = ta.crossover(fast, slow)
entrycondition2 = fast > slow
sellcondition1 = ta.crossunder(fast, slow)
sellcondition2 = slow > fast

// Buy and Sell Signals //

if (close > basis and entrycondition2)
    strategy.entry("long", strategy.long, qty=amount)
    stoploss = close - atr * 4
    strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (sellcondition1 and sellcondition2)
    strategy.close(id="long")

if (close < basis and sellcondition2)
    strategy.entry("short", strategy.short, qty=amount)
    stoploss = close + atr * 4
    strategy.exit("exit sl", stop=stoploss, trail_offset=stoploss)
if (entrycondition1 and entrycondition2)
    strategy.close(id="short")