
Esta estratégia usa diferentes tipos de médias (SMA, EMA, HMA e VWMA) para determinar a tendência e acompanhar a tendência, calculando e encontrando seus pontos de interseção. A média curta gera um sinal de compra quando atravessa a média longa de baixo; e a média curta gera um sinal de venda quando atravessa a média longa de cima para baixo.
Esta estratégia julga a tendência de mercado principalmente comparando a relação entre duas linhas médias diferentes. Concretamente, define o tipo e a duração das duas linhas médias por meio de parâmetros de entrada. A primeira linha média é mais longa e representa a tendência de longo prazo; a segunda linha média é mais curta e representa a tendência atual de curto prazo.
Quando a média curta atravessa a média longa de baixo, representa um fortalecimento da tendência de curto prazo, o preço entra em uma tendência ascendente e, portanto, emite um sinal de compra neste ponto de cruzamento. Por outro lado, quando a média curta atravessa a média longa de cima, representa um enfraquecimento da tendência de curto prazo e o preço entra em uma tendência de queda e, portanto, emite um sinal de venda neste ponto de cruzamento.
A partir de um julgamento de equilíbrio entre as linhas, é possível negociar seguindo as tendências do mercado.
A solução para o risco:
Esta estratégia é baseada na idéia clássica de julgar as principais tendências de cruzamento de equilíbrio, aplicando-se de forma flexível através de uma combinação de diferentes equilíbrios. A lógica da estratégia é simples, fácil de implementar e adequada para a automação de negociação.
/*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)