
Il s’agit d’une stratégie de négociation quantifiée à plusieurs indicateurs combinant des bandes de Brin, des graphiques d’équilibre à première vue et des points de résistance de soutien. La stratégie identifie les opportunités de négociation potentielles en analysant la volatilité du marché, la force de la tendance et les niveaux de prix critiques.
La stratégie utilise trois principaux composants d’indicateurs techniques: les bandes de Brin sont utilisées pour mesurer la volatilité du marché et le sur-achat et le sur-vente; les diagrammes d’équilibre à la première vue sont utilisés pour évaluer la direction et la force de la tendance; les points de résistance de soutien sont utilisés pour identifier les niveaux de prix critiques. L’utilisation combinée de plusieurs indicateurs fournit une perspective plus complète du marché.
La génération du signal de négociation est basée sur les conditions suivantes: lorsque le prix franchit la bande de Brin et se trouve au-dessus du premier nuage et franchit le haut de la période précédente, un signal de multiplication est déclenché; lorsque le prix franchit la bande de Brin et se trouve en dessous du premier nuage et tombe au-dessus du bas de la période précédente, un signal de rupture est déclenché. La stratégie comprend également un paramètre de stop loss basé sur le pourcentage pour contrôler le risque.
Il s’agit d’une stratégie de trading quantitative qui utilise de multiples indicateurs techniques pour saisir les opportunités de trading grâce à des ruptures de tendance et à la confirmation de plusieurs signaux. L’avantage de la stratégie réside dans la fiabilité du signal et la gestion des risques, mais il faut faire attention aux problèmes de fausses ruptures et d’optimisation des paramètres.
/*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))