Stratégie de baisse extrême du marché basée sur les écarts statistiques

STD SMA MA SD
Date de création: 2024-11-29 16:46:33 Dernière modification: 2024-11-29 16:46:33
Copier: 0 Nombre de clics: 444
1
Suivre
1617
Abonnés

Stratégie de baisse extrême du marché basée sur les écarts statistiques

Aperçu

La stratégie est basée sur les caractéristiques statistiques de la baisse extrême du marché. L’analyse statistique des retraits permet de mesurer l’extrême de la volatilité du marché en utilisant le décalage standard et de faire des achats lorsque le marché baisse au-delà des limites normales. L’idée centrale de la stratégie est de capturer les opportunités de dépassement causées par l’humeur panique du marché et d’identifier les opportunités d’investissement résultant d’un comportement irrationnel du marché par des méthodes statistiques mathématiques.

Principe de stratégie

La stratégie utilise les caractéristiques statistiques de calcul des retraits maximaux et des retraits pour les prix à la fenêtre de temps de roulement. On calcule d’abord le prix le plus élevé des 50 derniers cycles, puis le pourcentage de retraits par rapport au prix de clôture le plus élevé actuel. On calcule ensuite la moyenne et le écart-type des retraits, en définissant un écart-type de 1 fois le seuil de déclenchement.

Avantages stratégiques

  1. Les stratégies sont basées sur des principes statistiques, avec une base théorique solide. La méthode est scientifique et objective, mesurant l’extrême des fluctuations du marché à l’aide d’un écart standard.
  2. Les stratégies permettent de saisir efficacement les opportunités d’investissement en période de panique du marché.
  3. La méthode de placement à périodes fixes permet d’éviter le problème du suivi des arrêts de perte qui pourraient manquer un rebond.
  4. Les paramètres de la stratégie sont adaptables et peuvent être réglés de manière flexible en fonction de l’environnement du marché et des caractéristiques des variétés de transactions.
  5. Le calcul des retraits et des écarts standards est simple, la logique stratégique est claire, facile à comprendre et à appliquer.

Risque stratégique

  1. Il est recommandé de fixer des limites de placement maximum.
  2. Les positions de clôture à périodes fixes peuvent manquer une plus grande marge de progression. Des méthodes de clôture à suivi de tendance peuvent être envisagées.
  3. Les paramètres de retrait peuvent être modifiés en fonction de l’évolution de l’environnement du marché. Il est recommandé de mettre à jour les paramètres régulièrement.
  4. La stratégie ne prend pas en compte d’autres informations sur le marché, telles que le volume de transactions. Il est recommandé de procéder à une vérification croisée de plusieurs indicateurs.
  5. Dans un environnement de marché très volatile, les écarts de la norme peuvent être déformés. Il est recommandé de mettre en place des mesures de contrôle des risques.

Orientation de l’optimisation de la stratégie

  1. L’introduction d’indicateurs de volume de transactions a confirmé le niveau de panique du marché.
  2. Augmenter les indicateurs de tendance et éviter les entrées fréquentes dans les tendances baissières
  3. Optimiser le mécanisme de liquidation des positions, en ajustant le temps de détention en fonction de la dynamique du marché.
  4. Augmentation des paramètres de stop-loss et maîtrise du risque de transaction unique.
  5. Envisager d’utiliser des paramètres d’adaptation pour améliorer l’adaptation de la stratégie aux changements du marché.

Résumer

La stratégie capture les opportunités de survente du marché par des méthodes statistiques, a une bonne base théorique et une valeur pratique. La logique de la stratégie est simple et claire, les paramètres sont ajustables et adaptés pour l’extension et l’optimisation de la stratégie de base. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées en ajoutant d’autres indicateurs techniques et des mesures de contrôle des risques.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy When There's Blood in the Streets Strategy", overlay=false, shorttitle="BloodInTheStreets")


//This strategy identifies opportunities to buy during extreme market drawdowns based on standard deviation thresholds. 
//It calculates the maximum drawdown over a user-defined lookback period, identifies extreme deviations from the mean, 
//and triggers long entries when specific conditions are met. The position is exited after a defined number of bars.


// User Inputs
lookbackPeriod = input.int(50, title="Lookback Period", minval=1, tooltip="Period to calculate the highest high for drawdown")
stdDevLength = input.int(50, title="Standard Deviation Length", minval=1, tooltip="Length of the period to calculate standard deviation")
stdDevThreshold = input.float(-1.0, title="Standard Deviation Threshold", tooltip="Trigger level for long entry based on deviations")
exitBars = input.int(35, title="Exit After (Bars)", minval=1, tooltip="Number of bars after which to exit the trade")

// Drawdown Calculation
peakHigh = ta.highest(high, lookbackPeriod)
drawdown = ((close - peakHigh) / peakHigh) * 100

// Standard Deviation Calculation
drawdownStdDev = ta.stdev(drawdown, stdDevLength)
meanDrawdown = ta.sma(drawdown, stdDevLength)

// Define Standard Deviation Levels
stdDev1 = meanDrawdown - drawdownStdDev
stdDev2 = meanDrawdown - 2 * drawdownStdDev
stdDev3 = meanDrawdown - 3 * drawdownStdDev

// Plot Drawdown and Levels
plot(drawdown, color=color.red, linewidth=2, title="Drawdown (%)")
plot(meanDrawdown, color=color.blue, linewidth=2, title="Mean Drawdown")
plot(stdDev1, color=color.green, linewidth=1, title="1st Std Dev")
plot(stdDev2, color=color.orange, linewidth=1, title="2nd Std Dev")
plot(stdDev3, color=color.purple, linewidth=1, title="3rd Std Dev")

// Entry Condition
var float entryBar = na
goLong = drawdown <= meanDrawdown + stdDevThreshold * drawdownStdDev

if (goLong and strategy.position_size == 0)
    strategy.entry("Long", strategy.long)
    entryBar := bar_index

// Exit Condition
if (strategy.position_size > 0 and not na(entryBar) and bar_index - entryBar >= exitBars)
    strategy.close("Long")