Stratégie de suivi de la volatilité du cygne noir et du croisement des moyennes mobiles

EMA SMA ATR
Date de création: 2024-12-13 11:52:51 Dernière modification: 2024-12-13 11:52:51
Copier: 0 Nombre de clics: 458
1
Suivre
1617
Abonnés

Stratégie de suivi de la volatilité du cygne noir et du croisement des moyennes mobiles

Aperçu

La stratégie est un système de suivi dynamique des transactions basé sur l’amplitude des fluctuations des prix et les croisements de la ligne moyenne. La stratégie déclenche le signal principalement en surveillant les fluctuations anormales de la volatilité des prix supérieures à 1,91% (événements de couleur noire) et en combinant les croisements EMA144 et EMA169 pour confirmer la direction de la tendance et le moment de sortie. La stratégie est particulièrement adaptée aux transactions de courte durée de 1 à 3 minutes et permet de capturer rapidement les occasions de forte volatilité du marché.

Principe de stratégie

La logique centrale de la stratégie comprend deux parties principales:

  1. Surveillance de la volatilité: mesure de la volatilité des prix en calculant la différence absolue entre le prix de clôture et le prix d’ouverture par rapport au ratio du prix de clôture, et déclenche un signal de transaction lorsque ce ratio dépasse 1,91%
  2. Confirmation de la tendance: utilisation de la croisée des EMA144 et EMA169 pour confirmer la direction de la tendance, la croisée vers le haut fait plus, la croisée vers le bas fait moins. Les SMA60 et SMA20 sont également introduits comme indicateurs auxiliaires.

La stratégie est surchargée lorsqu’elle détecte une fluctuation à la hausse supérieure à 1,91% et est mise en couvert lorsqu’elle détecte une fluctuation à la baisse. Lorsqu’une inversion de la ligne de parité se produit, la stratégie est automatiquement levée pour contrôler le risque.

Avantages stratégiques

  1. Rapidité de réponse: la stratégie permet de saisir en temps opportun les fluctuations fortes du marché, particulièrement adaptée aux transactions à court terme.
  2. Contrôle du risque: contrôle efficace du risque de détention en utilisant le croisement de la même ligne comme signal de placement.
  3. Une grande flexibilité: les stratégies permettent de définir des intervalles de temps de réponse et d’ajuster les paramètres, ce qui peut être optimisé en fonction des différentes conditions du marché.
  4. Une gestion de position efficace: le contrôle des positions est effectué en pourcentage de la valeur nette du compte et la prise en charge d’une augmentation de position pyramidale pouvant aller jusqu’à 3 fois.

Risque stratégique

  1. Risque de fausse rupture: Des signaux fausses peuvent apparaître sur des marchés très volatils, entraînant des transactions inutiles.
  2. Risque de glissement: il est possible d’avoir une perte de glissement importante car la stratégie est utilisée sur un cycle court.
  3. Risque de renversement de tendance: risque de renversement rapide de la tendance après une forte volatilité.
  4. Sensitivité des paramètres: les effets de la stratégie sont sensibles aux paramètres, ce qui peut nécessiter des ajustements fréquents selon les conditions du marché.

Orientation de l’optimisation de la stratégie

  1. Introduction du filtrage des fluctuations: il est recommandé d’ajouter l’indicateur ATR pour filtrer le bruit du marché et améliorer la qualité du signal.
  2. Optimiser le timing des admissions: il est possible d’envisager d’augmenter le nombre de confirmations pour améliorer la précision des admissions.
  3. Paramètres d’ajustement dynamique: il est recommandé de développer un système de paramètres adaptatifs qui ajuste automatiquement les seuils de déclenchement en fonction des conditions du marché.
  4. Amélioration des mécanismes d’arrêt des pertes: il est recommandé d’ajouter une fonction de suivi des pertes pour mieux protéger les bénéfices déjà réalisés.

Résumer

La stratégie permet une réponse rapide et un suivi des tendances aux fluctuations anormales du marché en combinant la surveillance de la volatilité et le croisement de la courbe. La stratégie est conçue de manière rationnelle et dispose d’un bon mécanisme de contrôle des risques, mais nécessite toujours l’optimisation des paramètres et la gestion des risques par le trader en fonction de la situation réelle du marché.

Code source de la stratégie
/*backtest
start: 2024-12-05 00:00:00
end: 2024-12-12 00:00:00
period: 45m
basePeriod: 45m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

//黑天鹅警报器,作者():道格拉斯机器人
//适合1分钟-3分钟的k线,发生波动超过百分之二时,自动报警
strategy('黑天鹅警报', overlay=true, initial_capital=10000, currency='USD', default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, pyramiding=3)
//-------------------------------------------
//-------------------------------------------
timecondition = timeframe.period == '480' or timeframe.period == '240' or timeframe.period == 'D' or timeframe.period == '720'
// Make input options that configure backtest date range
startDate = input.int(title='Start Date', defval=1, minval=1, maxval=31)
startMonth = input.int(title='Start Month', defval=11, minval=1, maxval=12)
startYear = input.int(title='Start Year', defval=2018, minval=1800, maxval=2100)
endDate = input.int(title='End Date', defval=1, minval=1, maxval=31)
endMonth = input.int(title='End Month', defval=11, minval=1, maxval=12)
endYear = input.int(title='End Year', defval=2031, minval=1800, maxval=2100)
// Look if the close time of the current bar
// falls inside the date range
inDateRange = time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0) and time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0)



// Inputs
a = input(1, title='Key Vaule. \'This changes the sensitivity\'')
c = input(10, title='ATR Period')
h = input(false, title='Signals from Heikin Ashi Candles')


ma60 = ta.sma(close, 60)
ema144 = ta.ema(close, 144)

ema169 = ta.ema(close, 169)
ma20 = ta.sma(close, 20)


plot(ema144, color=color.new(color.yellow, 0), title='144')
plot(ema169, color=color.new(color.orange, 0), title='169')


heitiane = close - open
heitiane := math.abs(heitiane)
heitiane /= close

if inDateRange and heitiane > 0.0191 and close < open  //  and close>f3
    strategy.entry('botsell20', strategy.short, comment='黑天鹅追空' + str.tostring(heitiane))

if ta.crossover(ema144, ema169)
    strategy.close('botsell20', comment='平空')
if inDateRange and heitiane > 0.0191 and close > open  //  and close>f3
    strategy.entry('botbuy20', strategy.long, comment='白天鹅追多' + str.tostring(heitiane))

if ta.crossunder(ema144, ema169)
    strategy.close('botbuy20', comment='平多')