3 10 Estrategia de señalización del perfil del oscilador

El autor:¿ Qué pasa?, fecha: 2024-02-18 16:17:26
Las etiquetas:

img

Resumen general

La estrategia 3 10 Oscillator Profile Flagging genera señales de trading mediante el cálculo de la diferencia entre las medias móviles simples de 3 y 10 días como indicador MACD y la combinación de análisis de volumen para determinar la fortaleza de compradores y vendedores en el mercado.

Principio de la estrategia

El indicador central de esta estrategia es el MACD, que consiste en una línea de promedio móvil rápido y una línea de promedio móvil lento. La línea rápida es una media móvil simple de 3 días y la línea lenta es una media móvil simple de 10 días. La diferencia entre ellos forma el histograma MACD. Cuando la línea rápida cruza por encima de la línea lenta desde abajo, representa un fortalecimiento del poder adquisitivo y genera una señal de compra. Por el contrario, cuando la línea rápida cruza por debajo de la línea lenta desde arriba, el poder de venta se fortalece y se genera una señal de venta.

Además, la estrategia incorpora el análisis de la fuerza relativa del volumen de compra y venta basado en la relación de tamaño entre el volumen de compra y el volumen de venta de cada candelabro. El método específico es: Volumen de compra = Volumen x (Cerrar - Bajo) ÷ (Alto - Bajo); Volumen de venta = Volumen x (Alto - Cerrar) ÷ (Alto - Bajo). Si el volumen de compra es significativamente mayor que el volumen de venta, significa que el candelabro cierra con un poder de compra relativamente fuerte, que es una señal de compra.

Al combinar el indicador MACD y el análisis de volumen, la estrategia puede determinar efectivamente la relación de oferta y demanda y la dirección pendiente en el mercado. Al mismo tiempo, la estrategia también verifica condiciones tales como si el precio está en un área clave, si el MACD tiene una reversión efectiva y si la diferencia entre el volumen de compra y venta es lo suficientemente grande, para filtrar algo de ruido impulsivo y garantizar una entrada de alta probabilidad y alta eficiencia.

Análisis de ventajas

  • Utilice el indicador MACD para juzgar la dirección pendiente del mercado
  • Análisis de la diferencia de volumen para determinar la fuerza de los compradores y vendedores
  • La detección de múltiples condiciones garantiza un funcionamiento de alta probabilidad
  • Adoptar una estrategia de stop profit y stop loss para controlar los riesgos

La mayor ventaja de esta estrategia es que incorpora plenamente el juicio de la relación de oferta y demanda del mercado. El histograma MACD puede determinar efectivamente el contraste entre el poder de compra y venta y la dirección pendiente en el mercado; el análisis de la diferencia de volumen puede identificar claramente el poder dominante entre compradores y vendedores. Al mismo tiempo, la estrategia establece múltiples condiciones para la revisión para evitar perseguir aumentos y vencer caídas, lo que garantiza una probabilidad relativamente alta de ganancia. Además, el mecanismo de stop profit y stop loss incorporado de la estrategia también puede limitar pérdidas individuales.

Análisis de riesgos

  • Cuando el mercado fluctúa o se consolida en un patrón plano, el MACD puede generar señales falsas.
  • Puede haber manipulación del mercado para aumentar el volumen de operaciones, lo que reduciría la precisión del análisis del volumen.
  • Dificultad de optimización de parámetros: la estrategia contiene múltiples parámetros que son difíciles de optimizar, por lo que no es adecuada para inversores con capacidades de ajuste de parámetros relativamente débiles.

Los riesgos anteriores pueden evitarse determinando con precisión la tendencia principal del mercado para evitar el uso de esta estrategia durante las fluctuaciones del mercado; prestando atención a la información del mercado para identificar volúmenes de negociación inflados artificialmente; ajustando cuidadosamente los parámetros o consultando a profesionales.

Direcciones de optimización

