Deux lignes de tendance, rupture, croix d'or, croix de la mort, tendance à suivre la stratégie

Auteur:ChaoZhang est là., Date: 2024-02-22 16:01:12 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie de suivi de la tendance de la croix dorée et de la croix de la mort est une stratégie de trading quantitative qui utilise à la fois les lignes de tendance de support/résistance et les moyennes mobiles comme signaux alternatifs pour suivre la tendance.

Principe de stratégie

Cette stratégie se compose de quatre éléments principaux:

  1. Ligne de soutien représentée par les plus bas de ces 30 derniers jours
  2. Ligne de résistance tracée avec les plus hauts des 30 dernières semaines
  3. Moyenne mobile simple à 10 périodes, utilisée pour confirmer la tendance du filtrage des signaux de négociation
  4. Module d'identification de la rupture pour détecter les opportunités de négociation lorsque le prix dépasse les niveaux critiques de support/résistance

Plus précisément, la stratégie utilise d'abord les fonctions de demande de sécurité pour obtenir les plus hauts et les plus bas au cours des 30 derniers jours et 30 semaines respectivement, en traçant des lignes de support et de résistance dynamiques. Elle combine ensuite les signaux de croix dorée et de croix de mort du SMA à 10 périodes pour filtrer les opportunités de rupture. Les signaux longs sont générés lorsque le prix dépasse le niveau de support à 30 jours et le SMA à 10 périodes, tandis que les signaux courts sont générés lorsque le prix dépasse le niveau de résistance à 30 semaines et le SMA à 10 périodes.

Cette stratégie prend en compte à la fois les niveaux de support/résistance à moyen et à long terme, ce qui lui permet de saisir des opportunités de tendance plus importantes.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Utilise à la fois un support/résistance à moyen et à long terme pour capturer de plus grandes ruptures.
  2. Le filtre MA contrôle les pertes en évitant les faux signaux lors des marchés en évolution.
  3. Les mises à jour dynamiques des niveaux de support/résistance permettent de détecter rapidement les nouvelles tendances.
  4. Les mécanismes de gestion des risques de stop loss et de prise de profit aident à assurer les bénéfices.

Analyse des risques

Il y a aussi quelques risques à prendre en compte pour cette stratégie:

  1. Les stratégies de rupture nécessitent un calendrier précis, avec des problèmes de dépassement ou de retard.
  2. Des ruptures invalides peuvent survenir lorsque les niveaux de support/résistance échouent, causant d'énormes pertes.
  3. La nature tardive des moyennes mobiles peut provoquer des signaux tardifs d'inversion de tendance.
  4. Les risques élevés de retrait le rendent inapproprié pour les petits comptes.

Les solutions:

  1. Améliorez la logique d'identification et ajoutez des filtres.
  2. Utilisez des périodes de MA plus longues pour s'assurer que les signaux ne se produisent qu'après la stabilisation des tendances.
  3. Définissez des niveaux de stop loss appropriés pour limiter la baisse des transactions uniques.

Directions d'optimisation

Des améliorations supplémentaires sont possibles:

  1. Incorporer des mesures de volatilité comme l'ATR pour un stop loss plus intelligent et une augmentation des bénéfices.
  2. Ajouter des modèles d'apprentissage automatique pour détecter les défaillances de support/résistance.
  3. Utilisez des moyennes mobiles adaptatives pour détecter plus rapidement les retours.
  4. Paramètres de réglage précis pour différents produits.

Conclusion

La stratégie de suivi de la tendance de la double ligne de tendance Breakout Golden Cross Death Cross combine efficacement des indicateurs de support / résistance à moyen et long terme et des moyennes mobiles pour filtrer les signaux rentables pendant les tendances majeures, ce qui en fait une stratégie de trading quantitative relativement mature.


/*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"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © neosaid

//@version=5
strategy("Support and resistant Strategy", overlay=true)

// Function to check for breakout
f_breakoutCondition(closingPrice, highestHigh, lowestLow) =>
    closingPrice > highestHigh or closingPrice < lowestLow

// Step 1: 30 Days Trend Line (Lower Lows)
low30Days = request.security(syminfo.tickerid, "D", low)

// Step 2: 30 Weeks Upper Trend Line (Higher Highs)
high30Weeks = request.security(syminfo.tickerid, "W", high)

// Step 3: Trend Line for Lowest Low within the Last Month
var float lowestLowLastMonth = na
for i = 0 to 29
    lowestLowLastMonth := na(lowestLowLastMonth) ? low[i] : math.min(lowestLowLastMonth, low[i])

lowestLowLastMonthValue = lowestLowLastMonth[1]

// Breakout Strategy
highestHighLast3Candles = request.security(syminfo.tickerid, "D", ta.highest(close, 3))
lowestLowLast3Candles = request.security(syminfo.tickerid, "D", ta.lowest(close, 3))

// Additional conditions to filter signals
buyCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close > low30Days

sellCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close < high30Weeks

// Additional filters to reduce the number of orders
buyFilter = ta.crossover(close, ta.sma(close, 10)) // Buy only when price crosses above a 10-period SMA
sellFilter = ta.crossunder(close, ta.sma(close, 10)) // Sell only when price crosses below a 10-period SMA

buyCondition := buyCondition and buyFilter
sellCondition := sellCondition and sellFilter

// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Strategy entries
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)


Plus de