Chiến lược này dựa trên chỉ số Bollinger Bands. Nó tạo ra tín hiệu mua và bán khi giá vượt qua dải trên hoặc dưới của Bollinger Bands. Nó cũng kết hợp hướng của đường trung bình để xác định xu hướng, chỉ mất thời gian dài khi MA tăng và ngắn khi MA giảm.
Chiến lược chủ yếu sử dụng các chỉ số sau đây để đánh giá:
Các tín hiệu giao dịch cụ thể là:
Bằng cách kết hợp xu hướng và đột phá, tín hiệu giao dịch trở nên đáng tin cậy hơn và tránh đột phá sai.
Nói chung, đây là một chiến lược đơn giản nhưng thực tế phù hợp với hầu hết mọi người. Với một số điều chỉnh và tối ưu hóa, nó có thể mạnh mẽ hơn và thích nghi với nhiều tình huống thị trường hơn.
/*backtest start: 2023-12-14 00:00:00 end: 2023-12-18 19:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy(title="single sma cross", shorttitle="single sma cross",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,overlay=true,currency="USD") s=input(title="s",defval=90) p=input(title="p",type=float,defval=.9,step=.1) sa=sma(close,s) plot(sa,color=red,linewidth=3) band=stdev(close,s)*p plot(band+sa,color=lime,title="") plot(-band+sa,color=lime,title="") // ===Strategy Orders============================================= ======== inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0) inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0) inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0) inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0) useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na longCondition = crossover(close,sa+band) and rising(sa,5) shortCondition = crossunder(close,sa-band) and falling(sa,5) crossmid = cross(close,sa) strategy.entry(id = "Long", long=true, when = longCondition) strategy.close(id = "Long", when = shortCondition) strategy.entry(id = "Short", long=false, when = shortCondition) strategy.close(id = "Short", when = longCondition) strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid) strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=crossmid)