La estrategia se puede optimizar en los siguientes aspectos:

  • Utilice indicadores como KD, bandas de Bollinger, etc. para reemplazar o ayudar al MACD y mejorar la precisión del juicio
  • Añadir mecanismos de gestión de posición para el ajuste de parámetros dinámicos
  • Optimizar los puntos de stop-profit y stop-loss para obtener un mayor beneficio único
  • Ejecutar en marcos de tiempo múltiples para mejorar la estabilidad

En resumen, se puede ver que hay un amplio margen para optimizar esta estrategia. Los inversores pueden hacer los ajustes y mejoras apropiados de acuerdo con su propia situación y condiciones del mercado para lograr una mejor eficacia de la estrategia.

Resumen de las actividades

La estrategia 3 10 Oscillator Profile Flagging integra con éxito las ideas del análisis MACD, la comparación de volumen y la verificación de filtrado multicondicional. Tiene fuertes capacidades para determinar las relaciones de oferta y demanda y las direcciones pendientes del mercado, al tiempo que controla los riesgos a través de mecanismos de stop profit y stop loss incorporados. La estrategia tiene un gran espacio de optimización y amplias perspectivas de aplicación que merecen una consideración clave e investigación en profundidad para los inversores.


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

//@version=5
strategy("3 10 Oscillator Profile Flagging", shorttitle="3 10 Oscillator Profile Flagging", overlay=true)

signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.8)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=10)
takeProfit = input( title="Take Profit", defval=0.75)
stopLoss = input( title="Stop Loss", defval=0.5)

fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)

buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
//plot(macdSlope, color=color.red, title="Total Volume")
//plot(signalSlope, color=color.green, title="Total Volume")
intrabarRange = high - low

getLookBackSlope(lookBack) => signal - signal[lookBack]
getBuyerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if buyVolume[i] > sellVolume[i]
            j += 1
    j

getSellerVolBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if sellVolume[i] > buyVolume[i]
            j += 1
    j

getVolBias(lookBack) =>
    float b = 0
    float s = 0
    for i = 1 to lookBack
        b += buyVolume[i]
        s += sellVolume[i]
    b > s

getSignalBuyerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] > signalBiasValue
            j += 1
    j

getSignalSellerBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < ( 0 - signalBiasValue )
            j += 1
    j

getSignalNoBias(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if signal[i] < signalBiasValue and signal[i] > ( 0 - signalBiasValue )
            j += 1
    j

getPriceRising(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] > close[i + 1]
            j += 1
    j


getPriceFalling(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if close[i] < close[i + 1] 
            j += 1
    j

getRangeNarrowing(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] < intrabarRange[i + 1] 
            j+= 1
    j

getRangeBroadening(lookBack) =>
    j = 0
    for i = 1 to lookBack
        if intrabarRange[i] > intrabarRange[i + 1] 
            j+= 1
    j

bool isNegativeSignalReversal = signalSlope < 0 and signalSlope[1] > 0
bool isNegativeMacdReversal = macdSlope < 0 and macdSlope[1] > 0

bool isPositiveSignalReversal = signalSlope > 0 and signalSlope[1] < 0
bool isPositiveMacdReversal = macdSlope > 0 and macdSlope[1] < 0

bool hasBearInversion = signalSlope > 0 and macdSlope < 0
bool hasBullInversion = signalSlope < 0 and macdSlope > 0

bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0 - signalBiasValue )

bool hasSignalBuyerBias = hasSignalBias and signal > 0
bool hasSignalSellerBias = hasSignalBias and signal < 0

bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0 - macdBiasValue )

bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)

bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )

// 7.48 Profit 52.5% 
if ( hasSignificantBuyerVolBias and getPriceRising(shortLookBack) == shortLookBack  and getBuyerVolBias(shortLookBack) == shortLookBack and hasPositiveMACDBias and hasBullInversion)
    strategy.entry("Short1", strategy.short, qty=10)
strategy.exit("TPS", "Short1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)

// 32.53 Profit 47.91%
if ( getPriceFalling(shortLookBack) and (getVolBias(shortLookBack) == false) and signalSlope < 0 and hasSignalSellerBias)
    strategy.entry("Long1", strategy.long, qty=10)
strategy.exit("TPS", "Long1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)

Más.