Stratégie de négociation quantitative à double indicateur

Auteur:ChaoZhang est là., Date: 15 janvier 2024
Les étiquettes:

img

Résumé

La stratégie s'appelle Quantitative Trading Dual Indicator Strategy. Elle utilise à la fois les bandes de Bollinger et l'indice de force relative (RSI) comme signaux de trading pour mettre en œuvre une stratégie de trading filtrée par deux indicateurs.

La logique de la stratégie

La logique de base de cette stratégie est d'utiliser à la fois les bandes de Bollinger et le RSI pour juger des conditions de surachat et de survente sur le marché pour le filtrage des signaux de négociation.

Plus précisément, les bandes supérieures et inférieures de Bollinger Bands peuvent déterminer si les prix sont en dehors de la plage de volatilité, ce qui permet de juger si le marché est suracheté ou survendu.

La stratégie est définie de manière à ce que les opérations d'achat ou de vente ne soient effectuées que lorsque les bandes de Bollinger et le RSI affichent simultanément des signaux de surachat ou de survente.

Les avantages de la stratégie

Le principal avantage de cette stratégie est l'utilisation d'indicateurs doubles pour le filtrage, ce qui peut réduire les transactions trompeuses et améliorer la fiabilité du signal.

Comparé à un seul indicateur Bollinger Bands, la stratégie à deux indicateurs peut réduire considérablement la probabilité de faux signaux.

Dans l'ensemble, la stratégie à deux indicateurs prend en compte de manière exhaustive de multiples situations et présente une meilleure adaptabilité et stabilité.

Risques de la stratégie et solutions

Le principal risque de cette stratégie est que les paramètres des bandes de Bollinger et du RSI peuvent être inappropriés. Si les paramètres des bandes de Bollinger sont réglés sur une sensibilité trop élevée, il est susceptible de générer des signaux redondants. Si les paramètres du RSI sont réglés trop lâchement, l'effet sera affaibli.

En outre, la combinaison de deux indicateurs elle-même signifie moins de signaux. Si le marché ne répond qu'aux signaux d'un indicateur tandis que l'autre n'a pas atteint le niveau de déclenchement, cette stratégie ne générera aucun signal. Par conséquent, par rapport aux stratégies d'indicateur unique, la fréquence de négociation de cette stratégie sera inférieure.

Les solutions comprennent principalement la définition de paramètres plus appropriés, la modification des niveaux de déclenchement de l'indicateur de volatilité et des bandes de Bollinger, etc. Si la fréquence de négociation est trop faible, envisagez de réduire les exigences de paramètres pour augmenter les opportunités d'entrée.

Directions d'optimisation

Cette stratégie peut être optimisée dans les aspects suivants:

  1. Testez différentes combinaisons de bandes de Bollinger et de paramètres RSI pour trouver de meilleures correspondances.

  2. L'ajout de stratégies de stop loss et de profit pour améliorer la rentabilité.

  3. Ajouter des mécanismes de dimensionnement des positions. Utiliser la dimensionnement dynamique des positions pour augmenter les positions lorsque la tendance va bien, et réduire les pertes lorsque la tendance va mal.

  4. Ajouter l'auto-adaptation des paramètres basée sur les données historiques. Permettre l'optimisation automatique des paramètres d'indicateur pour s'adapter aux dernières conditions du marché.

Conclusion

En tant que stratégie filtrée par deux indicateurs, cette stratégie a une bonne stabilité globale et une bonne adaptabilité. Tout en réduisant la proportion de faux signaux, elle réduit également la fréquence de négociation. En optimisant les paramètres des indicateurs et en ajoutant des fonctions auxiliaires, le potentiel de profit de la stratégie peut être encore amélioré.


/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-11 23:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Bollinger Bands + RSI, Double Strategy (by SlumdogTrader)", shorttitle="BolBand_RSI_Strat", overlay=true)

// SlumdogTrader's Bollinger Bands + RSI Double Strategy - Profit Trailer
//
// Version 1.0
// Script by SlumdogTrader on July Fri 13(!), 2018.
//
// This strategy uses a normalise Bollinger Bands + RSI.
//
// Bollinger Band triggers
// SELL - when the price is above the upper band.
// BUY - when the price is below the lower band.
//
// RSI triggers
// SELL - when the price is above 55.
// BUY - when the price is below 45.
//
// This simple strategy only triggers when
// both the BB and the RSI
// indicators, at the same time, are in
// a overbought or oversold condition.
//
// Visit my TradingView work at:
// https://www.tradingview.com/u/SlumdogTrader/
//
// Visit my website at:
// https://www.slumdogtrader.com
//

///////////// Bollinger Bands Settings
BBlength = input(20, minval=1,title="Bollinger Bands SMA Period Length")
BBmult = input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
price = input(close, title="Source")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=aqua,title="BBs SMA Basis Line")
p1 = plot(BBupper, color=silver,title="BBs Upper Line")
p2 = plot(BBlower, color=silver,title="BBs Lower Line")
fill(p1, p2)

///////////// RSI Settings
RSIlength = input( 16 ,title="RSI Period Length")
RSIvalue = input( 45 ,title="RSI Value Range")
RSIoverSold = 0 + RSIvalue
RSIoverBought = 100 - RSIvalue
vrsi = rsi(price, RSIlength)


///////////// Colour Settings
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) ? red : RSIoverSold and (price[1] < BBlower and price > BBlower)  ? green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long, stop=BBlower,  comment="RSI_BB_L")
    else
        strategy.cancel(id="RSI_BB_L")

    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short, stop=BBupper,  comment="RSI_BB_S")
    else
        strategy.cancel(id="RSI_BB_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)


Plus de