DAKELAX-XRPUSDT là một chiến lược bot giao dịch cho XRPUSDT trên Binance. Nó là một chiến lược ngược đơn giản để sử dụng các dải Bollinger, và hoạt động tốt trong backtest trên khung thời gian H1 từ tháng 5 đến tháng 8 năm 2019, cũng như chạy trực tiếp.
Chiến lược này đầu tiên tính toán SMA 20 giai đoạn và Bollinger Bands trên/dưới. Dải trên là SMA + 1.5 độ lệch chuẩn, và dải dưới là SMA - 2.2 độ lệch chuẩn. Sau đó nó tính toán tốc độ co lại của các dải. Dải được lấp đầy màu đen nếu co lại > 1.3, màu vàng nếu < 0.1, nếu không màu đỏ.
Khi giá đóng ở dưới dải dưới, nó đi dài với 20 đồng xu. Khi đóng ở trên dải trên, nó đóng tất cả các vị trí.
Chiến lược cũng tính toán đường EMA nhanh 7 giai đoạn và đường EMA chậm 18 giai đoạn.
Xem xét kích thước vị trí năng động hoặc dừng lỗ để kiểm soát rủi ro. Tối ưu hóa chiến lược chéo để tránh các whipsaws trong các thị trường dao động. Thêm các chỉ số xu hướng khung thời gian cao hơn để xác định các động thái lớn hơn.
Điều chỉnh số tiền mua dựa trên băng thông rộng, ít hơn khi hợp đồng và nhiều hơn khi mở rộng
Xem xét tích lũy vị trí khi co thắt được nhìn thấy nhưng tín hiệu chưa được kích hoạt
Thêm chỉ số xu hướng khung thời gian dài hơn để xác định hướng tổng thể, tạm dừng chiến lược khi không rõ ràng
Kết hợp dừng lỗ để kiểm soát rủi ro, có thể đặt gần mức thấp gần đây của dải
Tối ưu hóa các thông số chéo như thời gian EMA để tránh bị mắc kẹt
DAKELAX-XRPUSDT là một chiến lược bot giao dịch sử dụng Bollinger Band co lại với EMA crossover. Nó trực quan và có kết quả backtest tốt nhưng chứa một số rủi ro. Những rủi ro này có thể được giảm thông qua kích thước vị trí, chiến lược dừng, thêm stop loss và tối ưu hóa logic crossover.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //study(title="Tradebotler DAKELAX Binance:XRPUSDT Study-strategy", overlay=true) strategy(title="Tradebotler DAKELAX Binance:XRPUSDT Strategy", overlay=true) buyAmount = input(20, minval=1) // SMA20 len2 = input(20, minval=1) src2 = input(close) out2 = sma(src2, len2) // BB contraction value (medium tight) contraction_value = 1.3 // BB contraction value (very tight) contraction_value2 = 0.1 // 2xSTDEV BB calculation dev = stdev(src2, len2) upper_BB = out2 + 1.5*dev lower_BB = out2 - 2.2*dev x1 = plot(upper_BB, color=blue, linewidth = 2) x2 = plot(lower_BB, color=blue, linewidth = 2) contraction = (upper_BB-lower_BB)/out2 //fills the BBands according to the contraction value (threshold) // Calculate values fastMA = ema(close, 7) slowMA = ema(close, 18) // Determine alert setups crossUp = crossover(fastMA, slowMA) crossDown = crossunder(fastMA, slowMA) buySignal = (crossUp or crossUp[1]) and (low > slowMA) shortSignal = (crossDown or crossDown[1]) and (high < slowMA) // Highlight alerts on the chart bgColour = (buySignal and barstate.isrealtime) ? green : (shortSignal and barstate.isrealtime) ? red : na signalBuy = (buySignal ) ? true : false signalSell = (shortSignal ) ? true : false test = true test := not test[1] closesBelowLowerBB = close < lower_BB closesAboveUpperBB = close > upper_BB tmptext = "blah" // Plot values plot(series=fastMA, color=teal) plot(series=slowMA, color=orange) plot(out2, color=black, linewidth = 1) fill(x1, x2, color = contraction > contraction_value ? black : contraction < contraction_value2 ? yellow: red) isInRed = contraction < contraction_value and contraction >= contraction_value2 isInYellow = contraction < contraction_value and contraction < contraction_value2 if ( closesBelowLowerBB ) strategy.order('Buy', strategy.long, buyAmount) if ( closesAboveUpperBB ) strategy.close_all()