Esta estrategia utiliza el cruce estocástico entre las líneas K y D para generar señales comerciales, una estrategia comercial estocástica típica.
Calcular las líneas estocásticas K y D durante un período determinado.
El cruce de la línea K sobre la línea D genera señales de compra.
El cruce de la línea K por debajo de la línea D genera señales de venta.
Puede establecer el rango de fecha de backtest para probar la efectividad de la estrategia.
Reglas simples y claras para el intercambio de estadísticas.
Las estadísticas estocásticas son sensibles a los niveles de sobrecompra y sobreventa.
Las líneas K y D forman señales comerciales fáciles.
La prueba de retroceso verifica el rendimiento de la estrategia.
Estocástica fácil de calcular e implementar.
Código conciso y fácil de desarrollar.
Los cruces pueden generar señales falsas.
No hay stop loss ni tomar ganancias en su lugar.
No puede diferenciar tendencias y rangos.
La prueba de retroceso tiene un sesgo de prospección.
Los resultados reales de las operaciones pueden diferir de los resultados de las pruebas de retroceso.
Parámetros de ensayo para encontrar valores óptimos.
Añadir filtro de tendencia para validación adicional.
Incorporar los mecanismos de stop loss y take profit.
Incorporar otros factores para confirmar la señal.
Maneja los datos de las pruebas de retroceso para eliminar los sesgos.
Comercio de papel para optimizar los parámetros para el comercio en vivo.
Esta estrategia opera con cruces estocásticos simples, fáciles de implementar, pero requiere refinamientos para la estabilidad.
/*backtest start: 2023-08-20 00:00:00 end: 2023-09-19 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © utanico //@version=4 strategy(title="Stochastic", overlay=true, shorttitle="Stoch") periodK = input(35, title="K", minval=1) periodD = input(21, title="D", minval=1) smoothK = input(21, title="Smooth", minval=1) startYear = input(type=input.integer, title = "開始年", defval = 2020) startMonth = input(type=input.integer, title = "開始月", defval = 1) startDay = input(type=input.integer, title = "開始日", defval = 1) endYear = input(type=input.integer, title = "終了年", defval = 2030) endMonth = input(type=input.integer, title = "終了月", defval = 12) endDay = input(type=input.integer, title = "終了日", defval = 31) //開始日時 test_start = timestamp(startYear, startMonth, startDay, 00, 00) //終了日時 test_end = timestamp(endYear, endMonth, endDay, 00, 00) //テスト期間の指定 is_test = true k = sma(stoch(close, high, low, periodK), smoothK) d = sma(k, periodD) if (is_test) if (k > d) strategy.entry("Stoch_LE", strategy.long, comment="Stoch_LE") //if (strategy.opentrades > 0 and k < d) //strategy.close("Stoch_LE",comment="CloseLONG") if (k < d) strategy.entry("Stoch_SE", strategy.short, comment="Stoch_SE") //if (strategy.opentrades < 0 and k > d) //strategy.close("Stoch_SE",comment="CloseShort")