Estrategia de seguimiento de tendencias dual

El autor:¿ Qué pasa?, Fecha: 2023-09-17 18:20:27
Las etiquetas:

Resumen general

Este indicador se basa en el indicador Aroon para identificar y rastrear tendencias en ambas direcciones. El indicador Aroon puede determinar efectivamente la dirección de las tendencias del mercado. Combinado con el indicador RSI, forma una estrategia de seguimiento relativamente completa.

Principio de la estrategia

  1. Utilice el indicador Aroon para determinar la dirección de las tendencias de los precios.

  2. Cuando el indicador Aroon cruza por encima de la línea 0 desde abajo, se activa una señal de compra.

  3. Si ya tiene una posición, y el cierre es inferior al precio de compra, mientras que el RSI es inferior a 30, se considera sobreventa, se colocarán órdenes de compra adicionales.

  4. Cuando el indicador de Aroon cruza por debajo de la línea 0 desde arriba, se activa una señal de salida completa.

  5. Si la pérdida excede este punto, se activa una salida de stop loss.

Análisis de ventajas

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

  2. El indicador RSI ayuda a identificar áreas de sobrecompra y sobreventa, evitando perseguir nuevos máximos y vender mínimos durante los cambios de mercado.

  3. El comercio en ambas direcciones permite obtener ganancias tanto en los mercados ascendentes como descendentes.

  4. Establecer un stop loss ayuda a controlar los riesgos.

Análisis de riesgos

  1. El indicador de Aroon tiene un efecto de retraso, que puede pasar por alto las reversiones a corto plazo y repentinas.

  2. No puede manejar eficazmente los mercados de rango limitado, lo que conduce a operaciones innecesarias.

  3. El comercio en ambas direcciones aumenta la frecuencia del comercio y los costos de comisión.

  4. Los parámetros deben ajustarse adecuadamente para adaptarse a diferentes plazos y productos.

Direcciones de optimización

  1. Combinar con otros indicadores para filtrar las señales y reducir los errores causados por el retraso.

  2. Aumentar la investigación cuantitativa para optimizar los parámetros de los diferentes productos.

  3. Agregue estrategias de obtención de ganancias para aumentar el factor de ganancia.

  4. Considere sólo el comercio cuando la tendencia es clara para reducir las operaciones ineficaces.

Resumen de las actividades

Esta estrategia integra los indicadores de Aroon y RSI para formar un sistema de trading de tendencia bidireccional relativamente completo. Pero aún se necesita una mayor optimización de los parámetros y la combinación con otros indicadores de filtrado para reducir los errores.


/*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


Más.