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

Stratégie de négociation combinée de reconnaissance de modèle de chandelier sur plusieurs délais

Auteur:ChaoZhang est là., Date: 2024-12-11 11h04 et 35 min
Les étiquettes:JSCLe CPLe TS

img

Résumé

Cette stratégie est un système de trading automatisé basé sur la reconnaissance des modèles de bougies. Elle intègre dix modèles de bougies classiques, dont cinq modèles haussiers (Marteau, Englouissement haussier, Ligne de perçage, Étoile du matin et Trois soldats blancs) et cinq modèles baissiers (Hanging Man, Englouissement baissier, Couverture de nuages sombres, Étoile du soir et Trois corbeaux noirs).

Principe de stratégie

Le noyau de la stratégie réside dans sa mise en œuvre programmatique de la reconnaissance précise des motifs de chandeliers.

  1. Pour les motifs de chandeliers simples (comme Hammer, Hanging Man), le jugement est principalement basé sur le rapport entre le corps et l'ombre
  2. Pour les modèles à deux bougies (comme Engulfing, Piercing Line), le jugement est fait en comparant les positions relatives des bougies adjacentes prix d'ouverture et de fermeture
  3. Pour les modèles à trois chandeliers (comme Trois soldats blancs, Trois corbeaux noirs), plusieurs conditions concernant la direction de la tendance et les relations de position doivent être satisfaites simultanément. La stratégie permet aux utilisateurs d'activer ou de désactiver de manière flexible la reconnaissance de modèles spécifiques grâce à des paramètres.

Les avantages de la stratégie

  1. Comprehensivité: couvre les dix modèles de chandeliers les plus représentatifs, capables de capturer différents types de signaux d'inversion du marché
  2. Flexibilité: les utilisateurs peuvent choisir librement des combinaisons de modèles en fonction des conditions du marché et de leur style de trading personnel
  3. Visualisation: le système de marquage clair offre une affichage intuitive des emplacements et des types de motifs
  4. Automatisation: un processus de jugement entièrement programmé élimine le jugement subjectif et émotionnel humain
  5. Pratique: une logique de stratégie claire facilite la combinaison avec d'autres indicateurs techniques ou systèmes de négociation

Risques stratégiques

  1. Risque de retard: la confirmation du modèle nécessite d'attendre la fermeture de la bougie, ce qui peut entraîner de légers retards d'entrée
  2. Risque de faux signaux: le fait de se fier uniquement aux modèles de chandeliers peut générer de nombreux faux signaux sur les marchés instables
  3. Dépendance de l'environnement du marché: la stratégie présente de meilleurs résultats sur les marchés tendance mais peut être moins performante sur les marchés variables
  4. Risque de réglage des paramètres: l'activation de trop de reconnaissances de modèles peut entraîner une surpopulation de signaux affectant le jugement
  5. Risque de contrôle des pertes par arrêt: la stratégie ne comporte pas de mécanismes complets de contrôle des pertes par arrêt, ce qui nécessite des mesures supplémentaires de contrôle des risques.

Directions d'optimisation de la stratégie

  1. Mettre en œuvre le filtrage des tendances: combiner avec des moyennes mobiles ou des indicateurs de tendance pour filtrer les signaux de contre-tendance
  2. Ajouter la confirmation de volume: Valider l'efficacité du modèle par des modifications de volume
  3. Améliorer le contrôle des risques: ajouter une fonctionnalité dynamique de fixation des objectifs de stop-loss et de profit
  4. Optimiser les paramètres de modèle: ajuster les paramètres de reconnaissance de modèle pour différents marchés et délais
  5. Ajouter la pondération des modèles: mettre en place différents systèmes de pondération des signaux basés sur la fiabilité des modèles

Résumé

Il s'agit d'une stratégie de trading de reconnaissance de modèles de bougies bien conçue et logiquement claire. Il met en œuvre l'analyse technique traditionnelle et les jugements de modèles de bougies les plus couramment utilisés par le biais de la programmation, fournissant aux traders un outil de trading objectif et systématique. Bien qu'il présente certaines limitations inhérentes, grâce à une optimisation appropriée et une combinaison avec d'autres outils techniques, cette stratégie peut fournir des signaux de référence précieux pour les décisions de trading.


/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Author: Raymond Ngobeni
strategy('Candlestick Pattern Strategy [Ubaton]', 'Ubaton - Candlestick Pattern Strategy', overlay = true, max_labels_count = 500, max_lines_count = 500, max_boxes_count = 500)

// User Inputs: Enable/Disable Patterns
// Bullish Patterns
enableHammer = input.bool(true, "Show Hammer")
enableBullEngulfing = input.bool(true, "Show Bullish Engulfing")
enablePiercingLine = input.bool(true, "Show Piercing Line")
enableMorningStar = input.bool(true, "Show Morning Star")
enableThreeWhiteSoldiers = input.bool(true, "Show Three White Soldiers")

