
Chiến lược này dựa trên đường đi lên xuống của vòng Brin, xác định giá phá vỡ đường đi lên của vòng Brin và làm trống khi phá vỡ đường đi xuống.
Chiến lược này sử dụng đường trung tâm, đường trên và đường dưới trong vòng Brin để đánh giá phạm vi giá cực. đường trung tâm là đường trung bình di chuyển đơn giản của giá đóng cửa trong 25 chu kỳ qua, đường trên và đường dưới là khoảng cách tiêu chuẩn tiếp theo trên đường trung tâm.
Nếu giá thấp hơn đường ray xuống, mua nhiều hơn; Nếu giá cao hơn đường ray lên, bán hết. Khi làm nhiều hơn, thiết lập đường dừng là giá nhập cảnh nhân với yếu tố dừng, đường dừng là giá nhập cảnh nhân với yếu tố dừng.
Chính sách này cũng có thêm một số quy tắc phụ trợ, chẳng hạn như chỉ cho phép phát một tín hiệu trong vòng 24 giờ để tránh các giao dịch không cần thiết.
Biện pháp kiểm soát rủi ro:
Chiến lược này nói chung là một chiến lược theo dõi xu hướng đơn giản, sử dụng dây Brin để xác định giá bất thường và theo dõi xu hướng, có không gian tối ưu hóa về tối ưu hóa tham số, kiểm soát rủi ro và lọc tín hiệu, nhưng ý tưởng cốt lõi đơn giản và rõ ràng, phù hợp để học chiến lược.
/*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")