Bollinger Band Moving Average Crossover chiến lược

Tác giả:ChaoZhang, Ngày: 2024-01-30 16:37:47
Tags:

img

Tổng quan

Đây là một chiến lược giao dịch dựa trên sự chéo chéo của Bollinger Bands và đường trung bình động để đưa ra quyết định mua và bán. Nó chủ yếu sử dụng chỉ số Bollinger Bands trên khung thời gian 5 phút để xác định phạm vi biến động giá, kết hợp với đường trung bình động để xác định hướng xu hướng, và hình thành chiến lược giao dịch theo tình huống chéo chéo của dải trên, dải dưới và dải giữa của Bollinger Bands. Chiến lược này phù hợp với cặp tiền AUD / NZD.

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

  1. Sử dụng chỉ số Bollinger Bands để xác định giới hạn trên và dưới của giá. Dải giữa của Bollinger Bands là một đường trung bình di chuyển đơn giản 20 giai đoạn, dải trên là dải giữa cộng với hai độ lệch chuẩn, và dải dưới là dải giữa trừ hai độ lệch chuẩn.

  2. Khi giá đóng phá vỡ dải dưới lên, nó chỉ ra rằng giá bắt đầu tăng, vì vậy chúng tôi làm cho dài nhập cảnh ở đây.

  3. Khi giá đóng cửa vượt quá dải giữa của Bollinger Bands, điều đó có nghĩa là giá đã tăng lên trên dải giữa, vì vậy chúng tôi thoát khỏi vị trí ở đây để kết thúc vòng giao dịch này.

  4. Khi giá đóng cửa phá vỡ dải trên xuống, điều đó có nghĩa là giá bắt đầu giảm, vì vậy chúng tôi thực hiện đầu vào ngắn ở đây.

  5. Khi giá đóng phá vỡ dải giữa của Bollinger Bands, điều đó có nghĩa là giá đã giảm xuống dưới dải giữa, vì vậy chúng tôi thoát khỏi vị trí ở đây để kết thúc vòng giao dịch này.

Phân tích lợi thế

  1. Tránh mất tín hiệu đảo ngược. Chiến lược này tận dụng đầy đủ các đặc điểm của Bollinger Bands để nắm bắt sự bật giá từ dải dưới và giảm từ dải trên kịp thời, tránh tổn thất do cơ hội đảo ngược bị bỏ lỡ.

  2. Lợi nhuận mạnh. Bằng cách mua và bán các mục nhập tại các điểm chính và thiết lập dừng lỗ hợp lý, nó có thể nhanh chóng chuyển hướng trong quá trình chuyển đổi giữa thị trường tăng và giảm để có được lợi nhuận tốt hơn.

  3. Tần suất giao dịch phù hợp. Xây dựng tín hiệu giao dịch dựa trên khung thời gian 5 phút, có thể nắm bắt xu hướng ngắn hạn mà không giao dịch quá thường xuyên để tăng chi phí giao dịch.

Phân tích rủi ro

  1. Rủi ro hội tụ quá nhanh của Bollinger Bands. Khi giá thị trường biến động mạnh mẽ, các dải trên và dưới của Bollinger Bands hội tụ quá nhanh, điều này có thể dễ dàng tạo ra các đột phá sai và đưa ra tín hiệu sai. Chúng ta cần điều chỉnh các tham số hoặc tạm ngưng giao dịch tại thời điểm này.

  2. Rủi ro stop loss. Một stop loss quá nhỏ có thể dễ dàng bị phá vỡ trong khi một stop loss quá lớn có thể dẫn đến tổn thất lớn. Chúng ta cần điều chỉnh đúng mức giá stop loss.

  3. Rủi ro chi phí giao dịch cao. Nếu tần suất giao dịch quá cao, chi phí giao dịch cũng sẽ tăng đáng kể. Chúng ta cần điều chỉnh đúng các tham số để giảm tần suất giao dịch.

Tối ưu hóa

  1. Chúng ta có thể thử nghiệm các kết hợp khác nhau của các tham số chu kỳ và các tham số độ lệch chuẩn để tìm bộ tham số phù hợp nhất với phạm vi biến động của sản phẩm cụ thể này.

  2. Thêm các chỉ số khác để lọc tín hiệu sai. Các chỉ số như KDJ và MACD có thể được giới thiệu để tránh các vấn đề gây ra bởi chỉ dựa vào Bollinger Bands.

  3. Tối ưu hóa chiến lược dừng lỗ. Chúng ta có thể đặt dừng lỗ chính xác hơn bằng cách theo dõi sự thay đổi giá trong thời gian thực. Các chiến lược khác như đường cổ phiếu cũng có thể được sử dụng.

Kết luận

Chiến lược này tương đối ổn định nói chung với một số lợi nhuận. Bằng cách tối ưu hóa các tham số và chiến lược dừng lỗ, rủi ro giao dịch có thể được giảm thêm để có được lợi nhuận tốt trong điều kiện thị trường biến động. Chiến lược này đáng để thử nghiệm và tối ưu hóa hơn nữa và có triển vọng ứng dụng thực tế rất tốt.


/*backtest
start: 2023-12-30 00:00:00
end: 2024-01-29 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © theTradeAI

strategy('TradeAI - 5min AUDNZD Strategy', overlay=true)

//////////////////////////////
//////// STOP ORDERS DETECTING
//////////////////////////////

length = input(1)

h = ta.highest(high, length)
l = ta.lowest(low, length)

//////////////////////////////
//////// EMAS
//////////////////////////////

emaLenght = input.int(200)

ema200 = ta.ema(close,emaLenght)

//////////////////////////////
//////// BOLLINGER BANDS
//////////////////////////////

length1 = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")

ma(source, length1, _type) => 
    switch _type
        "SMA" => ta.sma(source, length1)
        "EMA" => ta.ema(source, length1)
        "SMMA (RMA)" => ta.rma(source, length1)
        "WMA" => ta.wma(source, length1)
        "VWMA" => ta.vwma(source, length1)

basis = ma(src, length1, maType)
dev = mult * ta.stdev(src, length1)
upperr = basis + dev
lowerr = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)


//////////////////////////////
//////// ENTRY & EXIT
//////////////////////////////

// Buy entry
if ta.crossover(lowerr, close)
    strategy.entry('long', strategy.long, stop=h)

// Buy entry CANCEL
if close > lowerr
    strategy.cancel('long')

// Buy exit
if close > basis
    strategy.close('long')

// Sell entry
if ta.crossunder(upperr, close)
    strategy.entry('short', strategy.short, stop=l)

// Sell entry CANCEL
if close < upperr
    strategy.cancel('short')

// Sell exit
if close < basis
    strategy.close('short')



Thêm nữa