Seguimiento de la estrategia basada en la tendencia de la onda y la CMF

El autor:¿ Qué pasa?, Fecha: 2023-11-16 16:38:03
Las etiquetas:

img

Resumen general

Esta estrategia combina el indicador WaveTrend y el indicador Chaikin Money Flow (CMF) para identificar la dirección de la tendencia y seguir las tendencias.

Estrategia lógica

El indicador de tendencia de onda puede identificar eficazmente la dirección de tendencia de los precios. Consiste en la línea media del canal, el promedio del canal y el índice del canal. La línea media del canal es un promedio móvil exponencial del precio, que refleja la tendencia del precio.

El indicador CMF puede juzgar la entrada y salida de fondos y confirmar tendencias. Este indicador se basa en la línea de acumulación / distribución ajustada por volumen, reflejando la comparación del poder de compra y venta. Un valor alrededor de 0 indica un equilibrio entre la entrada y salida de fondos. Por debajo de 0 indica la salida de fondos y por encima de 0 indica la entrada de fondos.

Esta estrategia se ejecuta en un marco de tiempo de 15 minutos. Primero utiliza el indicador WaveTrend para determinar la dirección de la tendencia del precio, luego utiliza el indicador CMF para confirmar, para seguir las tendencias. Específicamente, cuando el índice del canal WaveTrend está por debajo de -60 y el CMF es menor que -0.2, va largo. Cuando el índice del canal WaveTrend está por encima de 60 y el CMF es mayor que 0.2, va corto. Las condiciones de salida se basan principalmente en el indicador CMF: cierra la posición larga cuando el CMF es mayor que 0.18, y cierra la posición corta cuando el CMF es menor que -0.18.

Análisis de ventajas

  1. El indicador WaveTrend puede determinar eficazmente la dirección de la tendencia del precio.
  2. El indicador CMF puede confirmar la dirección de la tendencia y evitar operaciones incorrectas.
  3. La combinación de WaveTrend y CMF puede lograr el seguimiento de tendencias a muy corto plazo.
  4. El marco de tiempo de 15 minutos lo hace más adecuado para el comercio a corto plazo.

Análisis de riesgos

  1. WaveTrend puede generar señales erróneas durante la consolidación.
  2. CMF puede retrasarse y perder puntos de inflexión de tendencia.
  3. El comercio en un solo marco de tiempo tiene mayores riesgos, debe ampliar el período de retención.
  4. Falta de estrategia de stop loss, incapaz de controlar una sola pérdida.

Soluciones:

  1. Añadir otros indicadores de confirmación para evitar señales erróneas.
  2. Ajuste los parámetros de CMF para una mayor sensibilidad.
  3. Ampliar el período de retención para reducir los riesgos en un marco de tiempo único.
  4. Añadir un stop de pérdida móvil, un stop de equilibrio, etc. para controlar la pérdida.

Optimización

  1. Añadir el tamaño de la posición para un mejor seguimiento de la tendencia.
  2. Añadir una estrategia de stop loss para limitar la pérdida única.
  3. Agregue indicadores como la estocástica para evitar errores de un solo indicador.
  4. Prueba diferentes períodos de espera para encontrar el óptimo.
  5. Optimice los parámetros de CMF para encontrar la mejor combinación.

Resumen de las actividades

Esta estrategia utiliza WaveTrend para determinar la tendencia y CMF para confirmar, para el seguimiento de tendencias a muy corto plazo. Sus ventajas se encuentran en una combinación razonable de indicadores y un seguimiento de tendencias efectivo, con un marco de tiempo de 15 minutos que lo hace adecuado para el comercio a corto plazo.


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

//@version=3
strategy(title = "CMF - WaveTrend", shorttitle = "CMF - WaveTrend", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR)

//Chaikin Money Flow

len = input(20, minval=1, title="Length")
mas = input(title="Aggregation", defval="SUM", options=["SUM", "EMA", "WMA"])
e = input(10.0, title="Volume Exponent (0-10 reduces & 10+ increases volume effect)")
p = input(false, title="Show in Percentage")
mvs = input(false, "Factor in Price (Money Volume)")
src=input(hlc3, title="Source for price factor")

trl = min(low,close[1]), trh = max(high,close[1]) // 'true range' fixes issues caused by gaps in price
wv = pow(volume,e/10.0)*(mvs ? src : 1)
ad = (trh==trl ? 0 : (2*close-(trh+trl))/tr(true))*wv
cmf = mas=="SUM" ? sum(ad, len)/sum(wv, len) : mas=="EMA" ? ema(ad, len)/ema(wv, len) : mas=="WMA" ? wma(ad, len)/wma(wv, len) : na
cmf_p  = if p
    50*cmf+50
else
    cmf
b = p ? 50 : 0


//WaveTrend
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
 
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,4)
// 


longCondition = wt1 < -60 and cmf < - 0.20
if (longCondition)
 
    strategy.entry("My Long Entry Id", strategy.long)
    
 
shortCondition = wt1 > 60 and cmf > 0.20
if (shortCondition)
 
    strategy.entry("My Short Entry Id", strategy.short)
    
closeLongCondition = cmf_p > 0.18 ? true : false
closeShortCondition = cmf_p < -0.18 ? true : false
    
    
strategy.close("My Long Entry Id", when=(closeLongCondition == true))
strategy.close("My Short Entry Id", when=(closeShortCondition == true))

Más.