Stratégie de trading à terme de BankNifty basée sur la moyenne mobile


Date de création: 2024-03-28 18:15:32 Dernière modification: 2024-03-28 18:15:32
Copier: 0 Nombre de clics: 605
1
Suivre
1617
Abonnés

Stratégie de trading à terme de BankNifty basée sur la moyenne mobile

Aperçu

La stratégie est une stratégie de négociation de futures BankNifty basée sur une moyenne mobile simple (SMA). L’idée principale de la stratégie est d’utiliser la SMA comme indicateur de tendance, en faisant plus lorsque le prix traverse la SMA et en faisant moins lorsque le prix traverse la SMA.

Principe de stratégie

Le cœur de la stratégie est d’utiliser le SMA comme indicateur de tendance. Plus précisément, la stratégie calcule d’abord le SMA d’une période spécifiée (par défaut 200) et juge ensuite la direction de la tendance en fonction de la position relative du prix par rapport au SMA. Lorsque le prix franchit le SMA, il considère qu’une tendance à la hausse s’est formée et fait alors plus; lorsque le prix franchit le SMA, il considère qu’une tendance à la baisse s’est formée et fait alors moins.

Avantages stratégiques

  1. Simple et facile à comprendre: La stratégie est basée sur le SMA, un indicateur technique classique, dont les principes sont simples, faciles à comprendre et à mettre en œuvre.
  2. Adaptabilité: la stratégie peut s’adapter à différents environnements de marché et types de transactions en ajustant les paramètres.
  3. Contrôle du risque: la stratégie impose plusieurs conditions de stop-loss pour contrôler efficacement les pertes potentielles. De plus, la mise en place de conditions de stop-loss aide également à verrouiller les bénéfices en temps opportun.
  4. Suivi des tendances: La SMA est un indicateur de retard, mais c’est aussi pour cette raison qu’elle permet de bien identifier la formation de tendances. Cette stratégie utilise cette caractéristique de la SMA pour capturer efficacement les tendances à moyen et à long terme du marché.

Risque stratégique

  1. Sensitivité des paramètres: la performance de la stratégie dépend en grande partie de la sélection des paramètres, différents paramètres peuvent entraîner des résultats très différents. Par conséquent, il est nécessaire d’optimiser et de tester les paramètres dans des applications réelles.
  2. Marchés en choc: dans les marchés en choc, les prix traversent fréquemment les SMA vers le bas, ce qui peut entraîner des transactions fréquentes de la stratégie, augmentant ainsi les coûts et les risques de transaction.
  3. Retour de tendance: lorsque la tendance du marché est inversée, la stratégie peut retarder la réaction et entraîner des pertes potentielles.
  4. Volatilité en cours de portée: la stratégie peut déclencher un signal de transaction à tout moment de la portée, tandis que la volatilité en cours de portée des futures BankNifty peut être plus importante, ce qui peut entraîner des points de glissement plus importants et des pertes potentielles.

Orientation de l’optimisation de la stratégie

  1. Optimisation des paramètres: il est possible de trouver les paramètres les mieux adaptés à l’environnement du marché actuel en testant et en optimisant différentes combinaisons de paramètres.
  2. Combinaison avec d’autres indicateurs: il est possible d’envisager de combiner le SMA avec d’autres indicateurs techniques (comme le RSI, le MACD, etc.) pour améliorer la fiabilité et l’exactitude de la stratégie.
  3. Stop-loss dynamique: Vous pouvez envisager d’adopter des stratégies de stop-loss dynamiques (comme le suivi des stop-loss) pour mieux contrôler les risques.
  4. Limiter le temps de négociation: il est possible d’envisager de limiter le temps de négociation à des périodes de temps moins volatiles (par exemple, avant et après la clôture) afin de réduire l’impact de la volatilité sur le cours.

Résumer

La stratégie est une stratégie de trading simple basée sur SMA, applicable aux futures de BankNifty. Son avantage réside dans la simplicité du principe, l’adaptabilité et les mesures de contrôle du risque. Cependant, dans la pratique, il faut également prêter attention aux risques potentiels tels que l’optimisation des paramètres, les chocs du marché, les retournements de tendance et les fluctuations du cours.

Code source de la stratégie
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bhasker_S

//@version=5
strategy("Strategy BankNifty SMA", overlay=true, margin_long=100, margin_short=100)

src = input(close, title="Source")
timeFrame = input.timeframe(defval='5', title = "Select Chart Timeframe")
typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
len = input.int(200, minval=1, title="Length", step = 10)
alertPrecision = input.float(0, "Alert Precision", minval = 0, maxval = 50, step=1)
slTimeFrame = input.timeframe(defval='1', title = "Select Stoploss Candle Timeframe")
slBuffer = input.float(0, "Stop Loss Buffer", minval = 0, maxval = 50, step = 1)
targetSlab = input.float(150, "Target Price", minval = 1, maxval = 2000, step = 10)
Stoploss  = input.float(20, "Stop Loss", minval = 1, maxval = 2000, step = 5)
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)

//out = ta.sma(src, len)


ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

tfSource = request.security(syminfo.tickerid, timeFrame, src, barmerge.gaps_on, barmerge.lookahead_off)
mySMA = ma(tfSource, len, typeMA)
plot(mySMA, color=color.rgb(243, 33, 89), title="MA", offset=offset, linewidth = 2)

slClose = request.security(syminfo.tickerid, slTimeFrame, src, barmerge.gaps_on, barmerge.lookahead_off)


highTravel = low > mySMA
lowTravel = high < mySMA

touchabove = (((high[1] + alertPrecision) > mySMA[1]) and (low[1] < mySMA[1])) //and (high[2] < mySMA[2])
touchbelow = (((low[1] - alertPrecision) < mySMA[1]) and (high[1] > mySMA[1])) //and (low[2] > mySMA[2])

crossabove = math.min(open, close) > mySMA
crossbelow = math.max(open, close) < mySMA

upalert = (touchabove or touchbelow) and crossabove
downalert = (touchabove or touchbelow) and crossbelow

h=hour(time('1'),"Asia/Kolkata")
m=minute(time('1'),"Asia/Kolkata")
startTime=h*100+m

if upalert and strategy.position_size == 0 
    strategy.entry("buy", strategy.long, 15)
    
if downalert and strategy.position_size == 0
    strategy.entry("sell", strategy.short, 15)

longexit = (slClose < (mySMA - slBuffer)) or (slClose < (strategy.opentrades.entry_price(strategy.opentrades - 1) - Stoploss)) or (slClose > (strategy.opentrades.entry_price(strategy.opentrades - 1) + targetSlab)) or (hour(time) == 15)
shortexit = (slClose > (mySMA + slBuffer)) or (slClose > (strategy.opentrades.entry_price(strategy.opentrades - 1) + Stoploss)) or (slClose < (strategy.opentrades.entry_price(strategy.opentrades - 1) - targetSlab)) or (hour(time) == 15)

if longexit
    strategy.close("buy")

if shortexit
    strategy.close("sell")