Il s'agit d'une stratégie de trading intraday simple basée sur des moyennes mobiles doubles. Il utilise deux moyennes mobiles simples avec des périodes différentes et prend des positions longues ou courtes lorsque les moyennes mobiles se croisent. La position est inversée en utilisant une quantité double lorsque le signal change.
La stratégie utilise une moyenne mobile simple de 10 jours et de 40 jours. Elle va long lorsque la moyenne mobile de courte période dépasse la moyenne mobile de longue période et va court lorsque le croisement inverse se produit. Lorsque le signal change, la position est fermée en utilisant une quantité double et une position inverse est initiée.
La stratégie utilise principalement la capacité de capture plus rapide des changements de prix de la moyenne mobile à plus courte période. Lorsque la courte SMA traverse au-dessus de la longue SMA, elle indique une tendance haussière des prix à court terme, donc aller long peut la capturer. L'inverse indique une tendance à la baisse à court terme.
Réduction des risques:
Optimiser les paramètres MA en testant plus de combinaisons pour le meilleur ajustement.
Ajouter des filtres comme la confirmation MACD pour réduire les faux signaux.
Optimiser le multiplicateur de quantité d'entrée inverse grâce à l'ajustement des paramètres.
Testez en prolongant la durée de la session intradienne pour obtenir de meilleurs rendements.
La stratégie capte les tendances à court terme formées à partir des signaux de croisement MA, élargit les profits en utilisant le double volume de négociation inverse et limite les risques du jour au lendemain en négociant uniquement dans une session intraday.
/*backtest start: 2024-02-19 00:00:00 end: 2024-02-26 00:00:00 period: 1m basePeriod: 1m 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/ // © Pritesh-StocksDeveloper //@version=4 strategy("Moving Average - Intraday", shorttitle = "MA - Intraday", overlay=true, calc_on_every_tick = true) // Used for intraday handling // Session value should be from market start to the time you want to square-off // your intraday strategy var i_marketSession = input(title="Market session", type=input.session, defval="0915-1455", confirm=true) // Short & Long moving avg. period var int i_shortPeriod = input(title = "Short MA Period", type = input.integer, defval = 10, minval = 2, maxval = 20, confirm=true) var int i_longPeriod = input(title = "Long MA Period", type = input.integer, defval = 40, minval = 3, maxval = 120, confirm=true) // A function to check whether the bar is in intraday session barInSession(sess) => time(timeframe.period, sess) != 0 // Calculate moving averages shortAvg = sma(close, i_shortPeriod) longAvg = sma(close, i_longPeriod) // Plot moving averages plot(series = shortAvg, color = color.red, title = "Short MA", linewidth = 2) plot(series = longAvg, color = color.blue, title = "Long MA", linewidth = 2) // Long/short condition longCondition = crossover(shortAvg, longAvg) shortCondition = crossunder(shortAvg, longAvg) // See if intraday session is active bool intradaySession = barInSession(i_marketSession) // Trade only if intraday session is active // Long position strategy.entry(id = "Long", long = strategy.long, when = longCondition and intradaySession) // Short position strategy.entry(id = "Short", long = strategy.short, when = shortCondition and intradaySession) // Square-off position (when session is over and position is open) squareOff = (not intradaySession) and (strategy.position_size != 0) strategy.close_all(when = squareOff, comment = "Square-off")