Tendencia media móvil gradual siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-10-26 17:08:43
Las etiquetas:

img

Resumen general

La estrategia de seguimiento de tendencias de promedios móviles gradual utiliza múltiples promedios móviles de diferentes períodos para capturar los cambios de tendencia de precios, combinados con indicadores de oscilador para determinar las áreas de sobrecompra y sobreventa, formando una tendencia de baja compra y alta venta siguiendo la estrategia de negociación.

Estrategia lógica

La estrategia emplea múltiples conjuntos de promedios móviles, como 18-, 26-, 36-periodo de MAs, para capturar las tendencias de precios. Cuando los MAs más cortos cruzan por encima de los MAs más largos, señala una tendencia al alza, por lo tanto, ir largo. Cuando los MAs más cortos cruzan por debajo de los MAs más largos, indica una tendencia a la baja, por lo tanto, ir corto.

Mientras tanto, los indicadores de oscilador como MACD, RSI, EFI se utilizan para identificar las condiciones de sobrecompra y sobreventa. Por ejemplo, el cambio de MACD de negativo a positivo sugiere ir largo, mientras que el cambio de positivo a negativo sugiere ir corto. El retroceso del RSI desde niveles altos es una señal para el corto, mientras que el rebote desde niveles bajos es una señal para ir largo. EFI por debajo de 0 significa ir largo, mientras que por encima de 0 significa ir corto.

Reglas de entrada:

Largo: cruce de MA corto hacia arriba MA largo Y MACD>0 Y RSI rebota desde mínimos Y EFI<0

Corto: cruce de MA corto hacia abajo MA largo Y MACD<0 Y RSI retrocede de los máximos Y EFI>0

Reglas de pérdida de parada:

El importe de las pérdidas de crédito se calcula en función de las pérdidas de crédito.

SL corto: EFI por debajo del umbral Y precios por encima de la MA especificada

Ventajas

  1. Múltiples MAs capturan los principales puntos de cambio de tendencia.

  2. Las combinaciones de osciladores evitan perseguir máximos y vender mínimos.

  3. Las reglas de SL tienen en cuenta tanto las tendencias como el flujo de efectivo, controlando eficazmente los riesgos.

  4. Parámetros optimizados a través de pruebas de retroceso extensas, adaptables a la mayoría de los entornos de mercado.

  5. Frecuencia de negociación media, señales estables, adecuadas para el seguimiento de tendencias a largo plazo.

Los riesgos

  1. Los choques repentinos pueden invalidar SL, SL rango debe ampliarse.

  2. Demasiadas señales durante los mercados variados, los parámetros deben ajustarse.

  3. Mantener demasiado tiempo puede amplificar las pérdidas, los MAs más cortos pueden tomar SL más rápido.

  4. Superajuste de pruebas de retroceso, resultados reales de negociación pendientes de validación.

Mejoras

  1. Optimizar los parámetros para obtener mayores rendimientos y una frecuencia adecuada.

  2. Añadir algoritmos de aprendizaje automático para optimizar dinámicamente los parámetros.

  3. Construir un mecanismo SL adaptativo basado en las diferentes condiciones del mercado.

  4. Añadir más filtros para determinar mejores señales de entrada.

  5. Incorporar estrategias de tamaño de posición para controlar el tamaño de la apuesta única.

Conclusión

La estrategia de seguimiento de tendencias de promedios móviles gradual rastrea de manera efectiva las principales tendencias mediante la identificación de la dirección de la tendencia con múltiples MA y la entrada en señales filtradas, logrando ganancias estables a través de la tenencia a largo plazo.


/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © murdocksilva

//@version=5

strategy("Daily_Mid Term_Consulting BOLT")

//calculo longuitud
longuitud = input(58, title= "longitud_sma")


px = ta.sma(close, 1)
px2 = ta.sma(low, 1)

