Algoritmo de negociación del oro basado en la acción del precio


Fecha de creación: 2023-12-13 16:08:12 Última modificación: 2023-12-13 16:08:12
Copiar: 0 Número de Visitas: 1128
1
Seguir
1621
Seguidores

Algoritmo de negociación del oro basado en la acción del precio

Descripción general

Este algoritmo se basa en el movimiento del precio del oro para realizar operaciones. Calcula los precios más altos y más bajos de las últimas 20 líneas K para determinar el rango de fluctuación del precio. Cuando el precio supera el precio más alto de la línea K más reciente, hace más; cuando el precio cae por debajo del precio más bajo de la línea K más reciente, se cancela.

Principio del algoritmo

La lógica central de este algoritmo se basa en la teoría de las rupturas. El algoritmo registra los precios más altos y más bajos de las 20 líneas K más recientes para determinar el rango de fluctuación de los precios. Cuando el precio supera este rango, se considera una ruptura y, por lo tanto, se puede negociar.

  1. Calcula los máximos (highs) y mínimos (lows) de las últimas 20 líneas K
  2. Obtener el rango de fluctuación de los precios
  3. El precio más alto registrado en la línea K más reciente, como nivel de ruptura
  4. Cuando el máximo de la línea K más reciente supera el nivel de ruptura y el precio de cierre también supera el nivel de ruptura, haga más
  5. Cuando el punto más bajo de la línea K más reciente ha caído por debajo del nivel de ruptura y el precio de cierre también ha caído por debajo del nivel de ruptura, hacer una brecha
  6. Establecer un precio de parada de pérdida después de hacer más de un corto plazo

Como se puede ver, la señal de negociación de este algoritmo proviene de la determinación de la ruptura del precio, y el núcleo es identificar el momento en que la ruptura del precio ocurre.

Análisis de las ventajas

El algoritmo tiene las siguientes ventajas:

  1. Es sencillo, claro, fácil de entender y de hacer.
  2. Basado en la acción del precio, no influenciado por otros indicadores
  3. Las señales de entrada son claras y fáciles de dominar.
  4. Se puede filtrar el ruido del mercado para evitar ser bloqueado.
  5. Tiene un control de pérdidas para controlar las pérdidas individuales.

En general, la idea central del algoritmo es clara, lógica razonable, sencilla de implementar, fácil de dominar el tiempo de entrada, y se puede controlar la pérdida individual, una estrategia de comercio cuantitativa muy práctica.

Análisis de riesgos

El algoritmo también tiene algunos riesgos:

  1. La probabilidad de fracaso es alta y existe el riesgo de pérdida de ganancias
  2. La falta de control del tiempo de entrada puede ser demasiado temprano o demasiado tarde.
  3. El retiro puede ser grande y requiere cierta capacidad de resistencia psicológica.
  4. La configuración de stop loss no es razonable y puede perder más ganancias o sufrir mayores pérdidas

Los riesgos pueden ser controlados y optimizados con las siguientes medidas:

  1. Confirmación de la brecha en la mejora de la confiabilidad en combinación con otros indicadores
  2. Optimización de parámetros para mejorar la precisión del timing de entrada
  3. Ajuste de la gestión de las posiciones para reducir el riesgo de pérdidas individuales
  4. Ajuste dinámico del precio de parada y pérdida

Dirección de optimización

El algoritmo se puede optimizar en los siguientes aspectos:

  1. Combinado con otros indicadoresSe pueden introducir indicadores como promedios móviles, líneas de Brillín, etc., para una segunda confirmación de la ruptura y mejorar la fiabilidad de la señal.

  2. Optimización de parámetrosSe pueden probar diferentes combinaciones de parámetros, optimizar la duración del ciclo de los juicios de ruptura, y encontrar configuraciones de parámetros que hacen que las señales de negociación sean más confiables.

  3. Optimización de las pérdidas de paradaSe puede combinar con indicadores como la fluctuación, para ajustar dinámicamente la distancia de frenado en tiempo real.

  4. Optimización de la gestión de posicionesOptimización de los algoritmos de posicionamiento para reducir el impacto de las pérdidas individuales.

  5. Aprendizaje automáticoUtiliza algoritmos de aprendizaje automático para aprender grandes cantidades de datos históricos y buscar automáticamente la combinación de parámetros más óptima.

Con estas optimizaciones, se puede mejorar aún más la estabilidad, la eficacia y la rentabilidad del algoritmo.

Resumir

El algoritmo de comercio de oro basado en el precio de la acción de juicio, utilizando la teoría de la ruptura para generar señales de comercio. La idea es simple, clara, fácil de implementar, práctico. Al mismo tiempo, también tiene un cierto riesgo, la necesidad de una mayor optimización para mejorar la estabilidad y el nivel de rentabilidad. En general, el algoritmo es adecuado para el comercio de oro, es una estrategia de cuantificación de alta eficiencia y práctica.

Código Fuente de la Estrategia
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("XAUUSD Price Action Strategy", overlay=true)

// Define input parameters
takeProfit = input(500, "Take Profit")
stopLoss = input(200, "Stop Loss")

// Calculate price action
highs = ta.highest(high, 20)
lows = ta.lowest(low, 20)
priceRange = highs - lows
breakoutLevel = highs[1]

// Define conditions for long and short trades
longCondition = high > breakoutLevel and close > highs[1]
shortCondition = low < breakoutLevel and close < lows[1]

// Execute long and short trades with take profit and stop loss
if longCondition
    strategy.entry("Long", strategy.long)
    strategy.exit("Long Exit", "Long", limit = close + takeProfit, stop = close - stopLoss)

if shortCondition
    strategy.entry("Short", strategy.short)
    strategy.exit("Short Exit", "Short", limit = close - takeProfit, stop = close + stopLoss)

// Plot breakout level
plot(breakoutLevel, color=color.blue, title="Breakout Level")

// Highlight long and short trade signals on the chart
bgcolor(longCondition ? color.green : na, transp=80)
bgcolor(shortCondition ? color.red : na, transp=80)