Estrategia de punto clave de reversión del mercado


Fecha de creación: 2023-12-15 10:37:01 Última modificación: 2023-12-15 10:37:01
Copiar: 0 Número de Visitas: 754
1
Seguir
1621
Seguidores

Estrategia de punto clave de reversión del mercado

Descripción general

Esta estrategia adopta el principio de ruptura del indicador de William, combinado con una línea K de forma específica, para diseñar un modelo de apertura y liquidación de posiciones abiertas y cerradas de alta eficiencia, lo que permite hacer más deuda con precisión en los puntos clave de la reversión de la situación, capturar la tendencia de la línea media corta y obtener ganancias adicionales.

Principio de estrategia

Esta estrategia utiliza los puntos de ruptura en el indicador de William para juzgar la señal de reversión. Cuando se produce una ruptura superior o inferior, se produce una señal de negociación si coincide con la dirección de la entidad de la línea K.

En concreto, la estrategia define un indicador personalizado WMX Williams Fractals. El indicador utiliza una función de factorización para determinar el tipo de fractal superior (upFractal) y el tipo de fractal inferior (dnFractal).

La lógica de clasificación superior es: el valor máximo de la línea K actual es mayor que el valor máximo de la línea K anterior n-raíz (n es el parámetro ajustable), de modo que se forma una clasificación superior de ruptura.

La lógica de clasificación de abajo es: el precio mínimo de la línea K actual es menor que el precio mínimo de la línea K de n raíces anteriores, de modo que se forma una clasificación de abajo.

Una vez clasificados arriba y abajo, se determina si han cambiado, es decir, de nada a nada o de algo a nada. En este momento, la clasificación recién se ha formado, lo que significa que es más probable que se revierta.

Luego se combina la dirección de la entidad de la línea K para determinar la señal de transacción específica. Cuando se forma el tipo superior, el cierre es superior al de la apertura, haga más; Cuando se forma el tipo inferior, el cierre es inferior al de la apertura, haga vacío.

Ventajas estratégicas

  1. El uso de puntos de clasificación para determinar el punto de reversión con el índice de William, un indicador tecnológico bien establecido y fiable

  2. Combina la dirección de la entidad de la línea K para confirmar la señal de negociación y evitar chops en zonas no de tendencia

  3. Menos parámetros, sólo se necesita ajustar el ciclo de clasificación n, fácil de probar y optimizar

  4. Reglas de apertura de posición flexibles, como el tamaño de la posición, las condiciones de la posición, etc., fáciles de aplicar en el mundo real

Riesgo estratégico

  1. El análisis de las tendencias es necesario para determinar si la tendencia es positiva o negativa, si es negativa o negativa, y si es negativa o negativa.

  2. La configuración de la posición de deterioro requiere precaución para evitar el deterioro de la conducción por el ruido masivo.

  3. El parámetro n necesita ser ajustado según las diferentes variedades, si el ciclo es demasiado grande o demasiado pequeño, afectará el efecto

La solución:

  1. Indicadores como promedios móviles pueden ser usados para evaluar las tendencias generales y evitar posiciones a la inversa

  2. Detener el seguimiento dinámico o establecer un límite de retiro razonable

  3. Optimización de parámetros utilizando el método de análisis de marcha adelante para encontrar los mejores parámetros

Dirección de optimización de la estrategia

  1. Las estrategias de inversión basadas en la diversificación son propensas a la formación de situaciones en las que las inversiones ocasionan pérdidas después de obtener ganancias repetidas. Se puede considerar la inclusión de filtros de tendencia, limitando aún más el alcance de las operaciones y reduciendo las inversiones innecesarias.

  2. Los métodos actuales de detención de pérdidas son relativamente simples y no permiten un seguimiento efectivo de la situación. Se puede intentar agregar métodos de detención de pérdidas como detención móvil, detención temporal y detención dinámica.

  3. En la actualidad, solo se puede determinar la dirección física de la línea K. Se puede diseñar una señal de negociación más precisa si se tiene en cuenta más información de la línea K, como la línea de sombra, la posición del terminal, etc.

