Stratégie de négociation de rupture de force de volatilité

Auteur:ChaoZhang est là., Date: 2023-10-26 16h17 et 17h17
Les étiquettes:

img

Résumé

Cette stratégie utilise la moyenne mobile, ATR, Bollinger Bands pour le jugement de la tendance et le trading de rupture, combinée à l'indice de force pour le timing, appartient à la stratégie de trading de rupture.

La logique de la stratégie

  1. Calculer les lignes intermédiaires, supérieures et inférieures des bandes de Bollinger.

  2. Calculez l'ATR rapide et lent. L'ATR rapide a une période de 20, l'ATR lent a une période de 50.

  3. Calculer l'indice de force XFORCE, qui est cumulé du volume * (close - précédent close).

  4. Jugez le signal long: XFORCE rapide passe au-dessus de XFORCE lent, et ATR rapide > ATR lent, et proche > ouvert.

  5. Jugez le signal court: XFORCE rapide passe sous XFORCE lent, et ATR rapide > ATR lent, et ferme < ouvert.

  6. Allez long quand le long est déclenché, allez court quand le court est déclenché.

Analyse des avantages

  1. La moyenne mobile fournit la tendance, les bandes de Bollinger fournissent des points de rupture.

  2. ATR évalue la volatilité, met en œuvre le trading de volatilité.

  3. L'indice de force détermine la direction de la force, implémente l'écart de force.

  4. La combinaison de plusieurs indicateurs fournit un jugement complet.

  5. Des règles claires et simples, faciles à comprendre et à mettre en œuvre.

  6. De bons résultats, des bénéfices stables.

Analyse des risques

  1. Les bandes de Bollinger peuvent générer des signaux erronés si la largeur est inappropriée.

  2. Des paramètres ATR erronés ne peuvent pas capter la volatilité du marché.

  3. L'indice de force a un effet limité, ne peut pas déterminer l'inversion de tendance réelle.

  4. Difficile d'ajuster les paramètres et les poids pour plusieurs indicateurs.

  5. Les signaux de rupture peuvent être inexacts, des divergences peuvent se produire.

  6. Le retrait peut être important, peut utiliser le stop loss pour le contrôler.

Directions d'optimisation

  1. Optimiser les paramètres des bandes de Bollinger pour différentes périodes et instruments.

  2. Optimiser les paramètres ATR pour mieux capturer la volatilité.

  3. Ajouter des indicateurs de tendance comme MACD pour la validation de tendance.

  4. Ajoutez des stratégies de stop-loss comme le trailing stop pour contrôler le retrait.

  5. Utilisez des algorithmes d'IA pour juger des signaux d'inversion.

  6. Combinez plusieurs délais pour un jugement complet et réduire les faux signaux.

Résumé

Cette stratégie intègre la moyenne mobile, l'ATR, les bandes de Bollinger et l'indice de force pour former un système de négociation de rupture complet. Des améliorations supplémentaires de l'optimisation des paramètres, l'ajout d'un filtre de tendance, une stratégie de stop loss et des algorithmes d'IA peuvent améliorer la stabilité et la rentabilité. Mais aucune stratégie n'est parfaite, des optimisations continues contre les résultats des backtests sont nécessaires pour s'adapter aux conditions changeantes du marché.


/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("yuthavithi volatility based force trade scalper strategy", overlay=true)

fast = input(3, minval= 1, title="Fast")
slow = input(20, minval = 1, title = "Slow")
atrFast = input(20, minval = 1, title = "ATR Fast")
atrSlow = input(50, minval = 1, title = "ATR Slow")

len = input(20, minval=1, title="Length")
multiplier = input(2, minval=1, title="multiplier")
src = input(close, title="Source")
bbMid = sma(src, len)
plot(bbMid, color=blue)

atrFastVal = atr(atrFast)
atrSlowVal = atr(atrSlow)
stdOut = stdev(close, len)
bbUpper = bbMid + stdOut * multiplier
bbLower = bbMid - stdOut * multiplier
plot(bbUpper, color = (atrFastVal > atrSlowVal ? red : silver))
plot(bbLower, color = (atrFastVal > atrSlowVal ? red : silver))


force = volume * (close -  nz(close[1]))
xforce = cum(force)
xforceFast = ema(xforce, fast)
xforceSlow = ema(xforce, slow)

bearish = ((xforceFast < xforceSlow) and (atrFastVal > atrSlowVal)) and ((xforceFast[1] > xforceSlow[1]) or (atrFastVal[1] < atrSlowVal[1])) and (close < open)
bullish = ((xforceFast > xforceSlow) and (atrFastVal > atrSlowVal)) and ((xforceFast[1] < xforceSlow[1]) or (atrFastVal[1] < atrSlowVal[1])) and (close > open)


if (bullish)
    strategy.entry("Buy", strategy.long)

if (bearish)
    strategy.entry("Sell", strategy.short)

Plus de