Chiến lược này dựa trên các đường ray trên và dưới của Bollinger Bands để xác định khi nào giá vượt qua đường ray trên của Bollinger Bands để đi dài và vượt qua đường ray dưới để đi ngắn.
Chiến lược này sử dụng đường ray giữa / trên / dưới của Bollinger Bands để xác định phạm vi giá cực. Đường ray giữa là trung bình di chuyển đơn giản của giá đóng trong 25 giai đoạn qua. Đường ray trên và dưới là một độ lệch chuẩn trên và dưới đường ray giữa. Khi giá vượt qua đường ray trên hoặc dưới, nó chỉ ra rằng có một sự đột phá và hành vi giá bất thường, có thể được sử dụng để đưa ra quyết định giao dịch.
Nếu giá dưới đường ray dưới, đi dài. Nếu giá trên đường ray trên, đi ngắn. Khi đi dài, thiết lập stop loss với giá nhập nhân nhân nhân nhân stop loss và lấy lợi nhuận với giá nhập nhân nhân nhân nhân nhân.
Chiến lược cũng kết hợp một số quy tắc phụ, chẳng hạn như chỉ cho phép một tín hiệu mỗi 24 giờ để tránh giao dịch không cần thiết.
Quản lý rủi ro:
Tóm lại, đây là một chiến lược theo dõi xu hướng đơn giản bằng cách sử dụng Bollinger Bands để xác định giá bất thường và theo dõi xu hướng.
/*backtest start: 2023-11-18 00:00:00 end: 2023-12-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("I11L OIL Bot",overlay=true, initial_capital=1000000,default_qty_value=1000000,default_qty_type=strategy.cash,commission_type=strategy.commission.percent,commission_value=0.00) leverage = input.float(1,"Leverage (x)",step=1) SL_Factor = 1 - input.float(1,"Risk Capital per Trade (%)", minval=0.1, maxval=100, step=0.05) / 100 / leverage TP_Factor = input.float(2, step=0.1) invertBuyLogic = input.bool(false) lookbackDistance = input.int(25) devMult = input.float(2,step=0.1) var lastSellHour = 0 var disableAdditionalBuysThisDay = false if(time > lastSellHour + 1000 * 60 * 60 * 6) disableAdditionalBuysThisDay := false if(strategy.position_size != strategy.position_size[1]) disableAdditionalBuysThisDay := true lastSellHour := time source = close //Trade Logic basis = ta.sma(source, lookbackDistance) dev = devMult * ta.stdev(source, lookbackDistance) upper = basis + dev lower = basis - dev isBuy = ta.crossunder(source, upper) isBuyInverted = ta.crossover(source, lower) plot(upper, color=color.white) plot(lower, color=color.white) strategy.initial_capital = 50000 if((invertBuyLogic ? isBuyInverted : isBuy) and not(disableAdditionalBuysThisDay)) strategy.entry("Long", strategy.long, (strategy.initial_capital / close) * leverage) if(strategy.position_size > 0) strategy.exit("SL Long", "Long", stop=strategy.position_avg_price * SL_Factor) strategy.close("Long", when=close > strategy.position_avg_price * (1 + (1 - SL_Factor) * TP_Factor), comment="TP Long")