Esta estratégia é chamada de
A ideia por trás desta estratégia se originou do criador das linhas Aroon, Tushar Chande. Chande sugeriu que as tendências ascendentes e descendentes podem ser identificadas quando o Oscilador Aroon está acima ou abaixo de 50. Isso ajuda a mitigar as deficiências das linhas Aroon simples e cruzes em períodos não-trendentes.
Especificamente, a estratégia primeiro calcula as linhas Aroon Up, Aroon Down e Aroon Oscillator de 19 períodos. O oscilador é calculado subtraindo a linha Down da linha Up. A linha do meio é então definida em -25, o trilho superior a 75 e o trilho inferior a -85. Quando o oscilador passa acima da linha do meio, a posição longa é aberta. Quando ele desce, a posição curta é aberta. As condições de saída estão fechando longa quando o oscilador passa acima do trilho superior e fechando curta quando ele passa abaixo do trilho inferior.
Assim, a linha do meio é usada para determinar a direção da tendência para a entrada, os trilhos superior e inferior são usados para sair quando a tendência inversa, realizando negociação automatizada baseada no indicador do Oscilador Aroon.
Em comparação com as estratégias tradicionais de seguimento de tendências, esta estratégia tem as seguintes vantagens:
Em resumo, ao combinar os pontos fortes do indicador Aroon Oscillator, a estratégia alcança a negociação automatizada de ativos específicos com uma boa taxa de ganho e rentabilidade.
Há também alguns riscos com esta estratégia:
Estes riscos podem ser reduzidos e melhorados ajustando os parâmetros e otimizando o código.
Para melhorar ainda mais o desempenho da estratégia, podem ser feitas otimizações nos seguintes aspectos:
Através de testes e otimização abrangentes, a estabilidade, a taxa de vitória e a rentabilidade da estratégia podem ser muito melhoradas.
Esta estratégia criativamente alcançou a negociação automatizada de ativos com alta volatilidade e tendências pouco claras com base no indicador do Oscilador Aroon. Em comparação com as estratégias de tendência tradicionais, ele tem melhor desempenho nesses tipos de ativos, e suas condições de negociação rigorosas também são alcançadas por meio de configurações de parâmetros. As vantagens da estratégia são notáveis, mas ainda há espaço para melhoria.
/*backtest start: 2023-12-15 00:00:00 end: 2024-01-10 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // by Saucius Finance https://saucius-finance.blogspot.com/ // copyrights reserved :) // This strategy derives form the consideration of the author, Tushar Chande, that, in "more patterns" paragraph, // long and short trends are identified by oscillator < or > line 50. // This helps because simple Aroon and Aroon crosses suffer in not trending periods. // original article avabile in:" Stocks & Commodities, V. 13:9 (369-374) : A Time Price Oscillator by Tushar Chande, Ph.D."" strategy("Aroon Oscillator strategy by Saucius", overlay=false) //building aroon lines, Embodying both Aroon line (Up and Down) and Aroon Oscillator length = input(19, minval=1) level_middle = input(-25, minval=-90, maxval=90, step = 5) levelhigh = input(75, minval=-100, maxval=100, step = 5) levellow = input(-85, minval=-100, maxval=100, step = 5) upper = 100 * (highestbars(high, length+1) + length)/length lower = 100 * (lowestbars(low, length+1) + length)/length oscillator = upper - lower plot(upper, title="Aroon Up", color=blue) plot(lower, title="Aroon Down", color=red) plot(oscillator, title="Aroon Oscillator", color = yellow) hline(level_middle, title="middle line", color=gray, linewidth=2) hline(levelhigh, title ="upper border", color=gray, linewidth=1) hline(levellow, title ="lower border", color=gray, linewidth=1) // Entry // entryl = oscillator[1] < level_middle[1] and oscillator > level_middle entrys = oscillator[1] > level_middle[1] and oscillator < level_middle strategy.entry("Long", true, when = entryl) strategy.entry("Short", false, when = crossunder (oscillator, level_middle)) // === EXIT=== exitL1 = oscillator[1] > levelhigh[1] and oscillator < levelhigh exitS1 = oscillator[1] < levellow[1] and oscillator > levellow strategy.close("Long", when=entrys) strategy.close("Short", when=entryl) strategy.close("Long", when= exitL1) strategy.close("Short", when= exitS1)