Estrategia de negociación basada en patrones de pico a pico

El autor:¿ Qué pasa?, Fecha: 2024-02-20 15:40:58
Las etiquetas:

img

Resumen general

La estrategia se llama Peak-to-Peak Pattern Based Trading Strategy. Utiliza principalmente el patrón de pico a pico en los gráficos de velas para determinar entradas y salidas.

Principio de la estrategia

La estrategia define el pico ascendente (upFractal) y el pico descendente (downFractal) para identificar el patrón de pico a pico en los gráficos de velas.

Específicamente, la lógica de juicio para el pico ascendente es: el máximo del candelabro actual es el más alto de los n candelabros recientes, y el máximo de los candelabros posteriores no excede el actual.

La lógica de juicio para la caída del pico es: el mínimo del candelabro actual es el más bajo de los n candelabros recientes, y el mínimo de los candelabros posteriores no se rompe por debajo del actual.

Variables y bucles booleanos se utilizan aquí para determinar la relación entre n candlesticks anteriores y posteriores alto/bajo y el del actual, y finalmente identificar picos ascendentes y descendentes.

Por lo tanto, la lógica central de esta estrategia es la siguiente:

  1. Identificar los picos ascendentes y los picos descendentes
  2. Largo en los picos ascendentes y corto en los picos descendentes

Análisis de ventajas

Las ventajas de esta estrategia incluyen:

  1. El patrón de pico a pico es fácil de identificar, simple de operar
  2. Basado en patrones técnicos, no afectado por los fundamentos
  3. Posibilidades de extracción más pequeñas

Análisis de riesgos

También hay algunos riesgos con esta estrategia:

  1. Juego de patrón de pico a pico inexacto, puede perder el mejor momento de entrada
  2. Difícil de establecer un stop loss cuando el mercado se mueve violentamente
  3. Sólo se basa en el patrón, ignora otros factores

Las medidas de contramedida:

  1. Ajuste de parámetros de patrón de pico a pico para optimizar la lógica
  2. Combinar con otros indicadores para determinar la posición de stop loss
  3. Uso junto con el análisis fundamental u otro análisis

Direcciones de optimización

Algunas direcciones para optimizar la estrategia:

  1. Aumentar las opciones de ajuste de parámetros para identificar mejor los patrones de pico a pico
  2. Añadir la lógica de stop loss
  3. Considerar el volumen de operaciones, la volatilidad y otros indicadores
  4. Combinar análisis de diferentes marcos de tiempo

Resumen de las actividades

Esta estrategia es sencilla de operar con posibles reducciones más pequeñas basadas en el principio de patrón de pico a pico. Pero todavía tiene algunos riesgos y debe combinarse con otros métodos de análisis para maximizar su rendimiento.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("sanju parmar", shorttitle="sanju trading empire", overlay=true)

// Define "n" as the number of periods and keep a minimum value of 2 for error handling.
n = input.int(title="Periods", defval=2, minval=2)

// UpFractal
bool upflagDownFrontier = true
bool upflagUpFrontier0 = true
bool upflagUpFrontier1 = true
bool upflagUpFrontier2 = true
bool upflagUpFrontier3 = true
bool upflagUpFrontier4 = true

for i = 1 to n
    upflagDownFrontier := upflagDownFrontier and (high[n-i] < high[n])
    upflagUpFrontier0 := upflagUpFrontier0 and (high[n+i] < high[n])
    upflagUpFrontier1 := upflagUpFrontier1 and (high[n+1] <= high[n] and high[n+i + 1] < high[n])
    upflagUpFrontier2 := upflagUpFrontier2 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+i + 2] < high[n])
    upflagUpFrontier3 := upflagUpFrontier3 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+i + 3] < high[n])
    upflagUpFrontier4 := upflagUpFrontier4 and (high[n+1] <= high[n] and high[n+2] <= high[n] and high[n+3] <= high[n] and high[n+4] <= high[n] and high[n+i + 4] < high[n])
flagUpFrontier = upflagUpFrontier0 or upflagUpFrontier1 or upflagUpFrontier2 or upflagUpFrontier3 or upflagUpFrontier4

upFractal = (upflagDownFrontier and flagUpFrontier)


// downFractal
bool downflagDownFrontier = true
bool downflagUpFrontier0 = true
bool downflagUpFrontier1 = true
bool downflagUpFrontier2 = true
bool downflagUpFrontier3 = true
bool downflagUpFrontier4 = true

for i = 1 to n
    downflagDownFrontier := downflagDownFrontier and (low[n-i] > low[n])
    downflagUpFrontier0 := downflagUpFrontier0 and (low[n+i] > low[n])
    downflagUpFrontier1 := downflagUpFrontier1 and (low[n+1] >= low[n] and low[n+i + 1] > low[n])
    downflagUpFrontier2 := downflagUpFrontier2 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+i + 2] > low[n])
    downflagUpFrontier3 := downflagUpFrontier3 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+i + 3] > low[n])
    downflagUpFrontier4 := downflagUpFrontier4 and (low[n+1] >= low[n] and low[n+2] >= low[n] and low[n+3] >= low[n] and low[n+4] >= low[n] and low[n+i + 4] > low[n])
flagDownFrontier = downflagUpFrontier0 or downflagUpFrontier1 or downflagUpFrontier2 or downflagUpFrontier3 or downflagUpFrontier4

downFractal = (downflagDownFrontier and flagDownFrontier)

plotshape(downFractal, style=shape.triangleup, location=location.belowbar, offset=-n, color=#18f523, size = size.small)
plotshape(upFractal, style=shape.triangledown, location=location.abovebar, offset=-n, color=#cf3d11, size = size.small)

// Strategy Conditions
longCondition = upFractal
shortCondition = downFractal

// Strategy Entry and Exit
if (longCondition)
    strategy.entry("Buy", strategy.long)
if (shortCondition)
    strategy.entry("Sell", strategy.short)


Más.