Estrategia combinada de ruptura de precios de doble media móvil y equilibrio de potencia largo-corto


Fecha de creación: 2024-01-08 17:09:48 Última modificación: 2024-01-08 17:09:48
Copiar: 3 Número de Visitas: 635
1
Seguir
1617
Seguidores

Estrategia combinada de ruptura de precios de doble media móvil y equilibrio de potencia largo-corto

Descripción general

Esta estrategia utiliza primero el promedio móvil del índice de los períodos 2 y 20 para construir el indicador de la línea de equilibrio doble, para determinar si el precio ha roto la línea de equilibrio, como juicio básico dentro del campo de entrada. Al mismo tiempo, el indicador de juicio auxiliar, el indicador de equilibrio de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza de la fuerza.

Principio de estrategia

  1. Indicador de línea media 220

    • Calcular el promedio móvil del índice en los períodos 2 y 20 (EMA)
    • Cuando el precio de cierre se rompe de un lado de la línea media al otro, se emite una señal de negociación
    • La brecha de la línea media de 20 es una señal de tendencia
    • La brecha de la línea media 2 es una señal para determinar el punto de entrada específico
  2. Indicadores de equilibrio de fuerzas en el aire

    • Calcula el valor de fuerza múltiple y el valor de fuerza vacía, respectivamente
    • La comparación de las dimensiones de los dos aviones muestra que la Fuerza Aérea es relativamente débil.
    • La dirección de la fuerza como un criterio auxiliar para entrar en juego
  3. Juzgado por dos indicadores

    • Indicadores de doble línea para determinar la dirección de las grandes tendencias
    • Indicadores de equilibrio de fuerzas multiespaciales para el juicio regional local
    • Cuando ambos juzgados coinciden, se emite una señal de transacción.

Análisis de las ventajas

La mayor ventaja de esta combinación de estrategias es la combinación de diferentes tipos de indicadores para lograr un juicio comercial más confiable. En concreto, hay varias ventajas:

  1. Utiliza el doble equilibrio para determinar la dirección general y evitar el engaño de la flotación local
  2. Indicadores de equilibrio de fuerzas aéreas para el juicio de la zona local, con un dominio preciso de los puntos de entrada específicos
  3. Los dos indicadores se verifican entre sí para filtrar ciertas situaciones de mal funcionamiento y reducir el riesgo de transacción.
  4. La configuración de los parámetros es flexible y se puede optimizar para diferentes variedades del mercado
  5. La estrategia es simple, clara y fácil de entender, lo que facilita su optimización posterior.

Análisis de riesgos

También hay riesgos que deben ser considerados:

  1. El retraso en la señal emitida por el indicador puede causar un punto de parada demasiado profundo
  2. Indicadores de doble línea son más sensibles a la configuración de los parámetros
  3. Los indicadores de equilibrio multi-espacio son un poco más inexactos para evaluar las tendencias a corto plazo.
  4. En situaciones especiales (falsa señal de ruptura frecuente), puede haber un desvío de juicio en los dos indicadores

Respuesta:

  1. Reducir adecuadamente el período de mantenimiento de la posición o establecer un stop loss móvil adecuado
  2. Prueba diferentes combinaciones de parámetros para encontrar el mejor
  3. Indicadores auxiliares de referencia para la confirmación
  4. Parámetros de optimización según las características de la variedad

Dirección de optimización

Esta estrategia puede ser optimizada en los siguientes aspectos:

  1. Prueba de más combinaciones de parámetros del indicador de la línea media
  2. Incrementar las estrategias de stop loss y controlar el stop loss individual
  3. Indicadores de fluctuación para mejorar la adaptabilidad de los parámetros
  4. Agrega modelos de aprendizaje automático para optimizar los parámetros dinámicos
  5. Intentar un indicador de avance diferente en lugar de un indicador de equilibrio múltiple
  6. Desarrollo de interfaces visuales para que los usuarios puedan probar diferentes parámetros

Resumir

Esta estrategia utiliza dos indicadores de línea uniforme para determinar la tendencia general y un indicador de equilibrio de fuerzas de varios espacios para determinar el momento de entrada. Ambos indicadores se verifican mutuamente y pueden reducir la probabilidad de operaciones erróneas. La elección de los parámetros de la estrategia es flexible y se puede ajustar para optimizar diferentes variedades.

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

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/05/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
//    This new indicator analyzes the balance between bullish and
//    bearish sentiment.
//    One can cay that it is an improved analogue of Elder Ray indicator.
//    To get more information please see "Bull And Bear Balance Indicator" 
//    by Vadim Gimelfarb. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


BBB(SellLevel,BuyLevel) =>
    pos = 0.0
    value = close < open ? 
              close[1] > open ?  math.max(close - open, high - low) : high - low : 
                 close > open ? 
                  close[1] > open ? math.max(close[1] - low, high - close) : math.max(open - low, high - close) :
                   high - close > close - low ? 
                     close[1] > open ? math.max(close[1] - open, high - low) :high - low : 
                      high - close < close - low ? 
                         close > open ? math.max(close - low, high - close) : open - low : 
                           close > open ? math.max(close[1] - open , high - close) :
                             close[1] < open ? math.max(open - low, high - close) : high - low
    
    value2 =close < open ? 
              close[1] < open ?  math.max(high - close[1], close - low) : math.max(high - open, close - low) : 
               close > open ? 
                 close[1] > open ?  high - low : math.max(open - close[1], high - low) : 
                  high - close > close - low ? 
                   close[1] < open ? math.max(high - close[1], close - low) : high - open : 
                     high - close < close - low ? 
                      close[1] > open ?  high - low : math.max(open - close, high - low) : 
                       close[1] > open ? math.max(high - open, close - low) :
                         close[1] < open? math.max(open - close, high - low): high - low
    nBBB = value2 - value
    pos :=  nBBB < SellLevel ? -1 :
    	     nBBB >= BuyLevel ? 1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Bull And Bear Balance', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════  Bull And Bear Balance ═════●'
SellLevel = input.float(-15, step=0.01, group=I2)
BuyLevel = input.float(15, step=0.01, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosBBB = BBB(SellLevel,BuyLevel)
iff_1 = posEMA20 == -1 and prePosBBB == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBBB == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)