Cette stratégie est un système de trading de suivi de l'élan basé sur la volatilité des prix et les croisements de la moyenne mobile. Elle déclenche des signaux en surveillant la volatilité des prix supérieure à 1,91% (événements du Cygne noir) et combine les croisements EMA144 et EMA169 pour confirmer la direction de la tendance et le timing de sortie.
La logique de base se compose de deux composantes principales:
La stratégie permet d'entrer dans des positions longues lorsque la volatilité à la hausse est supérieure à 1,91% et des positions courtes pour une volatilité à la baisse.
Cette stratégie permet de répondre rapidement aux anomalies du marché et à la tendance suivante en combinant la surveillance de la volatilité avec des croisements de moyennes mobiles. Bien que la conception de la stratégie soit solide avec de bons mécanismes de contrôle des risques, les traders doivent optimiser les paramètres et gérer les risques en fonction des conditions réelles du marché. Il est recommandé de commencer par de petites positions dans le trading en direct et de valider progressivement la performance de la stratégie dans différents environnements de marché.
/*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='平多')