Cette stratégie est un système de trading intelligent qui combine des outils d'analyse technique classiques, y compris les croisements de moyennes mobiles et la reconnaissance de modèles de bougies. La stratégie identifie les points tournants potentiels du marché en analysant la relation entre les ombres et les corps des bougies, tout en incorporant des signaux de croisement de moyennes mobiles doubles. Le système se concentre non seulement sur les tendances des prix, mais calcule également des plages moyennes pour ajuster dynamiquement les paramètres de trading pour une meilleure adaptabilité.
La logique de base se compose de deux composantes principales:
Le module de reconnaissance de motifs de chandelier identifie les signaux d'inversion potentiels en calculant le rapport entre les ombres et les corps. Le système comprend des paramètres réglables pour le multiplicateur d'ombre (wickMultiplier) et le pourcentage de corps (bodyPercentage) pour optimiser la qualité du signal.
Le double système de croisement des moyennes mobiles utilise des moyennes mobiles simples (MMA) de 14 périodes et 28 périodes comme indicateurs de tendance.
Cette stratégie construit un cadre de décision de trading relativement complet en combinant la reconnaissance de modèles de bougies avec des systèmes de croisement de moyennes mobiles. Ses atouts résident dans des mécanismes de filtrage de signal stricts et des capacités d'ajustement de paramètres flexibles, tandis que l'attention doit être portée à l'optimisation des paramètres et à l'adaptabilité à l'environnement du marché.
/*backtest start: 2024-10-28 00:00:00 end: 2024-11-27 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 indicator("Wick Reversal Setup", overlay=true) // Input parameters wickMultiplier = input.float(3.5, title="Wick Multiplier", minval=0.5, maxval=20) bodyPercentage = input.float(0.25, title="Body Percentage", minval=0.1, maxval=1.0) // Calculate the average range over 50 periods avgRange = ta.sma(high - low, 50) // Define the lengths of wicks and bodies bodyLength = math.abs(close - open) upperWickLength = high - math.max(close, open) lowerWickLength = math.min(close, open) - low totalRange = high - low // Long signal conditions longSignal = (close > open and upperWickLength >= bodyLength * wickMultiplier and upperWickLength <= totalRange * bodyPercentage) or (close < open and lowerWickLength >= bodyLength * wickMultiplier and upperWickLength <= totalRange * bodyPercentage) or (close == open and close != high and upperWickLength >= bodyLength * wickMultiplier and upperWickLength <= totalRange * bodyPercentage) or (open == high and close == high and totalRange >= avgRange) // Short signal conditions shortSignal = (close < open and (high - open) >= bodyLength * wickMultiplier and lowerWickLength <= totalRange * bodyPercentage) or (close > open and (high - close) >= bodyLength * wickMultiplier and lowerWickLength <= totalRange * bodyPercentage) or (close == open and close != low and lowerWickLength >= bodyLength * wickMultiplier and lowerWickLength <= totalRange * bodyPercentage) or (open == low and close == low and totalRange >= avgRange) // Plot signals plotshape(series=longSignal, location=location.belowbar, color=color.green, style=shape.labelup, text="Long") plotshape(series=shortSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="Short") // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Sahaj_Beriwal //@version=5 strategy("My strategy", overlay=true, margin_long=100, margin_short=100) longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28)) if (longCondition) strategy.entry("L", strategy.long) shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28)) if (shortCondition) strategy.entry("S", strategy.short)