Esta é uma estratégia de negociação intradiária que utiliza o oscilador AO e os crossovers da EMA para gerar sinais de negociação.
A estratégia baseia-se principalmente em dois indicadores para entradas e saídas:
Oscilador AO: mede a diferença entre as médias HL2 de 5 períodos e 34 períodos para medir a direção da tendência atual.
EMA Crossover: A estratégia usa uma EMA de 3 períodos para a tendência de curto prazo e uma EMA de 20 períodos para a direção da tendência de médio prazo.
As negociações são feitas apenas quando o AO cruza sua linha zero simultaneamente com um cruzamento da EMA. Isso evita sinais errados quando o AO está oscilando. As saídas acontecem após o fechamento da sessão de Londres, achatando todas as posições.
As principais vantagens desta estratégia são:
Alguns riscos a ter em conta incluem:
Os riscos podem ser mitigados através de paradas de perdas, parâmetros adaptativos ajustados a ciclos variáveis, etc.
As principais direções de otimização são em torno do ajuste de parâmetros:
Os ajustes dos parâmetros e os filtros adicionais podem aumentar a robustez e a eficácia da estratégia.
Em resumo, esta tática de negociação intradiária combina o indicador de tendência AO com crossovers da EMA para criar uma abordagem simples, mas prática. Ele tem sinais claros que são fáceis de implementar, mas carece de parâmetros adaptativos. Testes e refinamentos adicionais podem melhorar sua estabilidade e alinhamento com diferentes cenários de mercado.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@author SoftKill21 strategy(title="MA cross + AO", shorttitle="MA_AO") ao = sma(hl2,5) - sma(hl2,34) len = input(3, minval=1, title="Length") src = input(close, title="Source") out = ema(src, len) len1 = input(20, minval=1, title="Length") src1 = input(close, title="Source") out1 = sma(src1, len1) timeinrange(res, sess) => time(res, sess) != 0 londopen = timeinrange(timeframe.period, "0300-1100") nyopen = timeinrange(timeframe.period, "0800-1600") longC = crossover(out,out1) and ao>0 and londopen shortC = crossunder(out,out1) and ao<0 and londopen invert = input(title="Reverse position ?", type=input.bool, defval=false) if(invert==false) strategy.entry("LONG",1,when=longC) strategy.entry("SHORT",0,when=shortC) if(invert==true) strategy.entry("short",0,when=longC) strategy.entry("long",1,when=shortC) strategy.close_all(when= not (londopen))