Estrategia comercial basada en el indicador KST y el indicador EMA


Fecha de creación: 2023-11-07 16:36:21 Última modificación: 2023-11-07 16:36:21
Copiar: 0 Número de Visitas: 756
1
Seguir
1621
Seguidores

Estrategia comercial basada en el indicador KST y el indicador EMA

Descripción general

La idea central de esta estrategia es combinar el indicador KST y la línea media EMA para poder juzgar y seguir la tendencia. Comprar cuando el indicador KST aparezca en la horquilla de oro y esté por debajo de 0, y vender cuando aparezca la horquilla muerta y esté por encima de 0. Al mismo tiempo, combinar la línea media EMA como resistencia de soporte, y emitir una señal de negociación solo cuando el precio de cierre rompa la línea media EMA.

Principio de estrategia

  1. Calcular el indicador KST: calcular el indicador ROC de los días 10, 15, 20 y 30 respectivamente, luego ponderar y sumarlos respectivamente, y finalmente obtener el indicador KST a través de un SMA de 9 días.

  2. Calcular la línea media EMA: la línea media EMA de longitud calculada es 50.

  3. Genera una señal de compra: genera una señal de compra cuando la línea rápida del indicador KST atraviesa la línea lenta ((Gold Fork) y está por debajo de 0, mientras que el precio de cierre está por encima de la línea media de la EMA.

  4. Genera una señal de venta: genera una señal de venta cuando la línea rápida del indicador KST atraviesa la línea lenta (dead fork) y está por encima de 0, mientras que el precio de cierre está por debajo de la línea media de la EMA.

  5. Configuración de la parada móvil: el seguimiento de la parada se configura como el 1% del valor de la cuenta, para lograr una parada automática.

Ventajas estratégicas

  1. El indicador KST puede identificar cambios en la tendencia, la línea media EMA puede confirmar la dirección de la tendencia, y la combinación de ambos puede determinar con precisión el momento de la entrada.

  2. Utilice el eje 0 de la combinación de cruce rápido y lento para determinar la dirección del indicador KST y evitar transacciones innecesarias.

  3. La línea media de la EMA sirve como resistencia de soporte, filtrando aún más las señales falsas y entrando en juego solo cuando se rompe la EMA.

  4. El bloqueo automático de pérdidas para controlar el riesgo y mantener el rendimiento.

  5. La estrategia tiene menos parámetros y es fácil de implementar y optimizar.

Riesgo estratégico

  1. El indicador KST está atrasado en el reconocimiento de cambios de tendencia y puede perder algunas oportunidades. Se puede acortar el ciclo de cálculo o optimizar la forma de ponderación.

  2. La EMA promedio es retrasada y puede fallar en los puntos de cambio de tendencia. Se pueden probar otros indicadores o combinaciones de múltiples promedios.

  3. La configuración de parada de pérdidas demasiado relajada puede hacer que las pérdidas se amplíen; demasiado apretado puede ser detenido por una gran fluctuación durante la noche. Se requiere una prueba cuidadosa para encontrar el punto de equilibrio.

  4. Las señales de estrategia son frecuentes y los costos de transacción pueden ser altos. Se pueden flexibilizar adecuadamente las condiciones de entrada y reducir el número de transacciones.

Dirección de optimización de la estrategia

  1. Optimizar los parámetros de ciclo de cálculo de los indicadores KST para encontrar una combinación de parámetros más sensible a una variedad específica.

  2. Pruebe diferentes indicadores de medianías o combinaciones, como MA, WMA, etc., para ver cuál funciona mejor junto con KST.

  3. Intenta ajustar el stop loss en función de la volatilidad o la dinámica del ATR.

  4. Los filtros adicionales, como el incremento en el volumen de transacciones, evitan la captura.

  5. Considere combinar otros indicadores, como el RSI, el MACD, etc., para que la estrategia sea más completa.

  6. Probar el efecto de los parámetros de las diferentes variedades y desarrollar programas de optimización adaptados a las diferentes variedades.

Resumir

La idea general de esta estrategia es clara, confiable y fácil de implementar. Se puede determinar el giro de la tendencia a través del indicador KST, se puede filtrar el EMA de manera uniforme y controlar el riesgo de pérdidas. Se puede seguir automáticamente la tendencia de la línea media y larga. La selección de los parámetros es razonable, el espacio de optimización es amplio, el usuario puede ajustar los parámetros según sea necesario, se aplica a diferentes variedades y tiene una buena adaptabilidad.

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

//@version=4
strategy(title="Know Sure Thing and EMA Strategy by JLX", shorttitle="KST EMA JLX", format=format.price, precision=4, initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
roclen1 = input(10, minval=1, title = "ROC Length #1")
roclen2 = input(15, minval=1, title = "ROC Length #2")
roclen3 = input(20, minval=1, title = "ROC Length #3")
roclen4 = input(30, minval=1, title = "ROC Length #4")
smalen1 = input(10, minval=1, title = "SMA Length #1")
smalen2 = input(10, minval=1, title = "SMA Length #2")
smalen3 = input(10, minval=1, title = "SMA Length #3")
smalen4 = input(15, minval=1, title = "SMA Length #4")
siglen = input(9, minval=1, title = "Signal Line Length")
smaroc(roclen, smalen) => sma(roc(close, roclen), smalen)
kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4)
sig = sma(kst, siglen)
plot(kst, color=color.green, title="KST")
plot(sig, color=color.red, title="Signal")
hline(0, title="Zero")

len = input(50, minval=1, title="Length EMA")
src = input(close, title="Source EMA")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
fastEMA = ema(src, len)

delta = kst - sig

buySignal = crossover(delta, 0) and kst < 0 and close > fastEMA
sellSignal = crossunder(delta, 0) and kst > 0 and close < fastEMA

longTrailPerc = input(title="Trail Long Loss (%)", type=input.float, minval=0.0, step=0.1, defval=1) * 0.01
shortTrailPerc = input(title="Trail Short Loss (%)",type=input.float, minval=0.0, step=0.1, defval=1) * 0.01

// STEP 2:
// Determine trail stop loss prices
longStopPrice = 0.0, shortStopPrice = 0.0

longStopPrice := if (strategy.position_size > 0)
    stopValue = close * (1 - longTrailPerc)
    max(stopValue, longStopPrice[1])
else
    0
shortStopPrice := if (strategy.position_size < 0)
    stopValue = close * (1 + shortTrailPerc)
    min(stopValue, shortStopPrice[1])
else
    999999

// Submit entry orders
if (buySignal)
    strategy.entry(id="EL", long=true)

if (sellSignal)
    strategy.entry(id="ES", long=false)

// STEP 3:
// Submit exit orders for trail stop loss price
if (strategy.position_size > 0)
    strategy.exit(id="XL TRL STP", stop=longStopPrice)

if (strategy.position_size < 0)
    strategy.exit(id="XS TRL STP", stop=shortStopPrice)



alertcondition(crossover(delta, 0) and kst < 0 and close > fastEMA,'Long alert', 'You should buy')

alertcondition(crossunder(delta, 0) and kst > 0 and close < fastEMA, 'Short alert', 'You should sell')