
Cette stratégie est un système de trading quantitatif basé sur l’analyse technique, qui utilise principalement la morphologie de l’absorption de bulls comme signal d’entrée et gère le risque et le contrôle de la position en combinaison avec les indicateurs de volatilité de la bande de Boulder. Après avoir identifié la morphologie de l’absorption de bulls, la stratégie détermine le taux de risque R (valeur) en fonction de la gamme de volatilité calculée par la bande de Boulder, puis calcule la taille exacte de la position sur la base d’un pourcentage fixe de la valeur totale du compte (valeur de 0,75%) et finit par gérer la transaction en définissant un objectif de profit de stop loss et un rapport de retour sur risque fixe (4R).
La logique centrale de cette stratégie est principalement divisée en trois parties: la génération de signaux, la gestion des positions et les conditions de sortie.
Tout d’abord, la génération de signaux est basée sur une forme d’absorption de l’observateur, qui doit satisfaire aux conditions suivantes:
Deuxièmement, la gestion des positions est réalisée par les étapes suivantes:
Enfin, les conditions de sortie sont les suivantes:
Le contrôle du risque est précis et dynamique: la stratégie n’utilise pas de points de perte fixes, mais ajuste dynamiquement les paramètres de risque en fonction de la volatilité actuelle du marché (calculée via des bandes de Bryn) afin que le système puisse s’adapter à différents environnements de marché.
Gestion des risques à taux fixe: 0,75% du risque du compte par transaction, ce qui permet de prévenir efficacement les pertes excessives de transactions individuelles et de garantir la stabilité de la gestion des fonds à long terme.
Calcul précis de la position: calcul précis de la taille de la position pour chaque transaction, basé sur la volatilité des bandes de Brin et le montant du risque, afin de garantir une exposition au risque constante dans différentes conditions de marché.
Résultat-risque clairement défini: fixez un objectif de rendement en utilisant les 4 R, assurez-vous que le rendement potentiel de chaque transaction est 4 fois supérieur au risque potentiel et respecte les exigences de rendement-risque des transactions professionnelles.
Visualisation des transactions: aide les traders à visualiser les performances des transactions en marquant les signaux d’entrée et en dessinant des zones de transactions.
Risques de timing: La forme de l’engorgement des bulls est un signal de revers de prix à court terme qui peut ne pas être en mesure de prédire les changements de tendance à moyen et long terme, ce qui peut entraîner une entrée prématurée dans un marché à forte tendance.
Limitation des conditions de marché: la stratégie peut mal fonctionner dans des marchés très volatils ou peu liquides, en particulier lorsque les courbes de Brin s’étendent ou se contractent de manière anormale.
Conditions d’entrée limitées: la dépendance à une seule forme d’absorption de spectateur peut entraîner une rareté du signal ou la perte d’autres opportunités d’entrée valides.
Risque de multiplication fixe: l’utilisation d’un coefficient fixe de 0,4 pour calculer la valeur de R peut ne pas être suffisamment flexible dans certaines conditions de marché et ne pas être suffisamment adaptée à un environnement de marché extrême.
Problème de dérapage potentiel: dans un marché très volatile, le prix d’exécution de l’arrêt de perte réel peut présenter un dérapage évident, affectant l’effet de la gestion du risque réel.
Ajoutez des conditions de filtrage: il est possible d’envisager d’ajouter des indicateurs de confirmation de tendance (comme les moyennes mobiles) pour s’assurer que les transactions se déroulent uniquement dans la direction de la tendance dominante, et d’éviter les transactions à contre-courant.
Analyse de plusieurs périodes: analyse de la structure du marché sur des périodes plus longues, pour effectuer des transactions uniquement lorsque les tendances des périodes plus longues sont cohérentes, améliorant ainsi la qualité du signal.
Paramètres de risque d’ajustement dynamique: un ratio de risque fixe de 0,75% et un coefficient de valeur R de 0,4 sont définis comme des paramètres ajustables, qui s’ajustent automatiquement en fonction de la volatilité du marché, augmentant le risque dans les marchés à faible volatilité et réduisant le risque dans les marchés à forte volatilité.
Optimisation des stratégies d’exit: il est possible d’envisager d’ajouter des conditions d’exit mobiles ou dynamiques basées sur les indicateurs, plutôt que de s’appuyer uniquement sur des niveaux fixes de stop-loss et de profit.
Augmentation de la confirmation multi-indicateurs: la combinaison de la forme de l’apport de bullish avec d’autres indicateurs techniques (tels que le RSI, le MACD ou l’analyse du volume de transactions) améliore la fiabilité du signal d’entrée.
Le système de négociation quantifiée est un système de négociation complet qui combine l’identification de la forme de l’écran traditionnel et les méthodes modernes de gestion du risque. La stratégie ajuste les paramètres de risque de manière dynamique, contrôle précisément la taille de la position de chaque transaction et utilise un objectif de rendement par rapport à un risque fixe.
Bien que la stratégie ait fait de bonnes performances en matière de gestion des risques, il reste de la place pour l’optimisation, en particulier en ce qui concerne la qualité des signaux d’entrée et la flexibilité de la stratégie de sortie. En ajoutant des conditions de filtrage supplémentaires, une analyse de plusieurs périodes et une adaptation des paramètres de risque dynamiques, la stratégie peut encore améliorer son adaptabilité et sa rentabilité dans différents environnements de marché.
Dans l’ensemble, il s’agit d’un système de négociation complet aux caractéristiques de gestion des risques professionnels, adapté aux traders qui accordent une grande importance à la gestion des fonds et au contrôle des risques. Avec une optimisation et un ajustement des paramètres raisonnables, la stratégie peut devenir un outil de négociation stable à long terme.
/*backtest
start: 2024-02-26 00:00:00
end: 2025-02-23 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/
//@version=5
strategy("Bullish Engulfing Strategy with BB Risk", overlay=true)
// Input parameters for customization (optional, can be adjusted in Strategy Tester)
minVolume = input.int(1000000, "Minimum Volume", minval=1) // Optional filter for liquidity
// Calculate Bollinger Bands (length=40, StdDev=2.5) for R
length = 40
mult = 2.5
basis = ta.sma(close, length) // Middle Band (40-period SMA of close)
dev = mult * ta.stdev(close, length) // Standard deviation multiplied by 2.5
upperBB = basis + dev // Upper Bollinger Band
lowerBB = basis - dev // Lower Bollinger Band
// Define R as 0.4 times the Bollinger Bands spread: R = 0.4 * ((1 - (lowerBB / upperBB)) * 100)
R = 0.4 * (1 - (lowerBB / upperBB)) // Percentage value, scaled by 0.4
// Define Bullish Engulfing pattern with optional volume filter
isBullishEngulfing() => close > open and close[1] < open[1] and close > open[1] and open < close[1] and close[1] < open[1] and close > open and volume > minVolume
bullishEngulfing = isBullishEngulfing()
// Track position and entry details
var bool inPosition = false
var float entryPrice = 0.0
var int entryBar = 0
var int exitBar = 0 // Track exit bar (added here to fix undeclared variable)
var float exitPrice = 0.0 // Track exit price
// Enter long position on the next bar after Bullish Engulfing, with position size risking 0.75% of portfolio
if (bullishEngulfing and not inPosition)
// Calculate position size to risk 0.75% of portfolio
portfolioValue = strategy.equity // Current portfolio equity
riskPerTrade = portfolioValue * 0.0075 // 0.75% of portfolio
stopLossDistance = R // R% of entry price (stop-loss distance)
entryPrice := close
positionSize = riskPerTrade / stopLossDistance / entryPrice // Position size in units (contracts/shares)
// Ensure positionSize is rounded to a practical number (e.g., whole shares)
positionSize := math.round(positionSize)
// Enter long position with calculated size
strategy.entry("Long", strategy.long, limit = entryPrice, qty=positionSize)
inPosition := true
entryBar := bar_index
// Exit logic: Stop-loss or Take-profit
if (inPosition)
// Stop-loss: Exit if price drops below entryPrice - R%
stopLossLevel = entryPrice * (1 - R)
if (low <= stopLossLevel)
strategy.close("Long")
inPosition := false
exitBar := bar_index
exitPrice := close
// Take-profit: Exit if price rises above entryPrice + 4R%
takeProfitLevel = entryPrice * (1 + 4 * R)
if (high >= takeProfitLevel)
strategy.close("Long")
inPosition := false
exitBar := bar_index
exitPrice := close
// Optional: Plot signals and R for visualization
if (bullishEngulfing)
label.new(bar_index, high, "Bullish Engulfing", yloc=yloc.abovebar, color=color.green, style=label.style_label_down, textcolor=color.white)
plot(R, title="R (BB Spread %)", color=color.blue, style=plot.style_histogram)