Resumir

Esta estrategia es una estrategia de inversión basada en indicadores técnicos. Utiliza la clasificación del índice William para capturar la tendencia de cambio de la acción del índice en los momentos clave, combinada con la entidad de la línea K para formar una señal de negociación con el objetivo de obtener ganancias excedentes.

En comparación con otras estrategias de inversión, esta estrategia se puede implementar directamente en el mundo real a través de un diseño parametrizado, una lógica clara y fácil de entender, un ajuste de parámetros conveniente y fácil de probar. El siguiente paso es optimizar aún más la estrategia a través de la determinación de tendencias y el método de detener los pérdidas, por ejemplo.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-14 00:00:00
end: 2023-12-14 00:00:00
period: 1h
basePeriod: 15m
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/
// © WMX_Q_System_Trading

//@version=4
SystemName="WMX Williams Fractals strategy V4"
InitCapital = 1000000
InitPosition = 100
InitCommission = 0.075
InitPyramidMax = 10
strategy(title=SystemName, shorttitle=SystemName, overlay=true, initial_capital=InitCapital, default_qty_type=strategy.percent_of_equity, default_qty_value=InitPosition, commission_type=strategy.commission.percent, commission_value=InitCommission)


//study("WMX Williams Fractals", shorttitle="WMX Fractals", format=format.price, precision=0, overlay=true)
// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input(title="Periods", defval=2, minval=2, type=input.integer)
h=close
l=close

factorh(High)=>
    upFractal = (                                                                                                          (High[n+2]  < High[n]) and (High[n+1]  < High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
             or (                                                                               (High[n+3]  < High[n]) and (High[n+2]  < High[n]) and (High[n+1] == High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
             or (                                                    (High[n+4]  < High[n]) and (High[n+3]  < High[n]) and (High[n+2] == High[n]) and (High[n+1] <= High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
             or (                          (High[n+5] < High[n]) and (High[n+4]  < High[n]) and (High[n+3] == High[n]) and (High[n+2] == High[n]) and (High[n+1] <= High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
             or ((High[n+6] < High[n]) and (High[n+5] < High[n]) and (High[n+4] == High[n]) and (High[n+3] <= High[n]) and (High[n+2] == High[n]) and (High[n+1] <= High[n]) and (High[n-1] < High[n]) and (High[n-2] < High[n]))
    upFractal
upFractal=factorh(h)
factorl(Low)=>
    dnFractal = (                                                                                                  (Low[n+2]  > Low[n]) and (Low[n+1]  > Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
             or (                                                                         (Low[n+3]  > Low[n]) and (Low[n+2]  > Low[n]) and (Low[n+1] == Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
             or (                                                (Low[n+4]  > Low[n]) and (Low[n+3]  > Low[n]) and (Low[n+2] == Low[n]) and (Low[n+1] >= Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
             or (                        (Low[n+5] > Low[n]) and (Low[n+4]  > Low[n]) and (Low[n+3] == Low[n]) and (Low[n+2] == Low[n]) and (Low[n+1] >= Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
             or ((Low[n+6] > Low[n]) and (Low[n+5] > Low[n]) and (Low[n+4] == Low[n]) and (Low[n+3] >= Low[n]) and (Low[n+2] == Low[n]) and (Low[n+1] >= Low[n]) and (Low[n-1] > Low[n]) and (Low[n-2] > Low[n]))
    
dnFractal=factorl(l)

U=valuewhen(upFractal[0]!= upFractal[1],l[0],3)
L=valuewhen(dnFractal[0]!=dnFractal[1],h[0],3)

longcon=crossover(close ,L) and close>open
shortcon=crossunder(close ,U) and close<open

if longcon
    
    strategy.entry("Long", strategy.long,   when = strategy.position_size <= 0 )
    
if  shortcon
    strategy.entry("Short", strategy.short,  when = strategy.position_size >= 0 )