KST EMA Tendencia de impulso siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2023-11-07 16:36:21
Las etiquetas:

img

Resumen general

La idea central de esta estrategia es combinar el indicador KST y las líneas EMA para identificar y seguir tendencias. Genera señales de compra cuando el indicador KST cruza por encima de 0 y cierra por encima de la línea EMA, y señales de venta cuando cruza por debajo de 0 y cierra por debajo de la línea EMA. Esta estrategia simple y práctica puede rastrear automáticamente las tendencias y es adecuada para las tenencias a medio y largo plazo.

Estrategia lógica

  1. Calcular el indicador KST: Calcular el ROC de 10, 15, 20 y 30 períodos, tomar una suma ponderada y suavizarla con una SMA de 9 períodos para derivar el indicador KST.

  2. Calcular la línea EMA: Calcular una línea EMA de 50 períodos.

  3. Generar señal de compra: Cuando la línea rápida de KST cruza por encima de la línea lenta de KST (cruz dorada) y está por debajo de 0, mientras que el cierre está por encima de la línea EMA, se activa una señal de compra.

  4. Generar una señal de venta: Cuando la línea rápida de KST cruza por debajo de la línea lenta de KST (cruz muerta) y está por encima de 0, mientras que el cierre está por debajo de la línea EMA, se activa una señal de venta.

  5. Establecer el stop loss de seguimiento: el stop loss registra el 1% del valor de la cuenta para realizar el stop loss automático.

Ventajas

  1. KST identifica los cambios de tendencia, EMA confirma la dirección.

  2. El uso de cruces rápidos / lentos y línea 0 evita operaciones innecesarias.

  3. El EMA como soporte/resistencia filtra más señales falsas.

  4. El stop loss automático controla el riesgo y permite que las ganancias funcionen.

  5. Los parámetros simples hacen que la implementación y la optimización sean fáciles.

Los riesgos

  1. KST tiene retraso en la detección de cambios de tendencia, puede perder algunas oportunidades.

  2. La EMA se ha retrasado en torno a las reversiones de tendencia.

  3. El alto de pérdida demasiado ancho aumenta las pérdidas, demasiado apretado se detiene por los picos.

  4. Las señales frecuentes pueden aumentar los costos de transacción y pueden endurecer las reglas de entrada para reducir las operaciones.

Direcciones de optimización

  1. Optimizar los períodos de KST para la sensibilidad a instrumentos específicos.

  2. Prueba otras medias móviles como MA, WMA para ver cuál combina mejor con KST.

  3. Experimenta paradas dinámicas basadas en métricas de volatilidad como ATR.

  4. Añadir filtros como picos de volumen para evitar trampas.

  5. Considere combinar con indicadores como RSI, MACD para más dimensiones.

  6. Los parámetros de ensayo en todos los instrumentos para optimizar cada uno.

Conclusión

Esta estrategia tiene una lógica clara y confiable que es fácil de implementar. KST identifica los giros de tendencia, filtra la EMA y detiene el riesgo de control. Rastrea automáticamente las tendencias a mediano y largo plazo. Los parámetros razonables proporcionan un gran espacio de optimización. Los usuarios pueden ajustar para diferentes instrumentos. Aplicable para que los principiantes aprendan y los profesionales sigan adelante.


/*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')





Más.