Chiến lược theo xu hướng dựa trên Dải Bollinger và đường trung bình động hàm mũ


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

Chiến lược theo xu hướng dựa trên Dải Bollinger và đường trung bình động hàm mũ

Tổng quan

Chiến lược này sử dụng chỉ số Brin để xác định hướng xu hướng hiện tại và kết hợp với chỉ số di chuyển trung bình để quản lý dừng lỗ để nắm bắt hiệu quả xu hướng.

Phân tích

Chiến lược này bắt đầu bằng việc tính toán đường trung tâm, đường lên và đường xuống của Brin. Đường trung tâm là một đường trung bình di chuyển đơn giản của giá đóng cửa trong n ngày, đường lên xuống là hai độ lệch tiêu chuẩn trên đường trung tâm. Khi giá đóng cửa cao hơn đường trên, điều đó cho thấy thị trường đang trong xu hướng giảm giá.

Chiến lược này đánh giá xu hướng hiện tại bằng cách so sánh giá đóng cửa với mối quan hệ của Bollinger Bands trên đường ray xuống. Nếu giá đóng cửa phá vỡ đường ray lên, hãy làm nhiều hơn; Nếu giá đóng cửa phá vỡ đường ray xuống, hãy làm trống.

Ngoài ra, chiến lược này cũng giới thiệu đường trung bình di chuyển chỉ số, như là một trailing stop stop. Cụ thể, nếu sau khi thực hiện nhiều, giá sẽ đi xuống, đường dừng sẽ di chuyển theo, làm cho khoảng cách dừng dần dần chặt chẽ, khóa lợi nhuận tối đa. Nếu giá tiếp tục tăng, đường dừng cũng sẽ di chuyển lên, để lợi nhuận tiếp tục hoạt động.

Phân tích lợi thế

Chiến lược này kết hợp với định hướng xu hướng của Brin và EMA để quản lý dừng lỗ, có những lợi thế sau:

  1. Sử dụng dây chuyền Brin để đánh giá hiệu quả xu hướng và phản ứng nhanh chóng với đột phá.

  2. Hạn chế lỗ hổng dựa trên EMA, có thể khóa lợi nhuận tối đa, kiểm soát rủi ro trong khi đảm bảo lợi nhuận.

  3. Các tham số chiến lược ít hơn, dễ thực hiện. Brin có một tham số, EMA một tham số, rất đơn giản.

  4. Có thể được áp dụng rộng rãi cho các giống khác nhau, có khả năng thích ứng rất mạnh.

Rủi ro và tư duy tối ưu hóa

Chiến lược này cũng có một số rủi ro cần lưu ý:

  1. Brin không hoàn toàn tránh được rủi ro của phá vỡ giả. Có thể kết hợp các tín hiệu lọc chỉ số như khối lượng giao dịch.

  2. Cài đặt tham số EMA cần được kiểm tra cẩn thận tùy theo giống cụ thể. Chu kỳ EMA quá ngắn có thể làm tăng số lần dừng lỗ, quá dài sẽ làm giảm hiệu quả theo dõi.

  3. Cần chú ý để tránh quá tối ưu hóa. Quá nhiều sự kết hợp giữa các tham số Brin và EMA có thể dẫn đến quá phù hợp.

Đối với các hướng giải quyết và tối ưu hóa rủi ro, các tư tưởng sau đây có thể được xem xét:

  1. Tăng khối lượng giao dịch hoặc các chỉ số như MACD, lọc các tín hiệu phá vỡ giả.

  2. Thử nghiệm tối ưu hóa chu kỳ EMA, chọn tham số phù hợp hơn cho các giống cụ thể.

  3. Cố gắng giữ cho các tham số Brin và EMA ổn định, tránh rủi ro quá phù hợp do tối ưu hóa quá mức.

  4. Bạn có thể xem xét các chỉ số như RSI trong giai đoạn giữa của xu hướng để xác định xem có điều chỉnh vị trí hay không.

Tóm tắt

Chiến lược này tích hợp các xu hướng phán đoán và EMA để quản lý dừng lỗ, tạo thành một hệ thống theo dõi xu hướng hoàn chỉnh hơn. Nó có thể nhanh chóng nắm bắt hướng xu hướng và khóa lợi nhuận bằng cách liên tục điều chỉnh đường dừng lỗ. Nhìn chung, chiến lược này đơn giản, thực tế, thích nghi và đáng để thử nghiệm và tối ưu hóa thêm.

Mã nguồn chiến lược
/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
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/
// © zxcv55602
//@version=4
strategy(shorttitle=" BB+EMA", title="Bollinger Bands", overlay=true)
date1 = input(title="Start Date", type=input.time, defval=timestamp("2020-01-01T00:00:00"))
date2 = input(title="Stop Date", type=input.time, defval=timestamp("2030-01-01T00:00:00"))
length = input(40, minval=1)
src = input(close, title="Source")
mult = input(2.0,title="StdDev",step=0.1)
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
//offset = input(0, "Offset", minval = -500, maxval = 500)
offset=0
stopcon=input(title="stopcon/lot", type=input.bool, defval=true)
lot1=input(title="lot",defval=1)
stoploss=input(title="stopcon",defval=1000)
emacon=input(title="emacon", type=input.bool, defval=true)
ema_value=input(title="value",defval=30, minval=2,step=1)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=color.new(color.blue,50), offset = offset)
p2 = plot(lower, "Lower", color=color.new(color.blue,50), offset = offset)
ema1=ema(close,ema_value)
plot(ema1, "SMA", color=#2962FF)
period() => true
//-----------
if period()
    if strategy.opentrades==0 and ema1<upper
        if close>upper
            lot_L=stoploss/((close-lower)/2)
            strategy.entry("OP_L",strategy.long,qty=stopcon==true?lot_L:lot1,stop=emacon==true?max(basis,ema1):basis)
    if strategy.opentrades==0 and ema1>lower
        if close<lower
            lot_S=stoploss/((upper-close)/2)
            strategy.entry("OP_S",strategy.short,qty=stopcon==true?lot_S:lot1,stop=emacon==true?min(basis,ema1):basis)
    if strategy.position_size>0
        strategy.exit("OP_L",stop=emacon==true?max(basis,ema1):basis,comment="exit_L")
    if strategy.position_size<0
        strategy.exit("OP_S",stop=emacon==true?min(basis,ema1):basis,comment="exit_S")