Le commerce de l'or avec la stratégie Simons

Auteur:ChaoZhang est là., Date: 2024-03-01 12:28:38 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie combine les indicateurs de moyenne mobile, l'indice de force relative (RSI) et les modèles d'engorgement pour effectuer des transactions longues et courtes sur l'or. Elle utilise principalement le croisement des moyennes mobiles de 21 jours, 50 jours et 200 jours comme signal de trading, avec l'indicateur RSI et les modèles d'engorgement pour filtrer les signaux d'entrée supplémentaires pour une meilleure optimisation.

La logique de la stratégie

La stratégie prend des décisions commerciales basées sur les aspects suivants:

  1. Moyenne mobile croisée

    Le croisement entre MA de 21 jours et MA de 200 jours est utilisé comme indicateur principal pour déterminer l'inversion de tendance.

  2. Indicateur RSI

    Le RSI doit être inférieur au niveau de surachat pour le signal long et supérieur au niveau de surachat pour le signal court, afin d'éviter d'acheter des pics et de vendre des vallées.

  3. Confirmation du schéma engloutissant

    Un modèle de dégel haussier est nécessaire pour un signal long lorsque la croix dorée se produit. Un modèle de dégel baissier est nécessaire pour un signal court lorsque la croix de mort se produit. Cela confirme encore l'inversion de tendance.

Les signaux de trading sont générés lorsque les trois conditions ci-dessus sont remplies.

Les avantages

Le plus grand avantage réside dans l'utilisation complète de multiples paramètres et indicateurs pour la prise de décision, ce qui filtre bien les signaux incorrects et réduit les pertes inutiles.

  1. La stratégie de la moyenne mobile elle-même est relativement stable.

  2. Les réglages RSI empêchent les pics d'achat et les bas de vente.

  3. La confirmation des schémas d'engorgement améliore la fiabilité du jugement de l'inversion de tendance.

  4. Un stop loss plus petit contrôle efficacement les risques.

Les risques

Bien que cette stratégie excelle en matière de filtrage des signaux et de contrôle des risques, elle comporte encore certaines faiblesses et risques:

  1. Le réglage de paramètres complexes nécessite des efforts importants pour trouver la combinaison optimale.

  2. Des signaux d'entrée stricts peuvent manquer de bonnes occasions.

  3. Il y aura un certain retard dans des conditions de marché extrêmement volatiles.

  4. La stabilité et la validité à long terme doivent être vérifiées.

Pour faire face aux risques susmentionnés, nous pouvons affiner les paramètres, optimiser les flux logiques, intégrer d'autres indicateurs, etc. pour améliorer la stratégie.

Des possibilités d'optimisation

Malgré les bons résultats obtenus dans la combinaison de plusieurs indicateurs, cette stratégie a encore des possibilités d'optimisation:

  1. Évaluer l'impact des différents paramètres sur les résultats pour déterminer une meilleure combinaison de paramètres.

  2. Incorporer d'autres indicateurs comme le MACD, le KD, etc. pour aider à juger du moment de l'inversion de tendance.

  3. Améliorer et affiner les mécanismes d'arrêt des pertes.

  4. Testez des ensembles de données historiques plus longs pour vérifier la validité à long terme de la stratégie.

Conclusion

En conclusion, cette stratégie tire parti d'un ensemble d'outils d'analyse technique tels que les moyennes mobiles, le RSI et les modèles d'engorgement pour effectuer des transactions longues et courtes en or. Grâce à la configuration des paramètres et au filtrage des signaux, elle établit un système relativement strict pour contrôler les risques dans une certaine mesure. Cependant, aucune stratégie ne peut être absolument parfaite. Cette stratégie a encore beaucoup de place pour l'optimisation et l'amélioration de la direction. En général, elle fournit des références significatives pour le trading quantifié, mais devrait toujours être utilisée discrètement avec des ajustements pragmatiques lorsqu'elle est appliquée dans la pratique.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Gold Trading with Simons Strategy", overlay=true)

// Parameters
length21 = input(21, minval=1, title="Length for 21 MA")
length50 = input(50, minval=1, title="Length for 50 MA")
length200 = input(200, minval=1, title="Length for 200 MA")
rsiLength = input(14, minval=1, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
takeProfitPercent = input(4, title="Take Profit %")
stopLossPercent = input(1, title="Stop Loss %")

// Moving Averages
ma21 = sma(close, length21)
ma50 = sma(close, length50)
ma200 = sma(close, length200)

// RSI
rsi = rsi(close, rsiLength)

// Engulfing Pattern
isBullishCandle(c) => close[c] > open[c]
isBearishCandle(c) => close[c] < open[c]

bearishEngulfing = isBullishCandle(1) and isBearishCandle(0) and close < open[1] and open > close[1]
bullishEngulfing = isBearishCandle(1) and isBullishCandle(0) and close > open[1] and open < close[1]

// Calculate Take Profit and Stop Loss Levels
takeProfitLevel(entryPrice) => entryPrice * (1 + takeProfitPercent / 100)
stopLossLevel(entryPrice) => entryPrice * (1 - stopLossPercent / 100)

// Entry Conditions
longCondition = crossover(ma21, ma200) and close > ma21 and close > ma50 and rsi < rsiOverbought and bullishEngulfing
shortCondition = crossunder(ma21, ma200) and close < ma21 and close < ma50 and rsi > rsiOversold and bearishEngulfing

// Entry
if (longCondition)
    entryPrice = close
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", "Long", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Long", stop=stopLossLevel(entryPrice))
if (shortCondition)
    entryPrice = close
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit", "Short", limit=takeProfitLevel(entryPrice))
    strategy.exit("Stop Loss", "Short", stop=stopLossLevel(entryPrice))

// Plotting
plot(ma21, color=color.blue, title="21 MA")
plot(ma50, color=color.orange, title="50 MA")
plot(ma200, color=color.red, title="200 MA")
hline(rsiOverbought, "RSI Overbought", color=color.green)
hline(rsiOversold, "RSI Oversold", color=color.red)
plot(rsi, "RSI", color=color.purple)

Plus de