Estrategia cuantitativa de mapa de calor de centro de liquidez de múltiples períodos

MTF
Fecha de creación: 2024-12-20 14:20:11 Última modificación: 2024-12-20 14:20:11
Copiar: 0 Número de Visitas: 433
1
Seguir
1617
Seguidores

Estrategia cuantitativa de mapa de calor de centro de liquidez de múltiples períodos

Descripción general

La estrategia es un sistema de negociación cuantitativa basado en detección de puntos centrales de fluidez en múltiples períodos de tiempo. Identifica los niveles clave de soporte y resistencia mediante el análisis del comportamiento de los precios en tres períodos de tiempo diferentes: 15 minutos, 1 hora y 4 horas, y toma decisiones de negociación sobre esta base. El sistema integra funciones de administración de fondos, incluida la configuración de paradas y pérdidas de montos fijos, al tiempo que proporciona retroalimentación visual intuitiva para ayudar a los operadores a comprender mejor la estructura del mercado.

Principio de estrategia

El núcleo de la estrategia es detectar los puntos centrales de los precios en varios períodos de tiempo a través de las funciones ta.pivothigh y ta.pivotlow. Para cada período de tiempo, el sistema utiliza la línea K de referencia izquierda y derecha (default 7) para determinar los puntos altos y bajos más significativos. Cuando se produce un nuevo punto mínimo central en un período de tiempo, el sistema genera una señal múltiple; cuando se produce un nuevo punto alto central, el sistema genera una señal de vacío.

Ventajas estratégicas

  1. El análisis de múltiples períodos de tiempo proporciona una visión más completa del mercado, lo que ayuda a capturar diferentes niveles de oportunidades de negociación.
  2. La lógica de transacción basada en nodos tiene una base sólida de análisis tecnológico para ser fácil de entender y ejecutar
  3. Funciones de gestión de fondos integradas para controlar eficazmente el riesgo de cada transacción
  4. La interfaz visual muestra de forma intuitiva el estado de las operaciones, incluida la posición, el nivel de stop loss y las zonas de pérdidas
  5. Los parámetros de la estrategia son ajustables, adaptables y se pueden optimizar según las diferentes condiciones del mercado

Riesgo estratégico

  1. Las señales de múltiples períodos de tiempo pueden tener conflictos y se necesita un mecanismo de prioridad de señal razonable.
  2. La cantidad fija de stop loss puede no ser adecuada para todas las condiciones del mercado y se recomienda que se ajuste a la dinámica de la volatilidad.
  3. El retraso en la detección en los nodos puede causar un retraso en el tiempo de entrada
  4. Durante las altas oscilaciones, puede haber falsas señales de ruptura.
  5. Hay que tener en cuenta las diferencias de fluidez en diferentes períodos de tiempo

Dirección de optimización de la estrategia

  1. Introducción de indicadores de volatilidad y ajuste dinámico del nivel de pérdidas de parada
  2. Mecanismos de confirmación de transacciones para mejorar la fiabilidad de los nodos
  3. Desarrollo de un sistema de prioridad de ciclo de tiempo para resolver conflictos de señales
  4. Integrar filtros de tendencias para evitar el exceso de comercio en mercados horizontales
  5. Considere agregar análisis de la estructura de precios para mejorar la precisión de la hora de entrada

Resumir

La estrategia de cuantificación de la energía térmica de los nodos de fluidez de múltiples ciclos de tiempo es un sistema de negociación estructurado, lógicamente claro. A través de un análisis de mercado multidimensional y una gestión estricta del riesgo, proporciona a los operadores un marco de negociación confiable. Aunque existen algunos riesgos y limitaciones inherentes, la estrategia se espera que mantenga un rendimiento estable en diversos entornos de mercado a través de la optimización y la mejora continuas.

Código Fuente de la Estrategia
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pmotta41
//@version=5
strategy("GPT Session Liquidity Heatmap Strategy", overlay=true)

