
Cette stratégie utilise les courts et les longs mouvements bilatéraux dans le commerce de l’or, en combinant les moyennes mobiles, les indices relativement faibles (RSI) et la forme de la déglutition. Elle utilise le croisement des lignes de 21, 50 et 200 jours comme signal de négociation principal, tandis que l’indicateur RSI et la forme de la déglutition aident à filtrer les signaux pour optimiser davantage l’entrée sur le marché.
La stratégie consiste principalement à prendre des décisions commerciales en fonction des aspects suivants:
La ligne 21 et la ligne 200 sont utilisées comme indicateurs principaux pour déterminer le renversement de tendance. Il s’agit d’un signal haussier lorsque la ligne 21 traverse la ligne 200 et d’un signal baissier lorsque la ligne 21 traverse la ligne 200.
Il est possible de définir des lignes de survente et de survente pour l’indicateur RSI, soit une ligne de survente lorsque le RSI est supérieur à 70, soit une ligne de survente lorsque le RSI est inférieur à 30. Le RSI doit être dans une zone de non-survente lors d’un signal haussier, et dans une zone de non-survente lors d’un signal baissier, afin d’éviter d’acheter des hauts et de vendre des bas.
Un candle doit être affiché pour confirmer le renversement de tendance.
Lorsque les trois conditions ci-dessus sont réunies, un signal de transaction et une commande sont générés, formant ainsi un ensemble de filtres plus stricts.
Le plus grand avantage de cette stratégie réside dans le fait qu’elle utilise de multiples paramètres et indicateurs pour un jugement global, afin de mieux filtrer les signaux erronés et de réduire les pertes inutiles. Les avantages concrets se manifestent dans les aspects suivants:
La stratégie des moyennes mobiles a une certaine stabilité en elle-même.
Le RSI est réglé de manière à éviter les hauts et les bas de l’indicateur.
L’ajout d’une forme de dévoration peut confirmer davantage la fiabilité d’un renversement de tendance.
Le stop loss est faible et permet de contrôler efficacement les risques.
Bien que cette stratégie fasse du bien en termes de filtrage des signaux et de contrôle des risques, toute stratégie présente des faiblesses et des risques.
Les paramètres sont complexes et peuvent nécessiter de nombreux tests pour trouver la meilleure combinaison de paramètres.
Les signaux d’entrée sont plus stricts et vous risquez de manquer certaines bonnes occasions.
Dans les cas extrêmes, il peut y avoir un certain retard.
La stabilité à long terme reste à vérifier.
Nous pouvons améliorer et optimiser ces risques en ajustant les paramètres, en optimisant la logique du code et en combinant d’autres indicateurs.
La stratégie a bien fonctionné sur de multiples indicateurs, mais il y a encore de la place pour l’optimisation. Les principaux axes d’optimisation sont:
L’ajustement des paramètres pour trouver la meilleure combinaison. Il est possible de trouver un ensemble de paramètres plus optimaux en comparant l’impact des différents paramètres sur les résultats, grâce à un retour d’informations historiques.
Les indicateurs tels que MACD, KD et autres peuvent également aider à déterminer le moment où la tendance se retourne. L’introduction appropriée d’autres indicateurs peut former un système d’indicateurs plus fort.
Optimiser et améliorer les mécanismes d’arrêt de la perte. Les arrêts existants sont de petite ampleur et peuvent être testés davantage pour voir si les arrêts de différentes ampleurs peuvent réduire les commutations inutiles de positions.
Tester les données sur des périodes plus longues pour vérifier l’efficacité à long terme de la stratégie.
Cette stratégie utilise un large éventail d’outils d’analyse technique, tels que les moyennes mobiles, les indicateurs RSI et les formes d’absorption, pour effectuer des opérations bidirectionnelles à long et à court dans le commerce de l’or. Un système de stratégies plus rigoureux a été formé grâce à la définition de paramètres et au filtrage des signaux, ce qui a permis de contrôler le risque dans une certaine mesure. Cependant, aucune stratégie ne peut être parfaite à cent pour cent.
/*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)