Stratégie de suivi de l'inversion de l'or sur plusieurs périodes

Auteur:ChaoZhang est là., Date: 2024-01-31 15h01 et 39 min
Les étiquettes:

img

Résumé

Cette stratégie combine différents indicateurs techniques et méthodes de négociation pour identifier automatiquement les tendances, découvrir les opportunités d'inversion et mener des transactions de suivi efficaces sur le marché de l'or.

Principe de stratégie

La stratégie utilise principalement plusieurs indicateurs techniques tels que le croisement de la moyenne mobile, les bandes de Bollinger, les niveaux de support / résistance, les modèles de prix pour le jugement des signaux de trading. Lors de la détermination de la tendance majeure, elle utilise une combinaison d'indicateurs de moyenne mobile rapide, moyenne mobile lente, RSI et MACD pour la confirmation multi-angle pour capturer avec précision les inversions de tendance. Pour l'entrée de marché spécifique, elle observe la percée des bandes de Bollinger, les niveaux de prix clés et les modèles de prix comme le marteau pour générer des signaux de trading.

Les principales étapes de l'ensemble de la stratégie peuvent être divisées en:

  1. Direction de tendance du juge: Calculer le MA rapide et le MA lent, haussier lorsque le MA rapide traverse le MA lent, baissier lorsqu'il traverse en dessous.

  2. Trouvez des points d'entrée spécifiques: Entrez principalement en observant la percée des bandes de Bollinger, les principaux niveaux de support/résistance et les signaux de tendance des prix.

  3. Mettez un stop-loss et un profit: Utilisez l'indicateur ATR pour calculer la fourchette de stop loss et définissez des positions de prise de profit raisonnables.

  4. Filtrez la fausse éruption: Certains indicateurs peuvent générer des signaux incorrects.

Analyse des avantages

Les avantages de cette stratégie sont les suivants:

  1. Jugement à plusieurs angles: La combinaison de différents indicateurs permet de juger le marché à partir de plusieurs dimensions et d'éviter la probabilité d'une mauvaise appréciation par un seul indicateur.

  2. Applicabilité élevée: La stratégie peut donner de bons résultats, qu'il s'agisse de négociations intrajournalières ou à moyen ou long terme.

  3. La flexibilité: La stratégie contient une variété de méthodes de négociation qui peuvent s'adapter aux différentes étapes du marché.

  4. Risques maîtrisables: Utiliser le stop loss et le take profit pour contrôler l'exposition au risque de chaque transaction et donc le tirage maximum de l'ensemble de la stratégie.

Analyse des risques

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

  1. Probabilité d'un mauvais jugement: Bien que la probabilité d'erreur d'appréciation soit réduite par la combinaison de plusieurs indicateurs, il existe encore une certaine probabilité d'erreur d'appréciation dans des conditions de marché extrêmes.

  2. L'incertitude du renversement: Les points clés de la stratégie pour juger des renversements peuvent ne pas être suffisants pour devenir des points de renversement de tendance réels, incapables de prédire parfaitement les tendances futures.

  3. Fausse fuite: Les événements d'éclatement peuvent apparaître soudainement et ne sont peut-être que de fausses écarts à court terme.

  4. Optimisation des paramètres difficile: La stratégie comporte de multiples paramètres, qui ont une influence importante sur les résultats, mais qui sont difficiles à trouver l'optimum grâce à un ajustement exhaustif.

Directions d'optimisation

Les principales orientations d'optimisation de cette stratégie sont les suivantes:

  1. Ensemble de modèles: Introduction de modèles d'apprentissage automatique pour aider à déterminer les poids des signaux des indicateurs et les probabilités de marché.

  2. Optimisation adaptative des paramètres: introduire des indicateurs dynamiques ou des mécanismes d'adaptation basés sur les variations du mouvement des prix afin d'optimiser les paramètres.

  3. Opérations basées sur des événements: Introduire certains facteurs liés aux événements tels que les nouvelles et les annonces sur le marché de l'or comme sources de signaux de trading.

  4. L'exposition au risque est calculée en fonction des éléments suivants:: Construire des combinaisons de positions longues et courtes, avec des modèles de couverture les uns contre les autres, réduisant ainsi les risques de marché systématiques.

Conclusion

