La estrategia se basa en la identificación y seguimiento de tendencias bidireccionales en el indicador Aroon. El indicador Aroon puede determinar la dirección de las tendencias del mercado de manera efectiva, y en combinación con el indicador RSI para determinar las zonas de sobreventa y sobreventa, forma una estrategia de seguimiento más completa.
Utiliza el indicador Aroon para determinar la dirección de la tendencia de los precios. Un indicador por encima de la línea 0 es una tendencia alcista, y por debajo de la línea 0 es una tendencia bajista.
La operación de compra se realiza cuando el indicador de Aroon rompe la línea 0 desde abajo.
Si se ha construido una posición y el precio de cierre es inferior al precio de compra, y el RSI es inferior a 30, se considera una sobreventa y se aumenta la posición.
Cuando el indicador Aroon cae por encima de la línea 0, se vende todo.
Establezca un punto de pérdida del 5% y, si la pérdida supera ese punto, realice una venta a pérdida.
El uso del indicador Aroon para determinar la dirección de la tendencia permite capturar con eficacia los puntos de rotación del mercado.
El indicador RSI ayuda a determinar las zonas de sobrecompra y sobreventa, evitando perseguir los altibajos en los puntos de inflexión del mercado.
La negociación bidireccional permite obtener ganancias en entornos de mercado ascendentes y bajistas.
Establecer un punto de parada ayuda a controlar el riesgo.
El índice Aroon está rezagado y podría perderse una reversión breve y repentina.
El hecho de que no se pueda manejar de manera eficiente la liquidación del mercado generará más transacciones innecesarias.
Las transacciones bidireccionales aumentan la frecuencia de las transacciones y el costo de las comisiones.
Se necesitan ajustes adecuados de los parámetros para adaptarse a diferentes ciclos y variedades.
En combinación con otras señales de filtración de indicadores, reduce la probabilidad de que se produzcan transacciones erróneas por retraso.
Aumentar el estudio cuantitativo y optimizar la combinación de parámetros para que coincida con las diferentes variedades.
Aumentar las estrategias de contención y mejorar los factores de rentabilidad.
Considere la posibilidad de negociar solo cuando la tendencia es clara y reduzca las transacciones no válidas.
La estrategia integra los dos indicadores Aroon y RSI para formar una estrategia de negociación de tendencia bidireccional más completa. Sin embargo, aún se necesita una configuración de parámetros de optimización adicional, en combinación con otros indicadores de filtrado para reducir la probabilidad de operaciones erróneas.
/*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