Esta estratégia utiliza médias móveis (MA) e EMA em diferentes prazos para identificar e negociar tendências. Combinando SMA, EMA de vários períodos, bem como corpos de velas, ele pode efetivamente filtrar o ruído do mercado e negociar tendências de médio a longo prazo com baixo risco.
A ideia central é baseada na comparação de 3 SMAs de diferentes períodos para determinar o ímpeto do preço.
Especificamente, a estratégia emprega 3 SMAs - 3-, 8- e 10-período SMA. Quando o preço está abaixo de todos os 3 SMAs, é considerado uma tendência de queda.
Além disso, uma EMA de 5 períodos verifica se o corpo da vela está apontando para cima antes de entrar em negociações longas.
Para as regras de saída, o número máximo de fechamentos lucrativos ou a duração máxima são utilizados como mecanismo de stop loss.
Ao combinar MAs de vários prazos, esta estratégia pode efetivamente filtrar o ruído do mercado e capturar tendências de médio a longo prazo.
Usar a EMA para verificar a direção do corpo da vela reduz o deslizamento desnecessário da compra em velas caindo.
No geral, trata-se de um sistema estável e fiável, adequado para seguir tendências durante semanas ou meses.
A estratégia é sensível aos parâmetros. A escolha subóptima de 3 períodos SMA ou 1 EMA pode deteriorar a qualidade do sinal. Os parâmetros precisam ser otimizados para diferentes instrumentos.
O risco de diferença não é tratado. Notícias fundamentais repentinas de que os preços de diferença podem causar perdas.
Podem ser adicionados mais prazos de MAs ou EMAs para melhorar ainda mais a precisão da tendência.
O preço moderado de stop loss pode ser testado para bloquear os lucros, reduzindo as perdas em movimentos extremos.
O aprendizado de máquina pode otimizar dinamicamente os parâmetros para se adaptar às condições de mercado em evolução.
A estratégia é robusta e confiável em geral, usando MA crossovers para determinar a tendência complementada por EMA filtro.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Free Strategy #02 (ES / SPY)", overlay=true) // Inputs Quantity = input(1, minval=1, title="Quantity") SmaPeriod01 = input(3, minval=1, title="SMA Period 01") SmaPeriod02 = input(8, minval=1, title="SMA Period 02") SmaPeriod03 = input(10, minval=1, title="SMA Period 03") EmaPeriod01 = input(5, minval=1, title="EMA Period 01") MaxProfitCloses = input(5, minval=1, title="Max Profit Close") MaxBars = input(10, minval=1, title="Max Total Bars") // Misc Variables src = close BarsSinceEntry = 0 MaxProfitCount = 0 Sma01 = sma(close, SmaPeriod01) Sma02 = sma(close, SmaPeriod02) Sma03 = sma(close, SmaPeriod03) Ema01 = ema(close, EmaPeriod01) // Conditions Cond00 = strategy.position_size == 0 Cond01 = close < Sma03 Cond02 = close <= Sma01 Cond03 = close[1] > Sma01[1] Cond04 = open > Ema01 Cond05 = Sma02 < Sma02[1] // Update Exit Variables BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1 MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1]) // Entries strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05)) // Exits strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))