Chiến lược giao dịch theo kênh phần trăm EMA và dải Bollinger


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

Chiến lược giao dịch theo kênh phần trăm EMA và dải Bollinger

Tổng quan

Chiến lược này dựa trên EMA được chọn bởi người dùng và phần trăm kênh được xác định. Khi giá thấp hơn đường lên, chiến lược làm nhiều; Khi giá cao hơn đường xuống, chiến lược làm trống. Nếu giá bắt đầu giao dịch theo xu hướng và phá vỡ kênh, hãy xóa tất cả các vị trí để ngăn ngừa tổn thất.

Đối với các thị trường đang có xu hướng, chúng tôi khuyên bạn nên sử dụng các kênh tỷ lệ phần trăm EMA được hỗ trợ và chiến lược giao dịch theo xu hướng BRI.

Nguyên tắc

  1. Tính toán EMA 200 chu kỳ làm EMA chuẩn.

  2. Tính theo tỷ lệ phần trăm mà người dùng đã đặt: Đường trên = EMA * (1 + phần trăm) Đường dưới = EMA * (1 - phần trăm)

  3. Tính toán vòng 20 vòng tròn và mô tả phạm vi của đường dẫn.

  4. Khi giá đóng cửa từ dưới lên phá vỡ đường mòn của Bollinger Bands, hãy làm nhiều; khi giá đóng cửa từ trên xuống phá vỡ đường mòn của Bollinger Bands, hãy làm trống.

  5. Sử dụng ATR để tính điểm dừng lỗ, tránh thua lỗ quá lớn.

  6. Nếu giá vượt quá phạm vi kênh phần trăm được thiết lập, hãy xóa tất cả các vị trí để ngăn chặn tổn thất hơn nữa.

Ưu điểm

  1. Sử dụng EMA như một chuẩn, bạn có thể nắm bắt tốt hơn các điểm chuyển hướng.

  2. Cung cấp một tỷ lệ phần trăm cho các kênh giao dịch hợp lý, tránh giao dịch quá thường xuyên.

  3. Vòng đai Brin cung cấp điểm kháng cự hỗ trợ để đánh giá thời gian vào sân.

  4. Sử dụng ATR trailing stopdynamically để thiết lập dừng lỗ, kiểm soát hiệu quả rủi ro giao dịch đơn lẻ.

  5. Nếu giá vượt qua đường dẫn, tất cả các cổ phiếu sẽ được thanh toán, điều này có thể kiểm soát tổn thất nhanh chóng.

  6. Thiết lập tham số tùy chỉnh linh hoạt, có thể điều chỉnh cho các thị trường khác nhau.

Rủi ro

  1. Nếu tỷ lệ phần trăm kênh quá rộng, có thể bỏ lỡ xu hướng hoặc ngăn chặn mất mát sớm.

  2. Nếu tỷ lệ phần trăm quá hẹp, có thể giao dịch quá thường xuyên, làm tăng chi phí giao dịch.

  3. Thiết lập không đúng các tham số Brin cũng có thể dẫn đến việc bỏ lỡ cơ hội giao dịch.

  4. Việc thiết lập điểm dừng lỗ quá thoải mái có thể dẫn đến tổn thất đơn lẻ quá lớn.

  5. Cần tối ưu hóa các tham số để tìm phạm vi giao dịch tốt nhất.

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

  1. Kiểm tra các tham số khác nhau của chu kỳ EMA để tìm chu kỳ đường trung bình phù hợp nhất.

  2. Tối ưu hóa phần trăm thông số kênh để tìm phạm vi kênh tốt nhất.

  3. Điều chỉnh tham số chu kỳ của băng tần Brin để tối ưu hóa hiệu quả của việc bắt biến động.

  4. Điều chỉnh chu kỳ và số lần ATR để tối ưu hóa hơn nữa chiến lược dừng lỗ.

  5. Kiểm tra chỉ làm điều kiện ở trên hoặc không ở dưới để xem liệu có thể tăng tỷ lệ thành công hay không.

  6. Kết hợp với các chỉ số xu hướng, đánh giá xem có cần phải thanh toán trước hay không.

Tóm tắt

Chiến lược này tích hợp các lợi thế của nhiều chỉ số như đường trung bình, kênh và biến động, để thực hiện chiến lược giao dịch trong khoảng thời gian ổn định hơn. Điều quan trọng là tìm ra các thiết lập tham số phù hợp nhất cho thị trường cụ thể, để cân bằng rủi ro và lợi nhuận. Trong tương lai, các tham số và quy tắc chiến lược có thể được tối ưu hóa hoặc được sử dụng kết hợp với chiến lược giao dịch xu hướng.

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

//@version=4
strategy(title="[mdeacey] EMA% Channel + BB Range Strategy", shorttitle="[mdeacey] EMA% Channel + BB Range Strategy", overlay=true)

//EMA 200

len = input(title="EMA Length", type=input.integer, defval=200)
srce = input(title="EMA Source", type=input.source, defval=close)

ema1= ema(srce,len)

percent = input(title="Channel Percentage (%)", type=input.float, defval= 1) 
valuee = (percent*ema1)/100
upperbande = ema1 + valuee
lowerbande = ema1 - valuee


plot(ema1, title='EMA200', color=color.gray, linewidth=1, style=plot.style_line )
plot(upperbande, title='EMA Upper Band', color=color.gray, linewidth=1, style=plot.style_line )
plot(lowerbande, title='EMA Lower Band', color=color.gray, linewidth=1, style=plot.style_line )

length = input(20, minval=2)
src = input(close, title="Close price")
mult = input(2.0, minval=0.001, maxval=50)

MA2 = sma(src, length)
dev = mult * stdev(src, length)
upper = MA2 + dev
lower = MA2 - dev

signalColor = crossunder(close, upper) ? color.red : crossover(close, lower) ? color.green : color.white

barcolor(color=signalColor)


upperBand = plot(upper, color=color.gray, linewidth=1)
lowerBand = plot(lower, color=color.gray, linewidth=1)
fill(upperBand, lowerBand,color=color.gray)
strategy.entry("Long",true,when = crossover(close,lower)  and close <upperbande and close>lowerbande)
strategy.close("Long",when = crossunder(close,lowerbande))
strategy.entry("Short",false,when = crossunder(close,upper)  and close <upperbande and close>lowerbande)
strategy.close("Short",when = crossover(close,upperbande))

//Inputs
atrPeriod = input(defval=14, title="ATR Period",group='ATR Settings', type=input.integer) // Adjust this to change the ATR calculation length
multiplierPeriod = input(defval=1.75, title="ATR Multiplier Period",group='ATR Settings',  type=input.float)// Adjust this to change the distance between your candles and the line

//ATR Calculation
pine_rma(x, y) =>
    alpha = y
    sum = 0.0
    sum := (x + (alpha - 1) * nz(sum[1])) / alpha

true_range() =>
    max(high - low, max(abs(high - close[1]), abs(low - close[1])))

//Long SL
plot(low - pine_rma(true_range() * multiplierPeriod, atrPeriod), "Long Stop", color=color.red, offset = 1)
// Short SL
plot(high +pine_rma(true_range() * multiplierPeriod, atrPeriod), "Short Stop", color=color.red, offset = 1)
strategy.exit("Exit Long","Long",limit=upper ,stop = low - pine_rma(true_range() * multiplierPeriod, atrPeriod)  )
strategy.exit("eExit Short","Short",limit=lower ,stop =high +pine_rma(true_range() * multiplierPeriod, atrPeriod)  )