Estrategia de seguimiento de tendencias bidireccional


Fecha de creación: 2023-09-17 18:20:27 Última modificación: 2023-09-17 18:20:27
Copiar: 2 Número de Visitas: 695
1
Seguir
1617
Seguidores

Descripción general

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.

Principio de estrategia

  1. 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.

  2. La operación de compra se realiza cuando el indicador de Aroon rompe la línea 0 desde abajo.

  3. 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.

  4. Cuando el indicador Aroon cae por encima de la línea 0, se vende todo.

  5. Establezca un punto de pérdida del 5% y, si la pérdida supera ese punto, realice una venta a pérdida.

Análisis de las ventajas

  1. El uso del indicador Aroon para determinar la dirección de la tendencia permite capturar con eficacia los puntos de rotación del mercado.

  2. El indicador RSI ayuda a determinar las zonas de sobrecompra y sobreventa, evitando perseguir los altibajos en los puntos de inflexión del mercado.

  3. La negociación bidireccional permite obtener ganancias en entornos de mercado ascendentes y bajistas.

  4. Establecer un punto de parada ayuda a controlar el riesgo.

Análisis de riesgos

  1. El índice Aroon está rezagado y podría perderse una reversión breve y repentina.

  2. El hecho de que no se pueda manejar de manera eficiente la liquidación del mercado generará más transacciones innecesarias.

  3. Las transacciones bidireccionales aumentan la frecuencia de las transacciones y el costo de las comisiones.

  4. Se necesitan ajustes adecuados de los parámetros para adaptarse a diferentes ciclos y variedades.

Dirección de optimización

  1. En combinación con otras señales de filtración de indicadores, reduce la probabilidad de que se produzcan transacciones erróneas por retraso.

  2. Aumentar el estudio cuantitativo y optimizar la combinación de parámetros para que coincida con las diferentes variedades.

  3. Aumentar las estrategias de contención y mejorar los factores de rentabilidad.

  4. Considere la posibilidad de negociar solo cuando la tendencia es clara y reduzca las transacciones no válidas.

Resumir

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.

Código Fuente de la Estrategia
/*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