
Cette stratégie consiste à déterminer et à suivre les tendances en calculant différents types de moyennes (SMA, EMA, HMA et VWMA) et en recherchant leurs points d’intersection. Elle génère un signal d’achat lorsque la moyenne plus courte traverse la moyenne plus longue en bas et un signal de vente lorsque la moyenne plus courte traverse la moyenne plus longue en haut.
Cette stratégie consiste principalement à comparer les relations entre deux lignes de moyenne différentes pour déterminer la tendance. Plus précisément, le type et la longueur des deux lignes de moyenne sont définis par des paramètres d’entrée. La première ligne de moyenne est plus longue et représente la tendance à long terme; la seconde, plus courte, représente la tendance à court terme.
Lorsque la courte moyenne passe en dessous de la moyenne à long terme, elle représente une tendance à court terme de plus en plus forte, le marché entrant dans une tendance à la hausse, donc un signal d’achat est émis à cet intersection. Inversement, lorsque la courte moyenne passe en haut de la moyenne à long terme, elle représente une tendance à court terme de plus en plus faible, le marché entrant dans une tendance à la baisse, donc un signal de vente est émis à cet intersection.
Il s’agit d’une méthode de négociation qui permet de suivre les tendances du marché.
Comment gérer les risques:
Cette stratégie est basée sur l’idée classique de juger les principales tendances de la ligne de croix uniforme, avec une application flexible par la combinaison de différentes lignes de croix uniforme. La logique de la stratégie est simple, facile à mettre en œuvre et adaptée à l’automatisation des transactions.
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy", overlay=true)
src = input(close, title="Source")
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])
ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"])
f_hma(_src, _length)=>
_return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))
price1 = if (type1 == "SMA")
sma(price, ma1)
else
if (type1 == "EMA")
ema(price, ma1)
else
if (type1 == "VWMA")
vwma(price, ma1)
else
f_hma(price, ma1)
price2 = if (type2 == "SMA")
sma(price, ma2)
else
if (type2 == "EMA")
ema(price, ma2)
else
if (type2 == "VWMA")
vwma(price, ma2)
else
f_hma(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)
longCondition = crossover(price1, price2)
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = crossunder(price1, price2)
if (shortCondition)
strategy.entry("Short", strategy.short)