La estrategia de entrada larga de KDJ Golden Cross es una estrategia de negociación cuantitativa basada en el indicador KDJ. Esta estrategia utiliza principalmente la cruz dorada de la línea J y la línea D del indicador KDJ para generar señales de compra y se hace larga cuando la línea J cruza por encima de la línea D. La estrategia es relativamente simple y fácil de implementar, adecuada para principiantes en el comercio cuantitativo.
El principal indicador técnico utilizado en esta estrategia es el indicador KDJ, que consta de la línea K, la línea D y la línea J, donde:
K = (Cierre actual - Bajo mínimo en los últimos N días) ÷ (Mejor máximo en los últimos N días - Bajo mínimo en los últimos N días) x 100;
D = promedio móvil de K en M días;
J es 3K - 2D.
De acuerdo con las reglas del indicador KDJ, cuando la línea J cruza por encima de la línea D, indica que los precios se están invirtiendo hacia arriba y se pueden tomar posiciones largas; cuando la línea J cae por debajo de la línea D, indica que los precios se están invirtiendo hacia abajo y se pueden iniciar posiciones cortas.
Esta estrategia utiliza las reglas anteriores y genera señales de compra cuando la línea J cruza por encima de la línea D, es decir, se forma una cruz dorada, para ir largo.
Utilizando el indicador KDJ para determinar el momento de entrada que incorpora movimientos al alza y a la baja del precio, por lo tanto más confiable.
La estrategia tiene reglas de señalización claras y sencillas, fáciles de entender e implementar, adecuadas para principiantes.
Adoptó el stop profit y el stop loss para controlar eficazmente los riesgos.
Gran margen para la optimización de parámetros y la implementación flexible.
El indicador KDJ tiende a generar señales falsas que conducen a pérdidas.
Los ajustes a corto plazo del mercado después de la compra pueden desencadenar una salida de stop loss y perder tendencias importantes.
La configuración incorrecta de los parámetros puede dar lugar a un exceso de negociación o a señales poco claras.
Necesidad de tener en cuenta los costes de transacción
Métodos principales de gestión del riesgo: Optimizar adecuadamente los parámetros, rastrear los índices para mejorarlos, ampliar adecuadamente el rango de stop loss, etc.
Optimizar los parámetros de KDJ para encontrar las mejores combinaciones de parámetros.
Puede combinar otros indicadores o formaciones para filtrar.
Puede elegir diferentes ajustes de parámetros en función de los tipos de mercado (mercados alcistas o bajistas).
Puede ampliar adecuadamente el rango de pérdida de parada para reducir la probabilidad de salidas de pérdida de parada.
Puede combinar el volumen de operaciones y otros indicadores para el análisis para evitar quedar atrapado.
La estrategia de entrada larga de KDJ Golden Cross es relativamente simple y práctica en general, fácil de comenzar e implementar para los principiantes. La estrategia tiene ciertas ventajas comerciales, pero también tiene algunos riesgos.
/*backtest start: 2023-01-25 00:00:00 end: 2024-01-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // ## !<------------------ Script --------------------------> //@version=5 strategy('KDJ NVDA', shorttitle='KDJ') ilong = input(9, title='period') isig = input(3, title='signal') bcwsma(s, l, m) => _bcwsma = float(na) _s = s _l = l _m = m _bcwsma := (_m * _s + (_l - _m) * nz(_bcwsma[1])) / _l _bcwsma // profit strategy add profit_m = input.float(1.20,"Profit Margin",minval=1.0,maxval=1.99,step=0.05) stop_m = input.float(0.98,"Stop Loss Margin",minval=0.0,maxval=1,step=0.05) // Make input options that configure backtest date range startDate = input.int(title="Start Date", defval=1, minval=1,maxval=31) startMonth = input.int(title="Start Month", defval=1,minval=1,maxval=12) startYear = input.int(title="Start Year", defval=2023,minval=2018,maxval=2024) endDate = input.int(title="End Date", defval=1, minval=1,maxval=31) endMonth = input.int(title="End Month", defval=1,minval=1,maxval=12) endYear = input.int(title="End Year", defval=2024,minval=2018,maxval=2099) // intialization of variables // Look if the close time of the current bar // falls inside the date range inDateRange = (time >= timestamp(syminfo.timezone, startYear,startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0)) c = close h = ta.highest(high, ilong) l = ta.lowest(low, ilong) RSV = 100 * ((c - l) / (h - l)) pK = bcwsma(RSV, isig, 1) pD = bcwsma(pK, isig, 1) pJ = 3 * pK - 2 * pD KDJ = math.avg(pD, pJ, pK) go_long= ta.crossunder(pD,pJ) if (inDateRange and go_long) strategy.entry("S",strategy.long,comment="C") // strategy.exit("S", limit=c*profit_m, stop=c*stop_m, comment="SL/SP") if (inDateRange and pJ > 100) strategy.close("S", comment="TP") // Plot options // plot(pK, color= #1E88E5) // plot(pD, color=#FF6F00) // plot(ma, color=color.yellow) // bgcolor(pJ>pD? color.green : color.red) plot(pK, title='% K', color=color.new(color.orange, 0)) plot(pD, title='% D', color=color.new(color.lime, 0)) plot(pJ, title='% J', color=color.new(color.fuchsia, 0)) plot(KDJ, title='KDJ', color=color.new(color.white, 0)) // </PINE> </SCRIPT> // ## This source code is subject to the terms of the ozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // ## !<------------------ End Script -------------------------->