Stratégie de négociation quantitative FNGU basée sur les bandes de Bollinger et le RSI

Auteur:ChaoZhang est là., Date: 2024-01-29 14:53:47 Je vous en prie
Les étiquettes:

img

Résumé

Cette stratégie s'appelle FNGU Quantitative Trading Strategy Based on Bollinger Bands and RSI. C'est une stratégie à long terme conçue spécifiquement pour le stock FNGU. La stratégie utilise principalement des indicateurs Bollinger Bands et RSI pour identifier les conditions de surachat et de survente du stock afin de générer des signaux d'achat et de vente.

La logique de la stratégie

La logique de base de cette stratégie est basée sur la combinaison des bandes de Bollinger et des indicateurs RSI.

Tout d'abord, les bandes de Bollinger contiennent trois lignes: la ligne moyenne, la ligne supérieure et la ligne inférieure. La ligne moyenne est la moyenne mobile simple de n jours, tandis que la ligne supérieure et la ligne inférieure sont k fois l'écart type au-dessus et au-dessous de la ligne moyenne. Lorsque le prix atteint ou touche la ligne supérieure ou inférieure, cela indique que le stock est en état de surachat ou de survente.

Dans cette stratégie, la durée de la ligne moyenne des bandes de Bollinger est de 235 jours et la valeur du paramètre k est de 2. Elle génère des signaux d'achat lorsque le prix tombe en dessous de la ligne inférieure de Bollinger ou dépasse la ligne moyenne, et des signaux de vente lorsque le prix dépasse la ligne supérieure de Bollinger.

Deuxièmement, l'indicateur RSI reflète le niveau de surachat/survente d'un stock.

Dans cette stratégie, les bandes de Bollinger et les indicateurs RSI sont utilisés ensemble: les signaux d'achat sont générés lorsque le RSI dépasse le niveau de survente tandis que le prix touche ou tombe en dessous de la ligne inférieure de Bollinger. Les signaux de vente sont générés lorsque le RSI dépasse le niveau de surachat tandis que le prix augmente au-dessus de la ligne supérieure de Bollinger.

Les avantages de la stratégie

Cette stratégie présente les avantages suivants:

  1. La combinaison des bandes de Bollinger et du RSI rend les signaux d'achat/vente plus précis et plus fiables.
  2. Les bandes de Bollinger identifient les zones de prix surachetés/survendus, tandis que le RSI filtre les faux signaux.
  3. Il n'effectue que des transactions longues, pas besoin d'envisager de prendre des risques courts.
  4. Les paramètres optimisés le rendent spécifiquement adapté aux stocks de GNLF hautement volatiles.
  5. Il met en œuvre un stop loss automatisé pour réduire les risques de perte.
  6. La réalisation du codage est simple et claire, facile à comprendre et à modifier.

Risques et solutions

Il existe également certains risques associés à cette stratégie:

  1. Les bandes de Bollinger et le RSI peuvent générer de faux signaux, ce qui conduit facilement à un surajustement.
  2. Le FNGU lui-même a une forte volatilité. Un paramètre de stop loss inapproprié peut augmenter les pertes. La plage de stop loss doit être élargie.
  3. La stratégie ne s'applique qu'aux stocks très volatils comme le FNGU plutôt qu'à d'autres.
  4. Bien qu'optimisés, les paramètres peuvent devenir obsolètes avec les changements du marché, ce qui nécessite une surveillance et une optimisation continues.

Directions pour l'optimisation de la stratégie

Il existe plusieurs directions pour optimiser davantage cette stratégie:

  1. Ajoutez d'autres indicateurs techniques comme le KDJ et le MACD pour produire des signaux plus précis.
  2. Optimiser les paramètres des bandes de Bollinger et de l'indicateur RSI pour adapter davantage de types d'actions.
  3. Incorporer des modèles d'apprentissage automatique pour faciliter la prise de décision avec plus de données.
  4. Mettre en œuvre des échanges interpériodiques en utilisant des données sur des délais plus longs.
  5. Combinez l'analyse du sentiment en utilisant les données des médias sociaux pour générer des signaux de trading.
  6. Développer un système de backtesting quantitatif pour tester rapidement différents paramètres.

Conclusion

Il s'agit d'une stratégie à long terme particulièrement adaptée aux actions hautement volatiles telles que le FNGU. En combinant les bandes de Bollinger et le RSI, il génère des signaux de trading autour des niveaux de prix surachetés/survendus, visant à saisir les opportunités d'inversion des prix.


/*backtest
start: 2023-12-29 00:00:00
end: 2024-01-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by EMKM)", shorttitle="1Min Killer", overlay=true)

///////////// RSI
RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length
RSIoverSold = 50
RSIoverBought = 50
price = close
vrsi = rsi(price, RSIlength)

///////////// Bollinger Bands
BBlength = input(235, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length
BBmult = 2
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
BBtarget38 = BBbasis + 0.38 * BBdev  // Line at 38% of Bollinger Band width
BBtarget50 = BBbasis + 0.50 * BBdev  // Line at 50% of Bollinger Band width

///////////// EMA
emaLength = input(20, title="EMA Period Length")
ema = ema(close, emaLength)

source = close
buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band
sellEntry = crossunder(source, BBupper)

///////////// Plotting
plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line")
plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line")
plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line")
plot(BBtarget38, color=color.blue, linewidth=2, title="SMA at 38% of BB width")  // Line at 38%
plot(BBtarget50, color=color.green, linewidth=2, title="SMA at 50% of BB width")  // Line at 50%
plot(ema, color=color.orange, title="EMA")  // Plot EMA

///////////// RSI + Bollinger Bands Strategy
longCondition = crossover(vrsi, RSIoverSold) and buyEntry
sellCondition = crossunder(vrsi, RSIoverBought) and close > BBupper

close_long = close > BBbasis
close_short = close < BBbasis

if (not na(vrsi))
    if longCondition
        strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy")
    else
        strategy.cancel(id="Buy")
        
    if close_long
        strategy.close("Buy")

if (sellCondition)
    strategy.entry("Sell", strategy.short, qty=10, stop=BBupper, comment="Sell")
else
    strategy.cancel(id="Sell")

if close_short
    strategy.close("Sell")


Plus de