
Il s’agit d’une stratégie de trading simple basée sur une moyenne mobile simple à deux périodes différentes, qui permet d’acheter ou de vendre à la croisée des deux. Lorsque le signal change, le doublement de la position est utilisé, puis la position est ouverte à l’envers. À la fin de la période de trading intraday, si la position n’est pas encore levée, la position est complètement levée.
La stratégie utilise deux moyennes mobiles simples les 10e et 40e jours. Lorsque la moyenne courte est traversée par la moyenne longue, faites plus; lorsque la moyenne courte est traversée par la moyenne longue, faites moins. Lorsque le signal change, nettoyez la position en utilisant le double de la main et inversez la position.
Cette stratégie utilise principalement les caractéristiques suivantes: la courte moyenne permet de capturer plus rapidement les changements de prix. Lorsque la courte moyenne est traversée par la moyenne à long terme, cela signifie que les prix à court terme commencent à augmenter et que la tendance est mieux captée. Lorsque la courte moyenne est traversée par la moyenne à long terme, cela signifie que les prix à court terme commencent à baisser et que la tendance est mieux capturée.
Les solutions pour faire face aux risques:
Optimiser les paramètres de la moyenne. Vous pouvez tester plus de combinaisons pour trouver les meilleurs paramètres.
L’ajout d’autres filtres d’indicateurs techniques, par exemple la confirmation d’indicateurs MACD, peut réduire le taux de faux signaux.
Optimiser les multiples inverses des positions. Tester les différentes tailles de multiples pour trouver les paramètres optimaux.
Testez différentes périodes de la journée.
L’idée générale de la stratégie est simple: en capturant les tendances à court terme de la formation d’un croisement de deux lignes de symétrie, en utilisant le double poing pour augmenter l’espace de profit de l’ouverture de position inversée, et enfin en utilisant la négociation d’heures de la journée pour éviter le risque de nuit. C’est une stratégie efficace pour les transactions à courte durée de la journée.
/*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")