Length1 = input.int(18)
Length2 = input.int(18)
Length3 = input.int(26)
Length4 = input.int(36)
Length5 = input.int(78)
Length6 = input.int(1)
Length7 = input.int(1500)
Length8 = input.int(58)
Length9 = input.int(3000)
Length10 = input.int(2)
Length11 = input.int(14)
ma1 = ta.sma(low, Length1)
ma2 = ta.sma(high, Length2)
ma3 = ta.sma(close, Length3)
ma4 = ta.sma(close, Length4)
ma5 = ta.sma(close, Length5)
ma6 = ta.sma(close, Length6)
ma7 = ta.sma(close, Length7)
ma8 = ta.sma(close, Length8)
ma9 = ta.sma(close, Length9)
ma10 = ta.sma(close, Length10)
ma11 = ta.sma(close, Length11)

// calculo EFI
efi = (close[1]-close) * volume / 1000
efi_indicador = (efi[1] + efi) / 2

//Variable  RSI - calculo desv estandar
b = (px-ma10)*(px-ma10)
b2 = (px[1]-ma10[1])*(px[1]-ma10[1])
c = b + b2
c2 = c / 2
desv = math.sqrt(c2)/10

//calculo MACD
macd = ma4 - ma5

//calculo RSI
rsi = ta.rsi(close, 9)

// calculo Divergencia
ma = ta.sma(close, longuitud)
dist = close - ma
porcentaje = dist * 100 / close
ma_dista = ta.sma(porcentaje, 333)

//condición de entrada y salida long
long = ma1[1] < ma1 and ma2[1] < ma2 and macd > 0 and px > ma3 and efi_indicador < 9 and px > ma7 and macd[1] < macd
clong = efi_indicador > 22000 and px < ma8
strategy.entry("BUY", strategy.long, when = long)
strategy.close("BUY", when = clong)

//condición de entrada y salida short
short = ma1[1] > ma1 and ma2[1] > ma2 and macd < 0 and px < ma3 and efi_indicador > 9 and macd[1] > macd 
cshort =  efi_indicador < 14000 and px > ma8 and ma11 > desv
strategy.entry("SELL", strategy.short, when = short)
strategy.close("SELL", when = cshort)

//SL Y TP
//strategy.exit("long exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)
//strategy.exit("shot exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)

// GRAFICA smas
plot(ma1, color=color.new(color.orange, 0))
plot(ma2, color=color.new(color.orange, 0))
plot(ma3, color=color.new(color.orange, 0))
plot(ma4, color=color.new(color.orange, 0))
plot(ma5, color=color.new(color.orange, 0))
plot(ma6, color=color.new(color.green, 0))
plot(ma7, color=color.new(color.orange, 0))
plot(ma8, color=color.new(color.orange, 0))
plot(ma9, color=color.new(color.orange, 0))
//GRAFICA MACD
plot(macd, color=color.new(color.red, 0), style = plot.style_columns)
//GRAFICA DIVERGENCIA
plot(porcentaje, style = plot.style_columns)
//GRAFICA MA DIVERGENCIA
plot(ma_dista, color=color.new(color.white, 0))
//GRAFICA MA DIVERGENCIA
plot(desv, color=color.new(color.blue, 0))
//GRAFICA EFI
plot(efi_indicador, color=color.new(color.yellow, 0))
// GRAFICA RSI
l1 = hline(70, color=color.new(color.green, 0))
l2 = hline(30, color=color.new(color.green, 0))
plot(rsi, color=color.new(color.white, 0))




//prueba 1 stop loss and take profit
//sl = 0.05
//tp = 0.1    
//calculo de precio para sl y tp
//longstop=strategy.position_avg_price*(1-sl)
//longprofit=strategy.position_avg_price*(1+tp)

//shortstop=strategy.position_avg_price*(1+sl)
//shortprofit=strategy.position_avg_price*(1-tp)

//if (long)
  //  strategy.exit("BUY", strategy.long)

//sl and tp  long|short
//if strategy.entry("BUY", strategy.long)

//if strategy.position_avg_price > 0
//strategy.exit("BUY", limit = longprofit, stop = longstop)

//if strategy.position_avg_price < 0
//strategy.exit("SELL", limit = shortprofit, stop=shortstop)

Más.