Stratégie de négociation d'inversion des bougies basée sur le canal de Fibonacci

Auteur:ChaoZhang est là., Date: 2023-11-21 17:24:17
Les étiquettes:

img

Résumé

Cette stratégie calcule les canaux d'expansion de Fibonacci sur la base d'une moyenne mobile pour identifier les zones clés de soutien et de résistance et aider les traders à anticiper les points de renversement potentiels du marché.

La logique de la stratégie

Le noyau de cette stratégie est de calculer trois canaux de Keltner basés sur une moyenne mobile, qui aident à déterminer les limites supérieure et inférieure des canaux de Fibonacci.

Lors de l'analyse de l'action des prix, les traders peuvent se concentrer sur les bandes Fibonacci extrêmes, qui sont les limites supérieure et inférieure des bandes. Si les prix se négocient en dehors des bandes pendant quelques barres, puis reviennent à l'intérieur, cela peut indiquer un renversement potentiel. Ce modèle suggère que le prix a temporairement dévié de sa plage habituelle et pourrait être dû à une correction.

Pour améliorer l'exactitude de l'indicateur des bandes de Fibonacci, les traders utilisent souvent plusieurs délais. En alignant les signaux à court terme avec le scénario de délais plus large, les traders peuvent mieux comprendre la tendance globale du marché.

En plus d'identifier les renversements potentiels, les traders peuvent également utiliser l'indicateur des bandes de Fibonacci pour déterminer les points d'entrée et de sortie.

Analyse des avantages

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

  1. Capable d'identifier les zones clés de soutien et de résistance pour aider à prédire les points d'inversion des prix.

  2. Améliore la précision des signaux de trading lorsqu'il est combiné avec une analyse multi-temporelle.

  3. Peut identifier clairement les points d'entrée et de sortie.

  4. Peut mesurer la force et la direction de la tendance du marché en analysant la pente de la ligne médiane.

  5. Utilise des ratios naturels basés sur la théorie de Fibonacci pour identifier les niveaux de prix clés.

Analyse des risques

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

  1. Comme tous les indicateurs d'analyse technique, la stratégie ne peut pas prédire l'action des prix et les renversements avec une précision de 100%.

  2. Des réglages incorrects ou subjectifs des niveaux d'extension de Fibonacci et des paramètres du canal de Keltner peuvent avoir une incidence sur la fiabilité du signal.

  3. Les prix peuvent franchir les bandes de Fibonacci et continuer à courir, ce qui entraîne des pertes.

  4. L'analyse à plusieurs délais peut ne pas toujours être applicable.

  5. Les signaux peuvent être moins fiables sur les marchés à forte volatilité ou à faible liquidité.

Pour atténuer ces risques, valider les signaux avec d'autres indicateurs tels que le RSI, ajuster les paramètres en fonction des différentes conditions du marché, utiliser les stop-loss pour contrôler le risque par transaction.

Directions d'optimisation

Cette stratégie peut être optimisée de plusieurs façons:

  1. Tester différents types et longueurs de paramètres afin d'optimiser la moyenne mobile et les canaux de Keltner afin de mieux adapter les propriétés statistiques des différents marchés.

  2. Testez d'autres zones clés de Fibonacci comme 0,5 ou 0,786 comme zones d'extension pour les bandes de Fibonacci.

  3. Combiner les signaux d'entrée avec les tendances des prix, le volume ou d'autres indicateurs de confirmation.

  4. Optimiser les stratégies de stop loss pour sortir plus tôt lorsque la tendance s'inverse.

  5. Optimisation des règles d'entrée et de sortie des tests antérieurs.

Conclusion

En résumé, la stratégie basée sur le canal de Fibonacci pour identifier les principales zones de support / résistance pour le trading d'inversion de bougies est une approche efficace pour tirer parti des principes du ratio naturel pour guider les décisions de trading.


/*backtest
start: 2023-10-21 00:00:00
end: 2023-11-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

    // ____  __    ___   ________ ___________  ___________ __  ____ ___ 
   // / __ )/ /   /   | / ____/ //_/ ____/   |/_  __<  / // / / __ |__ \
  // / __  / /   / /| |/ /   / ,< / /   / /| | / /  / / // /_/ / / __/ /
 // / /_/ / /___/ ___ / /___/ /| / /___/ ___ |/ /  / /__  __/ /_/ / __/ 
// /_____/_____/_/  |_\____/_/ |_\____/_/  |_/_/  /_/  /_/  \____/____/                                              

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © blackcat1402
//@version=5
strategy('[blackcat] L2 Fibonacci Bands', overlay=true)

// Define the moving average type and length
maType = input.string(title='MA Type', defval='WMA', options=['SMA', 'EMA', 'WMA', 'HMA'])
maLength = input.int(title='MA Length', defval=233, minval=1)
src = input(title='Data Source', defval=hl2)

// Define the Fibonacci expansion levels
fib1 = input.float(title='Fibonacci Level 1', defval=1.618, minval=0)
fib2 = input.float(title='Fibonacci Level 2', defval=2.618, minval=0)
fib3 = input.float(title='Fibonacci Level 3', defval=4.236, minval=0)

// Calculate the moving average
ma = maType == 'SMA' ? ta.sma(src, maLength) : maType == 'EMA' ? ta.ema(src, maLength) : maType == 'WMA' ? ta.wma(src, maLength) : maType == 'HMA' ? ta.hma(src, maLength) : na

// Calculate the Keltner Channels
kcMultiplier = input.int(title='Keltner Channel Multiplier', defval=2, minval=0)
kcLength = input.int(title='Keltner Channel Length', defval=89, minval=1)
kcTrueRange = ta.tr
kcAverageTrueRange = ta.sma(kcTrueRange, kcLength)
kcUpper = ma + kcMultiplier * kcAverageTrueRange
kcLower = ma - kcMultiplier * kcAverageTrueRange

// Calculate the Fibonacci Bands
fbUpper1 = ma + fib1 * (kcUpper - ma)
fbUpper2 = ma + fib2 * (kcUpper - ma)
fbUpper3 = ma + fib3 * (kcUpper - ma)
fbLower1 = ma - fib1 * (ma - kcLower)
fbLower2 = ma - fib2 * (ma - kcLower)
fbLower3 = ma - fib3 * (ma - kcLower)

// Plot the Fibonacci Bands
plot(ma, title='Midband', color=color.new(color.blue, 0), linewidth=2)
plot(fbUpper1, title='Upper Band 1', color=color.new(color.green, 0), linewidth=1)
plot(fbUpper2, title='Upper Band 2', color=color.new(color.green, 0), linewidth=1)
plot(fbUpper3, title='Upper Band 3', color=color.new(color.green, 0), linewidth=1)
plot(fbLower1, title='Lower Band 1', color=color.new(color.red, 0), linewidth=1)
plot(fbLower2, title='Lower Band 2', color=color.new(color.red, 0), linewidth=1)
plot(fbLower3, title='Lower Band 3', color=color.new(color.red, 0), linewidth=1)

// Define the entry and exit conditions
longCondition = ta.crossover(src, fbUpper3) and ta.rsi(src, 14) > 60
shortCondition = ta.crossunder(src, fbLower3) and ta.rsi(src, 14) < 40
exitCondition = ta.crossover(src, ma) or ta.crossunder(src, ma)

// Execute the trades
if longCondition
    strategy.entry('Long', strategy.long)
if shortCondition
    strategy.entry('Short', strategy.short)
if exitCondition
    strategy.close_all()



Plus de