Estrategia de compra/venta con múltiples indicadores


Fecha de creación: 2023-10-18 11:36:38 Última modificación: 2023-10-18 11:36:38
Copiar: 3 Número de Visitas: 649
1
Seguir
1617
Seguidores

Estrategia de compra/venta con múltiples indicadores

Descripción general

Esta estrategia permite el seguimiento de la tendencia mediante la combinación de indicadores de línea media, indicadores de sobreventa y sobreventa y indicadores de volatilidad para comprar a la baja en caso de rebote de sobreventa y vender a la altura en caso de rebote de sobreventa.

Principio de estrategia

Se establecen posiciones cuando el RSI y el Stoch se encuentran simultáneamente en la zona de sobreventa y el oscilador AO muestra una señal de reversión. En concreto, cuando el RSI y el Stoch se encuentran en las posiciones bajas (por debajo de los 30 y 20) y el AO hace más cuando se corrige desde lo negativo; cuando el RSI y el Stoch están en las posiciones altas (por encima de los 70 y 80) y el AO hace vacío cuando se corrige desde lo negativo.

La estrategia se basa en cuatro indicadores:

  • AO Oscillator: refleja la dinámica de los cambios en los precios y puede usarse para determinar la reversión de la tendencia.
  • El RSI es un indicador relativamente débil: refleja sobrecompra y sobreventa. Bajo 30 es zona de sobreventa.
  • StochStochastic: refleja una zona de sobrecompra y una zona de sobreventa. Por debajo de 20 es una zona de sobreventa.
  • La amplitud real promedio de ATR: refleja la amplitud de las fluctuaciones recientes de los precios.

Cuando se produce una señal de reversión del AO y el RSI y el Stoch se encuentran simultáneamente en la zona de sobreventa, se indica que el precio puede revertirse, lo que puede intervenir para establecer una posición. El indicador ATR se utiliza para establecer el precio de parada de pérdida, ajustando la amplitud de la parada de pérdida según la volatilidad del mercado para evitar ser cubierto.

Ventajas estratégicas

  • El uso de señales de confirmación de varios indicadores evita las transacciones erróneas causadas por un solo indicador.
  • La volatilidad del mercado establece un margen de parada de pérdidas que permite controlar eficazmente las pérdidas individuales.
  • La lógica de la estrategia de negociación es simple, clara y fácil de entender.
  • La intervención en el caso de sobrecompra y sobreventa permite aprovechar las oportunidades de reversión.

Riesgos y soluciones

  • El indicador AO es propenso a generar falsas señales y debe usarse en combinación con el RSI y el indicador Stoch para evitar transacciones erróneas.
  • La configuración de parámetros fijos puede no adaptarse a los cambios en el mercado y requiere la optimización de los parámetros.
  • El punto de parada está demasiado cerca y puede ser detenido con frecuencia. Se puede relajar el rango de detención adecuadamente o usar estrategias de salida.
  • Punto de parada fijo, posible salida prematura o inlineCallbacks. Se puede usar parada móvil o salida por lotes.

Para reducir estos riesgos, se puede optimizar en los siguientes aspectos:

  1. Optimizar los parámetros para adaptarlos mejor a los mercados de diferentes ciclos y variedades.
  2. Mejora de los mecanismos de detención de pérdidas, como la detención móvil, el reparto de salidas, etc.
  3. Optimizar las condiciones de entrada para evitar señales erróneas debido a un solo indicador.
  4. Optimización de las paradas, como paradas móviles o paradas por segmentos según la tendencia.

Dirección de optimización de la estrategia

Esta estrategia puede ser optimizada en los siguientes aspectos:

  1. La configuración de los parámetros de optimización. Se puede encontrar una combinación de parámetros mejor mediante métodos como la búsqueda de optimización.

  2. Aumentar las condiciones de filtración. Se puede agregar una confirmación de indicadores adicionales en la entrada para evitar falsas señales.

  3. Mecanismos de optimización de la suspensión de pérdidas. Se puede utilizar la suspensión móvil, el lote de salida, etc., para controlar el riesgo.

  4. Optimización de las paradas. Se pueden usar paradas móviles, paradas por etapas según la tendencia, etc., para bloquear más ganancias.

  5. Aumentar el frenado automático. Por ejemplo, el frenado se detiene cuando se acerca a la puerta de un número entero importante, para evitar el retroceso de salto.

  6. Optimización de la gestión de fondos. Por ejemplo, ajustar el tamaño de las posiciones en función de los cambios en el riesgo y controlar la máxima pérdida.

  7. Optimización de la prueba para una variedad / ciclo específico. Los parámetros y los métodos de detención de pérdidas deben optimizarse para diferentes variedades y períodos.

  8. Aumentar el manejo de los eventos inesperados, como evitar el comercio cuando se trata de noticias importantes o detener rápidamente.

Resumir

Esta estrategia utiliza un sistema de equilibrio, un sistema de sobreventa y sobreventa y un sistema de volatilidad, que tiene una fuerte capacidad de seguimiento de tendencias cuando el valor es bajo y cuando el valor es alto y cuando el valor es alto. Pero también hay algunos problemas como la configuración de parámetros fijos, imperfección del mecanismo de parada de pérdidas.

Código Fuente de la Estrategia
/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy("Buy&Sell Strategy depends on AO+Stoch+RSI+ATR by SerdarYILMAZ", shorttitle="Buy&Sell Strategy")
// Created by Serdar YILMAZ
// This strategy is just for training, its purpose is just learning code in pine script.
// Don't make buy or sell decision with this strategy.
// Bu strateji sadece pine script'te kodlamanın nasıl yapildigini ogrenmek icindir.
// Bu stratejiye dayanarak, kesinlikle al-sat islemleri yapmayin.

//AO

fast=input(title="Fast Length",type=input.integer,defval=5)
slow=input(title="Slow length",type=input.integer,defval=34)

awesome=(sma(hl2,fast)-sma(hl2,slow))*1000

plot(awesome, style=plot.style_histogram, color=(awesome>awesome[1]?color.green:color.red))

//Stoch

K=input(title="K",type=input.integer,defval=14)
D=input(title="D",type=input.integer,defval=3)
smooth=input(title="smooth",type=input.integer,defval=3)

k=sma(stoch(close,high,low,K),D)
d=sma(k,smooth)

hline(80)
hline(20)

plot(k,color=color.blue)

//RSI

rsisource=input(title="rsi source",type=input.source,defval=close)
rsilength=input(title="rsi length",type=input.integer,defval=10)

rsi=rsi(rsisource,rsilength)

hline(70,color=color.orange)
hline(30,color=color.orange)

plot(rsi,color=color.orange)

//ATR

atrlen=input(title="ATR Length", type=input.integer,defval=14)

atrvalue=rma(tr,atrlen)

plot(atrvalue*1000,color=color.green)

LongCondition=k<20 and rsi<30 and awesome>awesome[1]
ShortCondition=k>80 and rsi>70 and awesome<awesome[1]
if (LongCondition)
    stoploss=low-atrvalue
    takeprofit=close+atrvalue
    strategy.entry("Long Position", strategy.long)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
    
if (ShortCondition)
    stoploss=high+atrvalue
    takeprofit=close-atrvalue
    strategy.entry("Short Position",strategy.short)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)