Estrategia de ruptura cerrada de la media móvil del índice


Fecha de creación: 2023-12-07 15:50:13 Última modificación: 2023-12-07 15:50:13
Copiar: 0 Número de Visitas: 696
1
Seguir
1619
Seguidores

Estrategia de ruptura cerrada de la media móvil del índice

Descripción general

La estrategia determina la dirección de la línea media móvil del índice para determinar la dirección de la posición en el mercado libre. Se realiza una operación en el mercado libre cuando se produce un cambio en la dirección de la línea media móvil del índice o cuando se produce un cambio en la posición en el mercado libre.

Principio de estrategia

  1. Utiliza dos parámetros diferentes para determinar la dirección de la tendencia del mercado. La línea de EMA a corto plazo se considera como un mercado de más de una cabeza sobre la línea de EMA a largo plazo, por el contrario, es un mercado de cabeza vacía.

  2. Cuando el mercado está en estado de múltiples cabezas, si aparece una forma en la que la línea de sol se traga una línea K anterior, y el volumen de transacciones es 1.2 veces mayor que la línea K anterior, se genera una señal de hacer más. Esta forma muestra la fuerza de múltiples cabezas es fuerte y se puede hacer más.

  3. Cuando se produce un cambio de tendencia en el mercado, es decir, cuando el EMA a corto plazo atraviesa el EMA a largo plazo, se muestra que la fuerza de los múltiples cabezales se debilita y se debe nivelar la posición. O cuando se presenta una forma de que la línea de la caída se traga la línea de sol, se muestra que la fuerza de la cabeza vacía aumenta la entrada, y también se debe detener la pérdida de la posición.

Análisis de las ventajas

  1. El uso de la doble EMA para determinar la estructura del mercado permite una mayor precisión en el estado del mercado libre.

  2. La forma de engullir muestra que las fuerzas unilaterales se incrementan de repente, lo que permite capturar una situación más grande. En combinación con el volumen de transacciones, aumenta el filtro para evitar el retraso de la falsa ruptura.

  3. Dispone de un mecanismo de detención de pérdidas. Dado que no se establece un punto de detención, el uso de un giro de la estructura del mercado para detener las pérdidas puede reducir la pérdida de puntos de deslizamiento que se producen sin necesidad de detener las pérdidas.

Análisis de riesgos

  1. El doble EMA también puede juzgar la estructura del mercado erróneamente, lo que puede hacer que se pierda el mercado o que se inmiscuya. Se puede ajustar adecuadamente el parámetro del ciclo EMA.

  2. Las formas de absorción son fácilmente engañadas por el comportamiento de la oscilación. Se pueden agregar más condiciones de filtro para evitar transacciones erróneas.

  3. Sin la configuración del punto de parada puede generar mayores pérdidas. Se puede probar métodos como el punto de parada de break even.

Dirección de optimización

  1. Se puede combinar más indicadores para determinar el exceso de vacío, como MACD, marea de energía, etc.

  2. Se puede añadir un límite de pérdidas de cierta magnitud si se desea.

  3. Los parámetros del ciclo EMA se pueden optimizar en función de las características de la variedad de transacción.

Resumir

La estrategia general es clara y fácil de entender, utiliza la estructura de juicio de la línea media móvil del índice y captura las rupturas de la forma de la gobernación. La ventaja es que la lógica de juicio es simple y las señales de negociación son claras. Pero también existe el riesgo de quedar atrapado.

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

// @version=5
// # ========================================================================= #
// #                   |   STRATEGY  |
// # ========================================================================= #
strategy(
  title                           = "fpemehd Strategy001",
  shorttitle                      = "f_001",
  overlay                         =  true,
  default_qty_type                =  strategy.percent_of_equity, 
  default_qty_value               =  100, 
  initial_capital                 =  10000000, 
  currency                        =  currency.USD, 
  slippage                        =  0, 
  commission_type                 =  strategy.commission.cash_per_order, 
  commission_value                =  0.01, 
  process_orders_on_close         =  true)
// # ========================================================================= #
// #                   |   STRATEGY  |
// # ========================================================================= #


// Inputs
I_start_date = input (defval = timestamp("20 Jan 1990 00:00 +0900"))
I_finish_date = input(defval = timestamp("20 Dec 2030 00:00 +0900"))

I_short_ema = input.int(defval = 15 , title = "Short EMA", minval = 1 , maxval = 300 , step = 1)
I_long_ema = input.int(defval = 30 , title = "Long EMA", minval = 1 , maxval = 300 , step = 1)

I_body = input.float(defval = 1 , title = "Size of Body", minval = 1 , maxval = 5 , step = 0.1)

time_cond = true

// Calculate Engulfing Candles
C_uptrend = false
C_downtrend = false
C_ema_short = ta.ema(source = close, length = I_short_ema) 
C_ema_long = ta.ema(source = close, length = I_long_ema) 
C_uptrend := close > C_ema_short and C_ema_short > C_ema_long
C_downtrend := close < C_ema_short and C_ema_short < C_ema_long

C_pre_body = math.abs(open[1]-close[1])
C_pre_body_ratio = (math.abs(open[1]-close[1])) / (math.abs(high[1]-low[1])) * 100

C_now_body = math.abs(open-close)
C_now_body_ratio = (math.abs(open-close)) / (math.abs(high-low)) * 100

C_bullish_engulfing = (open[1] > close[1] and open <= close) and (low < low[1] and high > high[1])
C_bearish_engulfing = (open[1] < close[1] and open >= close) and (low < low[1] and high > high[1])
C_avoid_doge = (C_pre_body_ratio > I_body and C_now_body_ratio > I_body) ? true : false
C_volume_filter = volume > volume[1] * 1.2

// Signals
long_signal = C_uptrend and C_bullish_engulfing and C_avoid_doge and C_volume_filter
close_signal = C_downtrend or C_bearish_engulfing 


if long_signal and time_cond
    strategy.entry(id = "Long", direction = strategy.long)

if close_signal and time_cond
    strategy.close(id = "Long")