
Esta estratégia permite o acompanhamento de tendências através do cálculo de médias móveis de diferentes períodos, definindo seus cruzamentos como sinais de compra e venda. A lógica central é usar médias móveis de períodos mais curtos para acompanhar a reversão de tendências de períodos mais longos.
A lógica por trás da configuração dos sinais de negociação acima é que a média móvel de curto prazo pode responder mais rapidamente às mudanças de preço e refletir as tendências mais recentes; a média móvel de longo prazo é mais capaz de refletir a tendência geral, filtrando o ruído. Quando a média móvel de curto prazo atravessa a média móvel de longo prazo, indica que a tendência está em reversão e, portanto, configura um sinal de negociação.
Esta estratégia é uma estratégia típica de acompanhamento de tendências através de uma simples travessia de média móvel, capturando a mudança da tendência dos preços. A vantagem é que é simples e fácil de entender, fácil de operar e pode ser adaptada a vários ambientes de mercado através do ajuste dos parâmetros. A desvantagem é que não é sensível à reação a eventos inesperados e pode gerar sinais errados.
/*backtest
start: 2023-02-23 00:00:00
end: 2024-02-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MA Crossover Strategy", overlay=true)
// Функция для получения скользящего среднего на заданном таймфрейме
getMA(source, length, timeframe) =>
request.security(syminfo.tickerid, timeframe, ta.sma(source, length))
// Вычисляем 200-периодное и 100-периодное скользящее среднее для текущего таймфрейма
ma200 = getMA(close, 200, "240")
ma100 = getMA(close, 100, "240")
// Открываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossover(ma100, ma200))
strategy.entry("Long", strategy.long)
// Закрываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossunder(ma100, ma200))
strategy.close("Long")
// Открываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз
if (ta.crossunder(ma100, ma200))
strategy.entry("Short", strategy.short)
// Закрываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное снизу вверх
if (ta.crossover(ma100, ma200))
strategy.close("Short")
// Рисуем линии скользящих средних на графике
plot(ma200, color=color.blue, linewidth=2, title="200 MA")
plot(ma100, color=color.red, linewidth=2, title="100 MA")