Stratégie de trading de reconnaissance de modèle de ligne K combinée sur plusieurs périodes

JSC CP TS
Date de création: 2024-12-11 11:04:35 Dernière modification: 2024-12-11 11:04:35
Copier: 0 Nombre de clics: 480
1
Suivre
1617
Abonnés

Stratégie de trading de reconnaissance de modèle de ligne K combinée sur plusieurs périodes

Aperçu

La stratégie est un système de trading automatisé basé sur la reconnaissance des formes de K. Elle intègre dix formes de K classiques, dont cinq formes de bullish ((ligne de l’aigle, pluriel de l’engloutissement, piercing, étoile du matin et trois soldats blancs) et cinq formes de bearish ((ligne de l’ascension, engloutissement de l’air, nuage de nuages, étoile du crépuscule et trois soldats noirs). La stratégie fournit aux traders des signaux de retournement de marché potentiels et des opportunités de négociation en identifiant et en analysant ces formes en temps réel.

Principe de stratégie

Au cœur de la stratégie se trouve la programmation d’une identification précise des différentes formes de lignes K. Chaque forme a sa propre définition mathématique et ses propres critères:

  1. Pour les formes de lignes K simples (par exemple, les lignes de collier, les lignes suspendues), le jugement est principalement basé sur la relation proportionnelle entre l’entité et la ligne d’ombre.
  2. Pour les formes de deux lignes K (telles que les lignes d’absorption, les lignes de pénétration), le rapport entre la position de l’ouverture et de la fermeture des deux lignes K adjacentes est jugé
  3. Pour les trois formes de lignes K (par exemple, trois soldats blancs, trois soldats noirs), il est nécessaire de satisfaire simultanément la direction de la marche et la relation de position de trois lignes K consécutives. Les stratégies permettent aux utilisateurs de choisir de manière flexible d’activer ou de désactiver l’identification de formes spécifiques en définissant des paramètres.

Avantages stratégiques

  1. Comprehensivité: couvrant les dix formes de lignes K les plus représentatives, capables de capturer différents types de signaux de retournement de marché
  2. Flexibilité: les utilisateurs peuvent choisir librement une combinaison de formes à identifier en fonction de l’environnement du marché et de leurs styles de négociation personnels
  3. Visualisation: avec un système de marquage clair, la localisation et le type des formes sont affichés de manière intuitive
  4. Automatisation: processus de jugement entièrement programmé, évitant le subjectivisme et l’émotionnalisation des jugements humains
  5. Pratique: logique stratégique claire, facile à utiliser avec d’autres indicateurs techniques ou systèmes de négociation

Risque stratégique

  1. Risque de retard: confirmation de la forme de la ligne K nécessite d’attendre la fermeture de la ligne K, ce qui peut entraîner un léger retard dans le temps d’entrée
  2. Risque de faux signaux: le simple fait de s’appuyer sur la forme de la ligne K peut générer plus de faux signaux dans un marché en crise
  3. Dépendance sur l’environnement du marché: la stratégie fonctionne mieux dans les marchés où la tendance est évidente, mais peut être moins efficace dans les marchés à la traîne
  4. Risque de paramétrage: une activation excessive de la reconnaissance des formes peut entraîner une surintensité du signal et affecter le jugement
  5. Risque de contrôle des pertes: la stratégie elle-même ne contient pas de mécanisme de contrôle des pertes parfait et nécessite des mesures de contrôle des risques supplémentaires

Orientation de l’optimisation de la stratégie

  1. Introduction de filtres de tendance: en combinaison avec des moyennes mobiles ou des indicateurs de tendance, filtrer les signaux de contre-courant
  2. Augmentation de la confirmation de la transaction: vérification de l’efficacité du format par le changement de la transaction
  3. Amélioration du contrôle des risques: ajout de fonctionnalités de paramétrage dynamique des objectifs de stop loss et profit
  4. Optimisation des paramètres de forme: paramètres de forme adaptés à différents marchés et périodes de temps
  5. Ajout de poids de forme: configuration de différents systèmes de poids de signal en fonction de la fiabilité des différentes formes

Résumer

Il s’agit d’une stratégie de négociation de reconnaissance de la forme de la ligne K conçue de manière rationnelle et logique. Elle permet de déterminer la forme de la ligne K la plus couramment utilisée dans l’analyse technique traditionnelle de manière programmée et fournit aux traders un outil de négociation objectif et systématique. Bien qu’elle présente certaines limitations inhérentes, la stratégie peut fournir des signaux de référence précieux pour la prise de décision de négociation grâce à une optimisation appropriée et à la coopération avec d’autres outils techniques.

Code source de la stratégie
/*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)