Les ressources ont été chargées... Je charge...

Stratégie de négociation quantitative de la tendance à inversion de tendance à deux délais

Auteur:ChaoZhang est là., Date: 2025-01-10 15:47:53 Je suis désolé
Les étiquettes:- Je vous en prie.

 Dual Timeframe Trend Reversal Candlestick Pattern Quantitative Trading Strategy

Résumé

Cette stratégie est un système de trading quantitatif basé sur deux modèles classiques de bougies: Hammer et Hanging Man. Il prédit les points de basculement potentiels du marché en identifiant ces modèles d'inversion. Le système combine plusieurs indicateurs techniques pour confirmer la validité du signal, y compris la relation entre le corps du bougie et les ombres, la direction de la tendance et d'autres éléments, permettant de capturer avec précision les points d'inversion du marché.

Principe de stratégie

La logique de base de la stratégie est d'identifier deux modèles de bougies clés par programmation: 1. Marteau: apparaît dans les tendances à la baisse, suggérant un potentiel d'inversion vers le haut. Caractérisé par un petit corps, une longue ombre inférieure (au moins deux fois la longueur du corps) et une ombre supérieure minimale ou inexistante. 2. Hanging Man: apparaît dans les tendances haussières, suggérant un potentiel renversement à la baisse.

La stratégie quantifie ces tendances à l'aide de paramètres stricts, notamment: - Multiplicateur de la longueur minimale du corps de la bougie - Proportion entre l'ombre inférieure et la hauteur de la bougie - Périodes de détention

Les avantages de la stratégie

  1. Identification systématique: identifie avec précision les signaux d'inversion du marché de manière programmatique, en évitant les jugements humains subjectifs.
  2. Risque contrôlé: définit des périodes de détention claires, évitant les risques liés à une détention excessive de positions.
  3. Visualisation des signaux: affiche les signaux de trading de manière intuitive sur les graphiques pour l'analyse et l'optimisation.
  4. Paramètres flexibles: peut ajuster les paramètres en fonction des différentes conditions du marché, améliorant ainsi l'adaptabilité de la stratégie.

Risques stratégiques

  1. Risque de fausse rupture: les schémas d'inversion peuvent générer de faux signaux, nécessitant une confirmation par d'autres indicateurs techniques.
  2. Risque de calendrier: les périodes de détention fixes peuvent ne pas capter pleinement le potentiel de mouvement des prix.
  3. Dépendance de l'environnement du marché: peut générer des faux signaux excessifs sur différents marchés.

Directions d'optimisation de la stratégie

  1. Introduisez des filtres de tendance: Ajoutez des indicateurs tels que des moyennes mobiles pour filtrer les tendances et améliorer la qualité du signal.
  2. Périodes de détention dynamiques: ajuster la durée de détention en fonction de la volatilité du marché.
  3. Confirmation sur plusieurs délais: mettre en œuvre des mécanismes de confirmation de tendance sur des délais plus longs.
  4. Optimisation de la perte d'arrêt: ajouter des mécanismes de perte d'arrêt dynamiques pour améliorer le contrôle des risques.

Résumé

Cette stratégie met en œuvre systématiquement la théorie classique de l'analyse technique par la quantification, démontrant une forte valeur pratique.


/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-08 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy("Hammer and Hanging Man Strategy", overlay=true)

// Input parameters
length = input.int(5, title="Minimum Candle Body Length (Multiplier)", minval=1)
shadowRatio = input.float(1, title="Lower Shadow to Candle Height Ratio", minval=1.0)
holdPeriods = input.int(26, title="Hold Periods (Bars)", minval=1)  // Holding period in bars

// Function to calculate the absolute value
absValue(x) =>
    x >= 0 ? x : -x

// Function to check if it is a Hammer
isHammer() =>
    bodyLength = absValue(close - open)
    candleHeight = high - low
    lowerShadow = math.min(open, close) - low
    upperShadow = high - math.max(open, close)
    smallBody = bodyLength <= candleHeight / length
    longLowerShadow = lowerShadow >= bodyLength * shadowRatio
    shortUpperShadow = upperShadow <= bodyLength
    smallBody and longLowerShadow and shortUpperShadow and close > open

// Function to check if it is a Hanging Man
isHangingMan() =>
    bodyLength = absValue(close - open)
    candleHeight = high - low
    lowerShadow = math.min(open, close) - low
    upperShadow = high - math.max(open, close)
    smallBody = bodyLength <= candleHeight / length
    longLowerShadow = lowerShadow >= bodyLength * shadowRatio
    shortUpperShadow = upperShadow <= bodyLength
    smallBody and longLowerShadow and shortUpperShadow and close < open

// Detect the candles
hammer = isHammer()
hangingMan = isHangingMan()

// Trading logic: Long on Hammer, Short on Hanging Man
if hammer
    strategy.entry("Long", strategy.long)  // Long entry on Hammer

if hangingMan
    strategy.entry("Short", strategy.short)  // Short entry on Hanging Man

// Exit after X bars
if strategy.position_size > 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods
    strategy.close("Long")

if strategy.position_size < 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods
    strategy.close("Short")

// Visualization of signals
plotshape(hammer, title="Hammer", location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer")
plotshape(hangingMan, title="Hanging Man", location=location.abovebar, color=color.red, style=shape.labeldown, text="Hanging Man")

Relationnée

Plus de