
Il s’agit d’une stratégie de trading quantitative avancée combinant l’indicateur de Supertrend et l’analyse de la transaction. La stratégie identifie les points de retournement de tendance potentiels en surveillant dynamiquement les intersections des prix avec les lignes de Supertrend et les performances anormales de la transaction. La stratégie utilise des paramètres de stop-loss et de profit dynamiques basés sur la vraie amplitude d’onde (ATR), garantissant à la fois la flexibilité de la transaction et la fiabilité du contrôle des risques.
La logique fondamentale de la stratégie repose sur les éléments clés suivants :
La stratégie, en combinant des indicateurs de tendance supérieure avec l’analyse du volume de transactions, construit un système de négociation à la fois fiable et adaptable. L’avantage de la stratégie réside dans la multidimensionnalité de la confirmation du signal et la dynamique de la gestion des risques, mais il faut toujours tenir compte de l’impact de l’environnement du marché sur la performance de la stratégie.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend with Volume Strategy", overlay=true)
// Input parameters for Supertrend
atrLength = input(10, title="ATR Length")
multiplier = input(3.0, title="Multiplier")
// Calculate Supertrend
[supertrend, direction] = ta.supertrend(multiplier, atrLength)
// Plot Supertrend
plot(supertrend, color=direction == 1 ? color.green : color.red, title="Supertrend")
// Volume condition
volumeThreshold = input(1.5, title="Volume Threshold (x Average)")
avgVolume = ta.sma(volume, 20) // 20-period average volume
highVolume = volume > (avgVolume * volumeThreshold)
// Define entry conditions
longCondition = ta.crossover(close, supertrend) and highVolume
shortCondition = ta.crossunder(close, supertrend) and highVolume
// Execute trades
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Optional: Add stop loss and take profit
stopLoss = input(1.5, title="Stop Loss (in ATRs)")
takeProfit = input(3.0, title="Take Profit (in ATRs)")
if (longCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long",
limit=close + (takeProfit * ta.atr(atrLength)),
stop=close - (stopLoss * ta.atr(atrLength)))
if (shortCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short",
limit=close - (takeProfit * ta.atr(atrLength)),
stop=close + (stopLoss * ta.atr(atrLength)))