
La stratégie est un système de trading intelligent qui combine les classiques de l’analyse technique de l’équilibre et de la reconnaissance de la forme de la ligne K. La stratégie permet de capturer avec précision les points de basculement des tendances du marché en analysant les relations entre les lignes K et les entités, en combinant les signaux de croisement bi-équilibre. Le système ne se contente pas de surveiller les mouvements des prix, mais ajuste également dynamiquement les paramètres de négociation en calculant l’amplitude moyenne des vagues, ce qui améliore l’adaptabilité de la stratégie.
La logique de base de la stratégie est divisée en deux parties principales:
Le module de reconnaissance de la forme de la ligne K identifie les signaux potentiels de retournement en calculant la relation proportionnelle entre les lignes d’ombrage supérieures et inférieures et les entités. Le système définit des paramètres de multiplicité de ligne d’ombrage réglables (wickMultiplier) et des paramètres de pourcentage d’entités (bodyPercentage) pour optimiser la qualité du signal.
Le système de croisement bi-médian utilise une moyenne mobile simple (SMA) de 14 cycles et de 28 cycles comme indicateur de tendance. Lorsqu’une moyenne courte traverse la moyenne longue vers le haut, le système génère un signal de commutation. Lorsqu’une moyenne courte traverse la moyenne longue vers le bas, le système génère un signal de commutation.
La stratégie, combinant la reconnaissance de formes K et le système de croisement homogène, construit un cadre de décision de négociation relativement complet. L’avantage de la stratégie réside dans son mécanisme de filtrage de signal rigoureux et sa capacité d’ajustement de paramètres flexibles, mais il faut également prêter attention à l’optimisation des paramètres et à la question de 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)