Williams % R Estrategia de cruce con filtro de media móvil

El autor:¿ Qué pasa?, Fecha: 2023-09-19 21:57:46
Las etiquetas:

Resumen general

Esta estrategia utiliza las señales de cruce Williams % R y agrega un filtro de promedio móvil para crear un sistema de negociación flexible a corto plazo.

Estrategia lógica

  1. Calcular el %R de Williams y la media móvil simple (MA) de 200 períodos.

  2. El valor de las operaciones de revalorización de los activos de la entidad en el mercado de valores se calculará a partir de la fecha en que el valor de las operaciones de revalorización de los activos de la entidad en el mercado de valores sea inferior al valor de las operaciones de revalorización de los activos de la entidad en el mercado de valores.

  3. Se abre cuando el %R cruza por debajo del nivel de -50 por un umbral y el cierre está por debajo de MA.

  4. Si es largo, cierre de la posición cuando el cierre alcanza el beneficio (precio de entrada + pips de ganancia) o el nivel de stop loss (precio de entrada - pips de stop loss).

  5. Si es corto, cierre de la posición cuando el alcance cercano sea de obtener ganancias (precio de entrada - pips de ganancia) o nivel de stop loss (precio de entrada + pips de stop loss).

La estrategia capitaliza la naturaleza sobrecomprada/sobrevendida de Williams %R, y combina el filtro de tendencia MA para señales más confiables.

Análisis de ventajas

  1. Williams %R identifica eficazmente los niveles de sobrecompra/sobreventa con señales claras.

  2. El filtro de MA añade tendencia para evitar golpes.

  3. Parámetros personalizables para mayor flexibilidad.

  4. Seguir el stop-loss bloquea la mayoría de las ganancias.

  5. Una lógica sencilla y clara, fácil de entender e implementar, buena para el comercio a corto plazo.

  6. Aplicable a varios productos con flexibilidad.

Análisis de riesgos

  1. Williams %R tiene un efecto retardante, puede perder algunas oportunidades.

  2. El filtro de MA también tiene algún retraso.

  3. Las reglas estrictas de sobrecompra/sobreventa pueden pasar por alto algunas tendencias.

  4. El stop loss demasiado apretado puede ser detenido por las flechas.

  5. El stop loss demasiado amplio puede limitar los beneficios.

  6. Los parámetros deben ajustarse a los diferentes entornos del mercado.

Direcciones de optimización

  1. Optimice los parámetros para una mayor tasa de ganancia.

  2. Añadir otros filtros como MACD, KDJ, etc.

  3. Prueba diferentes tipos de MA como el MA exponencial.

  4. Agregue el sesgo de tendencia, sólo el comercio en la dirección de la tendencia.

  5. Optimice las estrategias de stop loss como paradas dinámicas, salidas de lámparas de araña, etc.

  6. Pruebe el tamaño de la posición como la fracción fija, Martingale, etc.

  7. Utilice el aprendizaje automático para una mejor optimización de parámetros.

Conclusión

Esta estrategia combina las señales de sobrecompra / sobreventa de Williams % R con el filtro de tendencia MA en un sistema simple a corto plazo. Tiene señales de entrada claras y lógica de stop loss / take profit. Se pueden hacer mejoras adicionales a través de la puesta a punto de parámetros, selección de indicadores, gestión de stop loss, etc. para mayor robustez. Fácil de implementar y ampliar, esta estrategia es adecuada para los operadores a corto plazo.


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

//@version=5
strategy("Williams %R Cross Strategy with MA Filter", overlay=true)

// User Inputs
wrLength = input(14, title="Williams %R Length")
crossPips = input(10, title="Cross Threshold (Pips)")
takeProfitPips = input(30, title="Take Profit (Pips)")
stopLossPips = input(20, title="Stop Loss (Pips)")

// Calculate Williams %R
wrHigh = ta.highest(high, wrLength)
wrLow = ta.lowest(low, wrLength)
wr = (wrHigh - close) / (wrHigh - wrLow) * -100

// Calculate 200-period Simple Moving Average
ma200 = ta.sma(close, 200)

// Entry Conditions
enterLong = ta.crossover(wr, -50 - crossPips) and close > ma200
enterShort = ta.crossunder(wr, -50 + crossPips) and close < ma200

// Exit Conditions
exitLong = close >= (strategy.position_avg_price + (takeProfitPips / syminfo.mintick)) or close <= (strategy.position_avg_price - (stopLossPips / syminfo.mintick))
exitShort = close <= (strategy.position_avg_price - (takeProfitPips / syminfo.mintick)) or close >= (strategy.position_avg_price + (stopLossPips / syminfo.mintick))

// Order Management
if enterLong
    strategy.entry("Long", strategy.long)
    
if enterShort
    strategy.entry("Short", strategy.short)

if exitLong
    strategy.close("Long")

if exitShort
    strategy.close("Short")


Más.