La stratégie de croisement de la moyenne mobile double est une stratégie classique de suivi des tendances. Cette stratégie utilise deux moyennes mobiles avec des périodes différentes pour capturer les tendances du marché. Lorsque la moyenne mobile rapide traverse au-dessus de la moyenne mobile lente, elle génère un signal long. Lorsque la moyenne mobile rapide traverse en dessous de la moyenne mobile lente, elle génère un signal court. L'idée de base de cette stratégie est que la moyenne mobile rapide est plus sensible aux changements de prix et peut réagir plus rapidement aux changements des tendances du marché, tandis que la moyenne mobile lente reflète la tendance à long terme du marché. En analysant le croisement des deux moyennes mobiles, nous pouvons déterminer le tournant de la tendance du marché et effectuer des transactions en conséquence.
Dans ce code de stratégie, deux moyennes mobiles sont utilisées: une moyenne mobile rapide (défaut 14 périodes) et une moyenne mobile lente (défaut 28 périodes).
La logique principale de la stratégie est la suivante:
Grâce à cette logique, la stratégie peut suivre la tendance principale du marché, en détenant des positions longues dans une tendance haussière et des positions courtes ou aucune position dans une tendance baissière.
Pour lutter contre ces risques, les mesures suivantes peuvent être prises:
Ces optimisations peuvent améliorer l'adaptabilité et la stabilité de la stratégie pour mieux s'adapter aux différentes conditions du marché. Cependant, il convient également de noter que la surexploitation peut entraîner une suradaptation de la stratégie et de mauvaises performances dans le trading en direct.
La stratégie de croisement des moyennes mobiles doubles est une stratégie classique de suivi des tendances qui génère des signaux de trading par le croisement de deux moyennes mobiles avec des périodes différentes. Elle a une logique simple, est facile à mettre en œuvre et convient aux marchés en tendance. Cependant, sur les marchés à fourchette, elle peut subir des transactions fréquentes et des pertes consécutives. Par conséquent, lors de l'utilisation de cette stratégie, il est nécessaire d'optimiser les paramètres de la moyenne mobile basés sur les caractéristiques du marché et de fixer des niveaux raisonnables de stop-loss et de profit. En outre, l'adaptabilité et la stabilité de la stratégie peuvent être améliorées en introduisant plus d'indicateurs techniques, en optimisant la gestion de la position, la détermination de la tendance, etc. Cependant, une optimisation excessive peut entraîner un sur ajustement et doit être traitée avec prudence.
/*backtest start: 2024-02-09 00:00:00 end: 2024-03-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © z4011 //@version=5 strategy("#2idagos", overlay=true, margin_long=100, margin_short=100) allowShorting = input.bool(true, "Allow Shorting") fastMALength = input.int(14, "Fast MA Length") slowMALength = input.int(28, "Slow MA Length") fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) float fastMA = switch fastMAType "Simple" => ta.sma(close, fastMALength) "Exponential" => ta.ema(close, fastMALength) "Weighted" => ta.wma(close, fastMALength) "Relative" => ta.rma(close, fastMALength) plot(fastMA, color = color.aqua, linewidth = 2) float slowMA = switch slowMAType "Simple" => ta.sma(close, slowMALength) "Exponential" => ta.ema(close, slowMALength) "Weighted" => ta.wma(close, slowMALength) "Relative" => ta.rma(close, slowMALength) plot(slowMA, color = color.blue, linewidth = 2) longCondition = ta.crossover(fastMA, slowMA) if (longCondition) strategy.entry("Long", strategy.long) shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting if (shortCondition) strategy.entry("Short", strategy.short) closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting if (closeCondition) strategy.close("Long", "Close")