Chiến lược theo xu hướng là vượt qua kênh BB và phá vỡ đường trung bình động SMA200


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

Chiến lược theo xu hướng là vượt qua kênh BB và phá vỡ đường trung bình động SMA200

Tổng quan

Chiến lược này kết hợp với các vùng Brin và đường trung bình di chuyển, thiết kế một hệ thống giao dịch theo xu hướng. Khi giá phá vỡ vùng Brin lên đường và đường thấp hơn SMA200, hãy làm nhiều hơn, khi giá giảm xuống đường Brin, hãy đóng cửa một phần, và khi giá giảm xuống SMA200, hãy đóng cửa toàn bộ. Chiến lược này theo dõi xu hướng và dừng lại khi xu hướng thay đổi.

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

  1. Tính toán SMA200 Exponential Moving Average như là một chỉ số để đánh giá xu hướng lớn
  2. Tính toán các dải Brin, bao gồm đường ray trên, đường ray giữa, đường ray dưới, và điền màu sắc như là khu vực thu lợi nhuận
  3. Khi các đường dây Brin trên và dưới đều ở trên SMA200, nó cho thấy đang trong xu hướng tăng
  4. Thêm vào khi giá vượt qua đường trung tâm của BRI
  5. Một phần của thị trường bị phá vỡ khi giá giảm xuống và phá vỡ đường mòn của BRI.
  6. Khi giá giảm xuống dưới SMA200, nó cho thấy xu hướng lớn đã đảo ngược và tất cả các khoản thanh toán đều được thanh toán
  7. Thiết lập điểm dừng để tránh thua lỗ quá mức
  8. Số lượng giao dịch dựa trên số tiền tài khoản và khả năng chấp nhận rủi ro

Chiến lược này đánh giá sự tồn tại của xu hướng với giả định rằng vùng Brin cần nằm hoàn toàn trên SMA200 và chỉ chọn vào nhiều hướng trong xu hướng tăng rõ ràng. Khi xu hướng đi xuống, kiểm soát rủi ro bằng cách dừng cổ phần điểm mấu chốt và dừng toàn bộ vị trí.

Phân tích lợi thế

  1. Có xu hướng rõ ràng sử dụng phán đoán theo vòng Brin, thay vì dựa trên chỉ số đơn lẻ
  2. SMA200 đánh giá xu hướng lớn, tránh giao dịch vô nghĩa trong tình trạng biến động
  3. Một phần dừng lợi nhuận, theo dõi xu hướng hoạt động
  4. Hạn chế lỗ hổng tại điểm mấu chốt để tránh thiệt hại lớn hơn
  5. Tính toán số lượng giao dịch để giới thiệu các khái niệm quản lý rủi ro để ngăn chặn tổn thất đơn lẻ quá lớn

Phân tích rủi ro

  1. Các tín hiệu giao dịch được tạo ra bởi sự đột phá của Binance có thể có tỷ lệ tín hiệu giả cao hơn
  2. Một số thiết lập điểm dừng cần được tối ưu hóa để ngăn chặn dừng quá sớm
  3. Điểm dừng quá nhỏ, có thể xảy ra quá thường xuyên
  4. Các tham số chu kỳ SMA cần được thử nghiệm để cân bằng độ trễ và độ nhạy
  5. Phương pháp tính toán số lượng giao dịch có thể cần được tối ưu hóa để tránh quá nhiều đơn vị

Những rủi ro này có thể được giảm bớt bằng cách kiểm tra cẩn thận các tham số Brin, tối ưu hóa các chiến lược dừng lỗ một phần, điều chỉnh tham số chu kỳ SMA và giới thiệu các phương pháp quản lý rủi ro khoa học hơn.

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

  1. Kiểm tra tối ưu hóa tham số của băng tần Brin, giảm tỷ lệ nhận xét sai tín hiệu
  2. Nghiên cứu cách thiết lập điểm dừng phần tử phù hợp hơn
  3. Thử giá trị tối ưu của tham số chu kỳ SMA
    1. Cân nhắc giới thiệu điểm dừng thích ứng thay cho điểm dừng cố định
  4. Nghiên cứu giới thiệu tỷ lệ biến động định lượng để tính toán quy mô giao dịch khoa học hơn
  5. Phản hồi thêm chi phí giao dịch để mô phỏng
  6. Cân nhắc sử dụng kết hợp với các chỉ số khác để tăng sự ổn định chiến lược

Tóm tắt

Chiến lược này tích hợp các kênh Brin và SMA để thiết kế một chiến lược theo dõi xu hướng hoàn chỉnh hơn. Nó có khả năng theo dõi xu hướng mạnh mẽ và đáng tin cậy hơn khi xác định xu hướng. Bằng cách liên tục tối ưu hóa chiến lược dừng lỗ, giảm tỷ lệ sai lầm tín hiệu và giới thiệu các phương tiện quản lý rủi ro khoa học, chiến lược này có thể trở thành một chiến lược xu hướng đáng để theo dõi trong thời gian dài.

Mã nguồn chiến lược
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 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/
// © mohanee

//@version=4
strategy(title="BB9_MA200_Strategy", overlay=true, pyramiding=1,     default_qty_type=strategy.cash,  initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed, 


var stopLossVal=0.00

//variables BEGIN
smaLength=input(200,title="MA Length")
bbLength=input(21,title="BB Length")  

bbsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")


stopLoss = input(title="Stop Loss%", defval=5, minval=1)

riskCapital = input(title="Risk % of capital  == Based on this trade size is claculated    numberOfShares = (AvailableCapital*risk/100) / stopLossPoints", defval=10, minval=1)


sma200=ema(close,smaLength)

plot(sma200, title="SMA 200", color=color.orange)


//bollinger calculation
basis = sma(bbsrc, bbLength)
dev = mult * stdev(bbsrc, bbLength)
upperBand = basis + dev
lowerBand = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)

//plot bb
plot(basis, "Basis", color=color.teal, style=plot.style_circles , offset = offset)
p1 = plot(upperBand, "Upper", color=color.teal, offset = offset)
p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=color.teal, transp=95)


strategy.initial_capital = 50000

//Entry---

strategy.entry(id="LE", comment="LE capital="+tostring(strategy.initial_capital + strategy.netprofit ,"######.##"), qty=( (strategy.initial_capital + strategy.netprofit ) * riskCapital / 100)/(close*stopLoss/100) , long=true,  when=strategy.position_size<1 and upperBand>sma200 and lowerBand > sma200 and crossover(close, basis) )     //  // aroonOsc<0  //(strategy.initial_capital * 0.10)/close


barcolor(color=strategy.position_size>=1? color.blue: na)

//partial Exit
tpVal=strategy.position_size>1 ? strategy.position_avg_price * (1+(stopLoss/100) ) : 0.00
strategy.close(id="LE", comment="Partial points="+tostring(close - strategy.position_avg_price, "####.##"),  qty_percent=30 , when=abs(strategy.position_size)>=1 and close>tpVal and crossunder(lowerBand, sma200)   )   //close<ema55 and rsi5Val<20 //ema34<ema55


//close All on stop loss
//stoploss
stopLossVal:=   strategy.position_size>1 ? strategy.position_avg_price * (1-(stopLoss/100) ) : 0.00

strategy.close_all( comment="SL Exit points="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and close < stopLossVal  )  //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89//

strategy.close_all( comment="BB9 X SMA200 points="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and  crossunder(basis, sma200)  )  //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89