Es handelt sich um eine mehrindikatorige quantitative Handelsstrategie, die Bollinger Bands, Ichimoku Cloud und Support/Resistance-Level kombiniert. Die Strategie identifiziert potenzielle Handelschancen durch Analyse von Marktvolatilität, Trendstärke und wichtigen Preisniveaus. Sie verwendet präzise Einstiegsbedingungen und Risikomanagementmethoden, um eine robuste Handelsleistung zu erzielen. Die Kernstärke liegt in der Quervalidierung durch mehrere technische Indikatoren zur Verbesserung der Signalzuverlässigkeit.
Die Strategie verwendet drei Haupttechnische Indikatorenkomponenten: Bollinger Bands zur Messung von Marktvolatilität und Überkauf-/Überverkaufsbedingungen; Ichimoku Cloud zur Bewertung der Trendrichtung und -stärke; Unterstützungs-/Widerstandsniveaus zur Identifizierung wichtiger Preisniveaus. Die Kombination mehrerer Indikatoren bietet eine umfassendere Marktperspektive.
Handelssignale werden basierend auf den folgenden Bedingungen generiert: Long-Signale werden ausgelöst, wenn der Preis über den oberen Bollinger Band, Positionen über der Ichimoku-Wolke und über das vorherige Hoch bricht; Short-Signale werden ausgelöst, wenn der Preis unter den unteren Bollinger Band, Positionen unter der Ichimoku-Wolke bricht und unter das vorherige Tief bricht. Die Strategie umfasst prozentual basierte Gewinnziele und Stop-Losses zur Risikokontrolle.
Es handelt sich um eine quantitative Handelsstrategie, die umfassend mehrere technische Indikatoren nutzt und Handelschancen durch Trend-Breakouts und mehrere Signalbestätigungen erfasst. Die Stärken der Strategie liegen in der hohen Signalzuverlässigkeit und dem robusten Risikomanagement, aber es muss auf falsche Breakouts und Parameteroptimierungsprobleme geachtet werden. Durch kontinuierliche Optimierung und Risikomanagement hat die Strategie das Potenzial, eine stabile Performance unter verschiedenen Marktbedingungen aufrechtzuerhalten.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BB Ichimoku S/R Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input parameters bb_length = input.int(20, "Bollinger Bands Length") bb_mult = input.float(2.0, "Bollinger Bands Multiplier") ichimoku_tenkan = input.int(9, "Ichimoku Tenkan-sen") ichimoku_kijun = input.int(26, "Ichimoku Kijun-sen") ichimoku_senkou = input.int(52, "Ichimoku Senkou Span B") sr_lookback = input.int(14, "S/R Lookback Period") profit_target = input.float(1.5, "Profit Target (%)", minval=0.1, step=0.1) stop_loss = input.float(1.0, "Stop Loss (%)", minval=0.1, step=0.1) // Bollinger Bands [bb_middle, bb_upper, bb_lower] = ta.bb(close, bb_length, bb_mult) // Ichimoku Cloud tenkan = ta.ema(hl2, ichimoku_tenkan) kijun = ta.ema(hl2, ichimoku_kijun) spanA = (tenkan + kijun) / 2 spanB = ta.ema(hl2, ichimoku_senkou) // Support and Resistance highest_high = ta.highest(high, sr_lookback) lowest_low = ta.lowest(low, sr_lookback) // Entry conditions long_condition = close > bb_upper and close > spanA and close > spanB and close > highest_high[1] short_condition = close < bb_lower and close < spanA and close < spanB and close < lowest_low[1] // Execute trades if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Set profit target and stop loss strategy.exit("TP/SL", "Long", profit=strategy.position_avg_price * (1 + profit_target / 100), loss=strategy.position_avg_price * (1 - stop_loss / 100)) strategy.exit("TP/SL", "Short", profit=strategy.position_avg_price * (1 - profit_target / 100), loss=strategy.position_avg_price * (1 + stop_loss / 100)) // Plot indicators plot(bb_middle, color=color.blue, title="BB Middle") plot(bb_upper, color=color.red, title="BB Upper") plot(bb_lower, color=color.red, title="BB Lower") plot(tenkan, color=color.orange, title="Tenkan-sen") plot(kijun, color=color.purple, title="Kijun-sen") spanA_plot = plot(spanA, color=color.green, title="Senkou Span A") spanB_plot = plot(spanB, color=color.red, title="Senkou Span B") plot(highest_high, color=color.green, title="Resistance") plot(lowest_low, color=color.red, title="Support") // Fill Ichimoku Cloud fill(spanA_plot, spanB_plot, color=spanA > spanB ? color.rgb(76, 175, 80, 90) : color.rgb(255, 82, 82, 90))