Diese Strategie ist ein anpassungsfähiges Handelssystem, das auf Bollinger Bands basiert und Positionen verwaltet, indem die Beziehung zwischen Preis und den Bands dynamisch überwacht wird.
Die Strategie wendet die statistischen Prinzipien der Bollinger Bands an, die die Preisschwankungen innerhalb eines normalen Verteilungsbereichs kontrollieren. 1. Verwendet den 20-tägigen einfachen gleitenden Durchschnitt (SMA), um das mittlere Band zu konstruieren 2. Setzt die oberen und unteren Bands anhand von 2 Standardabweichungen, um einen Preisschwankungsbereich zu bilden 3. Kauft eine 50%ige Position, wenn der Preis um 5% über den oberen Bereich bricht oder 1 Stunde darüber bleibt 4. Verringert die Position um 10% bei der ersten Rückkehr in die mittlere Bands, 50%, wenn der Preis um 5% unter die unteren Bands fällt 5. Steuert das Risiko und optimiert die Rendite durch schrittweise Positionsbildung und -reduktion
Die Strategie etabliert ein vollständiges Handelssystem durch Bollinger Bands und Zeitanalyse, wobei ein Gleichgewicht zwischen Trendverfolgung und Risikokontrolle hergestellt wird.
/*backtest start: 2024-11-11 00:00:00 end: 2024-12-10 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy", overlay=true) // 設定布林通道 length = 20 source = close mult = 2.0 basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev // 畫出布林通道 plot(upper, color=color.red, linewidth=1) plot(basis, color=color.blue, linewidth=1) plot(lower, color=color.green, linewidth=1) // 設定買入條件:突破布林通道高點5%或持續1小時在高點上方 breakout_level = upper * 1.01 hour_breakout = ta.change(time("60")) == 1 and close > upper buy_condition = (close > breakout_level or hour_breakout) if (buy_condition) strategy.entry("Buy", strategy.long, qty=0.5) // 設定賣出條件:第一次回測中線、跌破低點5%或回升中線 sell_10_condition = ta.crossover(close, basis) and strategy.opentrades > 0 sell_50_condition = close < lower * 0.95 // 賣出10%現貨 if (sell_10_condition) strategy.close("Buy", qty=0.1) // 賣出50%現貨 if (sell_50_condition) strategy.close("Buy", qty=0.5) // 監控買入與賣出信號 plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal") plotshape(series=sell_10_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell 10% Signal") plotshape(series=sell_50_condition, location=location.abovebar, color=color.blue, style=shape.labeldown, title="Sell 50% Signal")