// Bearish Patterns
enableHangingMan = input.bool(true, "Show Hanging Man")
enableBearEngulfing = input.bool(true, "Show Bearish Engulfing")
enableDarkCloudCover = input.bool(true, "Show Dark Cloud Cover")
enableEveningStar = input.bool(true, "Show Evening Star")
enableThreeBlackCrows = input.bool(true, "Show Three Black Crows")

// Helper Functions
isHammer() =>
    bodySize = math.abs(open - close)
    shadowSize = low < math.min(open, close) ? math.min(open, close) - low : na
    shadowSize >= 2 * bodySize and high - math.max(open, close) <= bodySize

isBullishEngulfing() =>
    close[1] < open[1] and close > open and open <= close[1] and close >= open[1]

isPiercingLine() =>
    close[1] < open[1] and close > close[1] + (open[1] - close[1]) * 0.5 and close < open[1]

isMorningStar() =>
    close[2] < open[2] and math.abs(close[1] - open[1]) < (high[1] - low[1]) * 0.3 and close > open

isThreeWhiteSoldiers() =>
    close > open and close[1] > open[1] and close[2] > open[2] and open > close[1] and open[1] > close[2]

isHangingMan() =>
    bodySize = math.abs(open - close)
    shadowSize = low < math.min(open, close) ? math.min(open, close) - low : na
    shadowSize >= 2 * bodySize and high - math.max(open, close) <= bodySize and close < open

isBearishEngulfing() =>
    close[1] > open[1] and close < open and open >= close[1] and close <= open[1]

isDarkCloudCover() =>
    close[1] > open[1] and open > close[1] and close < open[1] and close < close[1] + (open[1] - close[1]) * 0.5

isEveningStar() =>
    close[2] > open[2] and math.abs(close[1] - open[1]) < (high[1] - low[1]) * 0.3 and close < open

isThreeBlackCrows() =>
    close < open and close[1] < open[1] and close[2] < open[2] and open < close[1] and open[1] < close[2]

// Detect Patterns
// Bullish
hammerDetected = enableHammer and isHammer()
bullEngulfDetected = enableBullEngulfing and isBullishEngulfing()
piercingDetected = enablePiercingLine and isPiercingLine()
morningStarDetected = enableMorningStar and isMorningStar()
threeWhiteDetected = enableThreeWhiteSoldiers and isThreeWhiteSoldiers()

// Bearish
hangingManDetected = enableHangingMan and isHangingMan()
bearEngulfDetected = enableBearEngulfing and isBearishEngulfing()
darkCloudDetected = enableDarkCloudCover and isDarkCloudCover()
eveningStarDetected = enableEveningStar and isEveningStar()
threeBlackDetected = enableThreeBlackCrows and isThreeBlackCrows()

// Plot Bullish Patterns
plotshape(enableHammer and hammerDetected, title="Hammer", location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer")
plotshape(enableBullEngulfing and bullEngulfDetected, title="Bullish Engulfing", location=location.belowbar, color=color.green, style=shape.labelup, text="Engulf")
plotshape(enablePiercingLine and piercingDetected, title="Piercing Line", location=location.belowbar, color=color.green, style=shape.labelup, text="Piercing")
plotshape(enableMorningStar and morningStarDetected, title="Morning Star", location=location.belowbar, color=color.green, style=shape.labelup, text="Morning")
plotshape(enableThreeWhiteSoldiers and threeWhiteDetected, title="Three White Soldiers", location=location.belowbar, color=color.green, style=shape.labelup, text="3 Soldiers")

// Plot Bearish Patterns
plotshape(enableHangingMan and hangingManDetected, title="Hanging Man", location=location.abovebar, color=color.red, style=shape.labeldown, text="Hanging")
plotshape(enableBearEngulfing and bearEngulfDetected, title="Bearish Engulfing", location=location.abovebar, color=color.red, style=shape.labeldown, text="Engulf")
plotshape(enableDarkCloudCover and darkCloudDetected, title="Dark Cloud Cover", location=location.abovebar, color=color.red, style=shape.labeldown, text="Dark Cloud")
plotshape(enableEveningStar and eveningStarDetected, title="Evening Star", location=location.abovebar, color=color.red, style=shape.labeldown, text="Evening")
plotshape(enableThreeBlackCrows and threeBlackDetected, title="Three Black Crows", location=location.abovebar, color=color.red, style=shape.labeldown, text="3 Crows")

// Strategy Execution
if hammerDetected or bullEngulfDetected or piercingDetected or morningStarDetected or threeWhiteDetected
    strategy.entry("Bullish Entry", strategy.long)

if hangingManDetected or bearEngulfDetected or darkCloudDetected or eveningStarDetected or threeBlackDetected
    strategy.entry("Bearish Entry", strategy.short)

Relationnée

Plus de