
La stratégie de rupture de deux moyennes mobiles est une stratégie de suivi de tendance plus typique. Elle capte la direction et la force des tendances du marché en calculant des moyennes mobiles de deux périodes différentes et en les croisant comme signaux d’achat et de vente.
La stratégie est basée principalement sur deux moyennes mobiles. La première moyenne mobile a une période plus courte, permettant de répondre plus rapidement aux variations de prix; la seconde moyenne mobile a une période plus longue, permettant de filtrer une partie du bruit.
Plus précisément, la stratégie calcule une moyenne mobile indicielle de 10 cycles (price1) et une moyenne mobile indicielle de 20 cycles (price2). Si le prix d’ouverture et de clôture de la ligne K actuelle est supérieur aux deux moyennes mobiles, un signal d’achat est généré. Si le prix d’ouverture et de clôture de la ligne K actuelle est inférieur aux deux moyennes mobiles, un signal de vente est généré.
Grâce à cette conception, il est possible d’entrer sur le marché plus tôt lorsque la tendance commence à se former et de suivre la tendance; il est également possible de sortir du marché le plus tôt possible lorsque la tendance est inversée, afin de contrôler efficacement les risques.
Cette stratégie est une stratégie de base pour la quantification des transactions. Elle est simple et pratique dans l’ensemble et permet de capturer les tendances grâce au principe de la double équilibre croisée. Cependant, cette stratégie comporte certains risques et nécessite une optimisation supplémentaire pour s’adapter aux différents environnements du marché.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(10, title="1st MA Length")
type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"])
ma2 = input(20, title="2nd MA Length")
type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"])
price1 = if (type1 == "SMA")
sma(price, ma1)
else
ema(price, ma1)
price2 = if (type2 == "SMA")
sma(price, ma2)
else
ema(price, ma2)
//plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)
buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)
if(buy_entry)
strategy.entry("Long", strategy.long)
if(sell_entry)
strategy.entry("Short", strategy.short)
strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)