// Inputs
timeframe1 = input.timeframe("15", title="Intraday Timeframe 1")
timeframe2 = input.timeframe("60", title="Intraday Timeframe 2")
timeframe3 = input.timeframe("240", title="Higher Timeframe")
leftBars = input.int(7, title="Left Bars for Pivot", minval=2, maxval=20)
rightBars = input.int(7, title="Right Bars for Pivot", minval=2, maxval=20)
takeProfitDollar = input(200, title="Take Profit $$")
stopLossDollar = input(100, title="Stop Loss $$")

// Pivot Detection Function
detectPivot(highs, lows, left, right) =>
    pivotHigh = ta.pivothigh(highs, left, right)
    pivotLow = ta.pivotlow(lows, left, right)
    [pivotHigh, pivotLow]

// Get Pivots from Different Timeframes
[pivotHigh1, pivotLow1] = request.security(syminfo.tickerid, timeframe1, detectPivot(high, low, leftBars, rightBars))
[pivotHigh2, pivotLow2] = request.security(syminfo.tickerid, timeframe2, detectPivot(high, low, leftBars, rightBars))
[pivotHigh3, pivotLow3] = request.security(syminfo.tickerid, timeframe3, detectPivot(high, low, leftBars, rightBars))

// Plot Pivots
plotshape(series=pivotHigh1, title="Pivot High 1", location=location.abovebar, color=color.red, style=shape.labeldown, text="H1")
plotshape(series=pivotLow1, title="Pivot Low 1", location=location.belowbar, color=color.green, style=shape.labelup, text="L1")
plotshape(series=pivotHigh2, title="Pivot High 2", location=location.abovebar, color=color.red, style=shape.labeldown, text="H2")
plotshape(series=pivotLow2, title="Pivot Low 2", location=location.belowbar, color=color.green, style=shape.labelup, text="L2")
plotshape(series=pivotHigh3, title="Pivot High 3", location=location.abovebar, color=color.red, style=shape.labeldown, text="H3")
plotshape(series=pivotLow3, title="Pivot Low 3", location=location.belowbar, color=color.green, style=shape.labelup, text="L3")

// Strategy Logic
buyCondition = pivotLow1 or pivotLow2 or pivotLow3
sellCondition = pivotHigh1 or pivotHigh2 or pivotHigh3

if (buyCondition)
    strategy.entry("Buy", strategy.long)

if (sellCondition)
    strategy.entry("Sell", strategy.short)

// Function to Convert $$ to Points for Stop Loss and Take Profit
moneyToSLPoints(money) =>
    strategy.position_size != 0 ? (money / syminfo.pointvalue / math.abs(strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(takeProfitDollar)
l = moneyToSLPoints(stopLossDollar)

// Exit Conditions
strategy.exit("Exit Buy", from_entry="Buy", profit=p, loss=l)
strategy.exit("Exit Sell", from_entry="Sell", profit=p, loss=l)

// Visualization for Stop Loss and Take Profit Levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * math.sign(strategy.position_size) * syminfo.mintick

tp = plot(pointsToPrice(p), style=plot.style_linebr, color=color.green, title="Take Profit Level")
sl = plot(pointsToPrice(-l), style=plot.style_linebr, color=color.red, title="Stop Loss Level")
avg = plot(strategy.position_avg_price, style=plot.style_linebr, color=color.blue, title="Entry Price")
fill(tp, avg, color=color.new(color.green, 90), title="Take Profit Area")
fill(avg, sl, color=color.new(color.red, 90), title="Stop Loss Area")

// Background for Gain/Loss
gainBackground = strategy.position_size > 0 and close > strategy.position_avg_price
lossBackground = strategy.position_size > 0 and close < strategy.position_avg_price
bgcolor(gainBackground ? color.new(color.green, 90) : na, title="Gain Background")
bgcolor(lossBackground ? color.new(color.red, 90) : na, title="Loss Background")