
La stratégie est un système de trading quantitatif spécialement conçu pour capturer les périodes d’extrême volatilité du marché. Il surveille le degré d’écart entre les prix et la ligne moyenne, identifie les épuisements de liquidité qui peuvent survenir sur le marché, afin de capturer les opportunités de retournement du marché. La stratégie utilise la combinaison de la ligne moyenne, le suivi de la volatilité et le mécanisme d’arrêt dynamique pour construire un système de trading complet.
Le cœur de la stratégie est d’identifier les anomalies du marché en calculant les écarts de prix par rapport à la moyenne. Les implémentations comprennent:
La stratégie de capture dynamique de liquidité en chaîne est un système de trading quantitatif qui se concentre sur la capture des extrêmes du marché. Grâce à une combinaison scientifique d’indicateurs et à un contrôle strict des risques, la stratégie est capable de capturer des opportunités de trading en cas de forte volatilité du marché. Bien que certains risques existent, la stratégie est susceptible de maintenir une performance stable dans divers environnements de marché grâce à une optimisation et une amélioration continues.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Liquidation Cascade Strategy", overlay=true)
// Paramètres de l'indicateur de liquidation
var float lastHigh = na
var float lastLow = na
var float lastPriceLow = na
var float lastPriceHigh = na
var bool shortLiq = na
var bool longLiq = na
src = close
maLength1 = 15
maLength2 = 30
ma1 = ta.sma(src, maLength1)
ma2 = ta.ema(src, maLength2)
avgLine = (ma1 + ma2) / 2
distVal = ((src - avgLine) / avgLine) * 100
ph = ta.highest(distVal, 89)
pl = ta.lowest(distVal, 89)
if ph == distVal and ph > 0
lastHigh := distVal
lastPriceHigh := high
if pl == distVal and pl < 0
lastLow := distVal
lastPriceLow := low
shortLiq := not na(lastHigh) and lastHigh == distVal and distVal > 0
longLiq := not na(lastLow) and lastLow == distVal and distVal < 0
// Condition d'achat : 3 liquidations longues consécutives
buyCondition = ta.valuewhen(longLiq, longLiq, 0) and ta.valuewhen(longLiq, longLiq, 1) and ta.valuewhen(longLiq, longLiq, 2)
if (buyCondition)
strategy.entry("Buy", strategy.long)
// Conditions de vente
var float entryPrice = na
var bool positionOpen = false
// Mise à jour du prix d'entrée
if (buyCondition)
entryPrice := close
positionOpen := true
// 1. Vente sur rebond technique (distVal > -1%)
sellCondition1 = distVal > -1 and positionOpen
// 2. Vente sur liquidation courte
sellCondition2 = shortLiq and positionOpen
// 3. Trailing Stop (2x ATR)
atr = ta.atr(14)
trailingStop = close - 2 * atr
sellCondition3 = close < trailingStop and positionOpen
// Exécution des ventes
if (sellCondition1 or sellCondition2 or sellCondition3)
strategy.close("Buy")
positionOpen := false
// Visualisation
plot(avgLine, color=color.blue, title="Avg Line")
plot(distVal, color=distVal > 0 ? color.red : color.green, style=plot.style_columns)