Stratégie de support et de résistance de backtest de rupture de Momentum


Date de création: 2024-02-22 16:07:14 Dernière modification: 2024-02-22 16:07:14
Copier: 0 Nombre de clics: 619
1
Suivre
1617
Abonnés

Stratégie de support et de résistance de backtest de rupture de Momentum

Aperçu

Cette stratégie utilise principalement les prix les plus élevés, les plus bas et les prix de clôture de la journée précédente comme support et résistance du jour, en faisant plus lors de la rupture de la résistance et en faisant moins lors de la reprise du support.

Principe de stratégie

Le code définit d’abord une fonction de calcul de la résistance au support, calculateSupportResistance, qui extrait le prix le plus élevé, le prix le plus bas et le prix de clôture du jour de négociation précédent comme résistance au support du jour.

Cette fonction est ensuite appelée dans la logique principale pour obtenir les trois bits de prix et les afficher.

Dans la logique de retracement, si le prix de clôture est inférieur au prix le plus bas de la veille et que le prix actuel est supérieur à ce prix le plus bas, il y a une rupture; si le prix de clôture est supérieur au prix le plus élevé de la veille et que le prix actuel est inférieur à ce prix le plus élevé, il y a une rupture.

Ces modèles révolutionnaires permettent de juger les tendances et de générer des signaux de trading.

Avantages stratégiques

  1. Utilisez les données de la journée de négociation précédente pour construire le support de résistance du jour, évitant ainsi les problèmes d’optimisation des paramètres
  2. Le niveau de résistance de soutien est tiré de données de transactions réelles sur le marché et a une certaine valeur de référence.
  3. La modélisation de la rétroaction est simple, directe et facile à comprendre
  4. Visualisation des points de résistance de soutien pour créer une perception des prix
  5. Surveiller les failles en temps réel pour saisir les opportunités de trading

Risque stratégique

  1. Le point de résistance de support change avec le temps et son efficacité n’est pas certaine.
  2. L’incapacité à prédire la direction de la tendance et le risque de manquer un revirement
  3. La plupart d’entre eux sont exposés à de fausses incursions et risquent d’être admis trop tôt.
  4. Il n’est pas possible de déterminer la continuité de la rupture et il est possible que les pertes se soient arrêtées prématurément.
  5. La résistance des supports est plus susceptible de s’effondrer en cas de forte volatilité du marché boursier

La réponse:

  1. Plus de facteurs pour juger de l’efficacité de la percée
  2. Augmentation de la marge de freinage pour s’assurer que la tendance est saisie
  3. Créer des positions en lots pour réduire les effets de la volatilité des actions

Optimisation de la stratégie

  1. Ajouter plus de données historiques pour juger des points de résistance, comme les prix des lignes 5 et 10
  2. L’efficacité de la percée est évaluée en fonction d’indicateurs tels que le volume des transactions.
  3. Définition du stop loss en fonction de la volatilité réelle
  4. Optimisation de la gestion des fonds et maîtrise des pertes individuelles

Résumer

Cette stratégie est une stratégie de rupture typique, simple et intuitive, qui utilise les données du jour de négociation précédent pour construire la résistance de soutien du jour et retracer la rupture. L’avantage est qu’il est facile à comprendre et à voir directement la résistance de soutien. L’inconvénient est qu’il existe un risque de fausse rupture et qu’il est impossible de déterminer la continuité de la tendance.

Code source de la stratégie
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Support and Resistance with Backtesting", overlay=true)

// Function to calculate support and resistance levels
calculateSupportResistance() =>
    highPrevDay = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
    lowPrevDay = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)
    closePrevDay = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)
    [highPrevDay, lowPrevDay, closePrevDay]

// Call the function to get support and resistance levels
[supResHigh, supResLow, supResClose] = calculateSupportResistance()

// Plotting support and resistance levels
plot(supResHigh, color=color.red, linewidth=2, title="Previous Day High")
plot(supResLow, color=color.green, linewidth=2, title="Previous Day Low")
plot(supResClose, color=color.blue, linewidth=2, title="Previous Day Close")

// Backtesting logic
backtestCondition = close[1] < supResLow and close > supResLow
strategy.entry("Long", strategy.long, when=backtestCondition)

// Plotting buy/sell arrows for backtesting
plotarrow(backtestCondition ? 1 : na, colorup=color.green, offset=-1, transp=0)