En conclusion, cette stratégie de suivi de l'inversion de l'or intègre une variété de techniques de négociation, contrôle les risques tout en découvrant des inversions de tendance et est une stratégie efficace adaptée au trading à haute fréquence.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("PratikMoney_Gold_Swing_v2.0", overlay=true)

// Trend Following
fastMA = ta.sma(close, 50)
slowMA = ta.sma(close, 200)
rsiValue = ta.rsi(close, 14)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
macdDivergence = macdLine - signalLine
trendUp = ta.crossover(fastMA, slowMA) and rsiValue > 50 and macdLine > 0 and macdDivergence > 0
trendDown = ta.crossunder(fastMA, slowMA) and rsiValue < 50 and macdLine < 0 and macdDivergence < 0

// Breakout Trading
resistanceLevel = input(1500, title="Resistance Level")
supportLevel = input(1400, title="Support Level")

breakoutUp = close > resistanceLevel and close[1] <= resistanceLevel
breakoutDown = close < supportLevel and close[1] >= supportLevel

// Moving Average Crossovers
shortTermMA = ta.sma(close, 9)
longTermMA = ta.sma(close, 21)

maCrossUp = ta.crossover(shortTermMA, longTermMA)
maCrossDown = ta.crossunder(shortTermMA, longTermMA)

// Bollinger Bands
bbUpper = ta.sma(close, 20) + 2 * ta.stdev(close, 20)
bbLower = ta.sma(close, 20) - 2 * ta.stdev(close, 20)

bbBreakoutUp = close > bbUpper and close[1] <= bbUpper
bbBreakoutDown = close < bbLower and close[1] >= bbLower

// Support and Resistance
bounceFromSupport = close < supportLevel and close[1] >= supportLevel
reversalFromResistance = close > resistanceLevel and close[1] <= resistanceLevel

// Fibonacci Retracement
fibonacciLevel = input(0.618, title="Fibonacci Level")

fibRetraceUp = ta.lowest(low, 50) >= ta.highest(high, 50) * (1 - fibonacciLevel)
fibRetraceDown = ta.highest(high, 50) <= ta.lowest(low, 50) * (1 + fibonacciLevel)

// Price Action Trading
pinBar = close < open and low < close[1] and close > open[1]
engulfing = close < open and close[1] > open and close[2] > open[1] and close > open[2]

priceActionLong = pinBar or engulfing and close > open
priceActionShort = pinBar or engulfing and close < open

// Scalping
scalpLong = ta.change(close) > 0.1
scalpShort = ta.change(close) < -0.1

// Volatility Breakout
atrLevel = input(1.5, title="ATR Multiplier")

volatilityBreakoutUp = close > ta.sma(close, 20) + atrLevel * ta.atr(20)
volatilityBreakoutDown = close < ta.sma(close, 20) - atrLevel * ta.atr(20)

// Strategy Execution
strategy.entry("TrendLong", strategy.long, when=trendUp)
strategy.entry("TrendShort", strategy.short, when=trendDown)

strategy.entry("BreakoutLong", strategy.long, when=breakoutUp)
strategy.entry("BreakoutShort", strategy.short, when=breakoutDown)

strategy.entry("VolatilityLong", strategy.long, when=volatilityBreakoutUp)
strategy.entry("VolatilityShort", strategy.short, when=volatilityBreakoutDown)

strategy.entry("PriceActionLong", strategy.long, when=priceActionLong)
strategy.entry("PriceActionShort", strategy.short, when=priceActionShort)

strategy.entry("ScalpLong", strategy.long, when=scalpLong)
strategy.entry("ScalpShort", strategy.short, when=scalpShort)

// Plotting
plot(supportLevel, color=color.green, title="Support Level")
plot(resistanceLevel, color=color.red, title="Resistance Level")

plot(bbUpper, color=color.blue, title="Upper Bollinger Band")
plot(bbLower, color=color.blue, title="Lower Bollinger Band")

// Plotting Price Action Signals
plotshape(series=priceActionLong, title="Price Action Long", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=priceActionShort, title="Price Action Short", color=color.red, style=shape.triangledown, location=location.abovebar)

// Plotting Scalping Signals
plotshape(series=scalpLong, title="Scalp Long", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=scalpShort, title="Scalp Short", color=color.red, style=shape.triangledown, location=location.belowbar)


Plus de