O indicador Aroon pode determinar efetivamente a direção das tendências do mercado. Combinado com o indicador RSI, ele forma uma estratégia de rastreamento relativamente completa.
Use o indicador Aroon para determinar a direção das tendências de preços.
Quando o indicador Aroon cruza acima da linha 0 a partir de baixo, um sinal de compra é acionado.
Se já tiver uma posição, e o fechamento for inferior ao preço de compra, enquanto o RSI for inferior a 30, é considerado sobrevendido, serão colocadas ordens de compra adicionais.
Quando o indicador Aroon cruza abaixo da linha 0 de cima, um sinal de saída completo é acionado.
Se a perda exceder este ponto, uma saída de stop loss é acionada.
Usando o indicador Aroon para determinar a direção da tendência pode efetivamente capturar pontos de rotação do mercado.
O indicador RSI ajuda a identificar áreas de sobrecompra e sobrevenda, evitando perseguir novas altas e vender baixas durante as voltas de mercado.
O comércio em ambas as direcções permite obter lucros em mercados ascendentes e descendentes.
Definir um stop loss ajuda a controlar os riscos.
O indicador de Aroon tem um efeito de atraso, que pode deixar de lado reversões de curto prazo e súbitas.
Não pode lidar eficazmente com mercados de intervalo, o que leva a transacções desnecessárias.
A negociação em ambas as direcções aumenta a frequência das trocas e os custos de comissão.
Os parâmetros precisam de um ajuste adequado para se adaptarem a diferentes prazos e produtos.
Combinar com outros indicadores para filtrar os sinais e reduzir os erros causados pelo atraso.
Aumentar a investigação quantitativa para otimizar os parâmetros dos diferentes produtos.
Adicionar estratégias de lucro para aumentar o fator de lucro.
Considere apenas negociar quando a tendência for clara para reduzir as negociações ineficazes.
Esta estratégia integra os indicadores Aroon e RSI para formar um sistema de negociação de tendências de direção dupla relativamente completo. Mas ainda é necessária uma otimização adicional dos parâmetros e a combinação com outros indicadores de filtragem para reduzir erros.
/*backtest start: 2023-09-09 00:00:00 end: 2023-09-12 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © mohanee //@version=4 // strategy(title="Aroon Oscillator Strategy", overlay=false, pyramiding=2, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed, //variables BEGIN aroonLength=input(169,title="Aroon Length") //square root of 13 rsiLength=input(13, title="RSI Length") stopLoss = input(title="Stop Loss%", defval=5, minval=1) //variables END //RSI rsi13=rsi(close,rsiLength) // Drawings //Aroon oscillator arronUpper = 100 * (highestbars(high, aroonLength+1) + aroonLength)/aroonLength aroonLower = 100 * (lowestbars(low, aroonLength+1) + aroonLength)/aroonLength aroonOsc = arronUpper - aroonLower aroonMidpoint = 0 oscPlot = plot(aroonOsc, color=color.green) midLine= plot(aroonMidpoint, color=color.green) topLine = plot(90,style=plot.style_circles, color=color.green) bottomLine = plot(-90,style=plot.style_circles, color=color.red) fill(oscPlot, midLine, color=aroonOsc>0?color.green:color.red, transp=50) fill(topLine,bottomLine, color=color.blue) // RSI //plot(rsi13, title="RSI", linewidth=2, color=color.purple) //hline(50, title="Middle Line", linestyle=hline.style_dotted) //obLevel = hline(80, title="Overbought", linestyle=hline.style_dotted) //osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted) //fill(obLevel, osLevel, title="Background", color=rsi13 >=30 ? color.green:color.purple, transp=65) // longTermRSI >=50 //Entry-- strategy.entry(id="Long Entry", comment="LE", long=true, when= crossover(aroonOsc,0) ) //crossover(close,ema34) //and close>ema34 //crossover(rsi5Val,rsiBuyLine) //Add if(strategy.position_size>=1 and close < strategy.position_avg_price and crossover(rsi13,30)) strategy.order(id="Long Entry", comment="Add", long=true ) //crossover(close,ema34) //and close>ema34 //crossover(rsi5Val,rsiBuyLine) -- stopLossVal= abs(strategy.position_size)>1 ? strategy.position_avg_price*(1-0.5) : 0.00 //close partial strategy.close(id="Long Entry", comment="Partial X", qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 90) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close All strategy.close(id="Long Entry", comment="Exit All", when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 0) ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89 //close All on stop loss strategy.close(id="Long Entry", comment="Stoploss X", when=abs(strategy.position_size)>=1 and close < stopLossVal ) //close<ema55 and rsi5Val<20 //ema34<ema55 //close<ema89