
El objetivo de esta estrategia es predecir el precio de cierre de la línea K de los próximos 15 minutos. El método consiste en analizar el precio de apertura y el precio de cierre de las dos líneas K de los últimos 30 minutos.
La lógica central de esta estrategia se basa en la función predictNextCandleClose. Esta función acepta como parámetros de entrada el precio de apertura y el precio de cierre de las dos primeras líneas K de 30 minutos.
Si la última línea de 30 minutos de la línea K está cerrada por encima de la línea de apertura, se considera una tendencia de varios puntos; si está por debajo de la línea de apertura, es una tendencia de un punto vacío. Si la segunda línea de 30 minutos de la línea K muestra la misma tendencia de varios puntos, se considera que la tendencia es más fuerte y se predice que la siguiente línea de 15 minutos de la línea K continuará la tendencia.
Concretamente, si las dos últimas líneas K de 30 minutos son positivas (precio de cierre es superior al precio de apertura), entonces se predice que el precio de cierre de la siguiente línea K de 15 minutos será mayor que el precio de cierre de la línea K actual y el diferencial entre el precio de cierre y el precio de apertura de la línea K de 30 minutos anteriores.
Si las dos últimas líneas de 30 minutos de K se han cerrado negativamente (el precio de cierre es inferior al precio de apertura), entonces se predice que el precio de cierre de la siguiente línea de 15 minutos de K será inferior al precio de cierre de la línea de 30 minutos de la línea de apertura y el precio de cierre.
Si las últimas dos líneas K de 30 minutos son una baja y una baja, indica que no hay una tendencia clara, en este momento se pronostica que el precio de cierre de la línea K de 15 minutos será el mismo que el precio de cierre de la línea K de 30 minutos.
Esto permite que la información de la línea K pasada se utilice para determinar el movimiento de los precios a corto plazo en el futuro, como referencia para la toma de decisiones comerciales.
Esta estrategia de predicción de doble línea K tiene las siguientes ventajas:
Una implementación sencilla, intuitiva y fácil de entender para los principiantes en el comercio cuantitativo
El uso de la tendencia de juicio de doble K puede filtrar parte del ruido y mejorar la precisión del juicio.
Pronóstico a nivel de 15 minutos, corto intervalo de tiempo, propicio para ajustar las posiciones a tiempo
La combinación de los precios actuales y los precios previstos para la evaluación de las señales de negociación permite una respuesta rápida a las emergencias.
No se requiere una gran cantidad de datos históricos, reduciendo los requisitos de volumen de datos, para casos de datos incompletos o en disco
Sin embargo, la estrategia también tiene sus riesgos:
La falta de más detalle de la línea K como criterio auxiliar puede haber omitido señales importantes.
El intervalo de las líneas K es largo, no puede responder de inmediato a las fluctuaciones de precios a corto plazo, existe un retraso en el tiempo
Los pronósticos se basan solo en datos históricos y no pueden evaluar el impacto de los eventos de gran magnitud, con un mayor riesgo.
Las reglas de determinación de múltiples espacios son más simples, son más propensas a generar señales erróneas, y la calidad de la señal debe mejorarse.
Los datos de disco duro a menudo tienen vacíos o lagunas, lo que también interfiere con la precisión de la lógica de juicio
Teniendo en cuenta los riesgos mencionados, la estrategia puede ser optimizada en los siguientes aspectos:
Aumentar la precisión de las predicciones mediante la adición de más indicadores auxiliares, como MACD, KD, etc.
Combinación de más detalles de la línea K, como líneas de sombra, entidades y otros puntos críticos para juzgar el precio, perfeccionando la regla de la pluralidad de espacios
Aumentar la cantidad de muestras, ampliar el rango de tiempo para juzgar las líneas K, evitar la interferencia de ruido a corto plazo
Incrementar las estrategias de stop loss y controlar las pérdidas individuales mediante el uso de stop loss móvil y temporal
Optimización de las reglas de apertura de posiciones, sólo cuando la tendencia es más clara, para evitar la repetición de la incertidumbre del mercado
Verificación en el mercado real, corrección de la lógica que no coincide con el mercado real, para que los parámetros de la estrategia estén más cerca del mercado real
La estrategia es simple y fácil de usar, adecuada para los principiantes en el comercio cuantitativo, pero también tiene reglas de juicio simples y problemas de calidad de señal limitados. Podemos realizar optimizaciones multidimensionales en cuanto a indicadores auxiliares, detalles de la línea K y estrategias de parada de pérdidas, para mejorar la efectividad real de la estrategia. En general, la estrategia de predicción de la línea doble K nos ofrece una base para una generación digna de optimización.
/*backtest
start: 2023-01-19 00:00:00
end: 2024-01-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Sosawolf
//@version=5
strategy("Predict Next Candle Close Strategy", overlay=true)
// Function to predict next candle close based on previous two candles
predictNextCandleClose(open1, close1, open2, close2) =>
if close1 > open1 and close2 > open2
// Bullish trend, predict next candle close to be bullish
close1 + (close1 - open1)
else if close1 < open1 and close2 < open2
// Bearish trend, predict next candle close to be bearish
close1 - (open1 - close1)
else
// Indecisive or ranging market, predict next candle close to be neutral
close1
// Get previous two 30-minute candles' open and close prices
open1 = request.security(syminfo.tickerid, "30", open[1])
close1 = request.security(syminfo.tickerid, "30", close[1])
open2 = request.security(syminfo.tickerid, "30", open[2])
close2 = request.security(syminfo.tickerid, "30", close[2])
// Predict next 15-minute candle close
predictedClose = predictNextCandleClose(open1, close1, open2, close2)
// Plot the predicted close as a line
plot(predictedClose, color=color.blue, linewidth=2, title="Predicted Close")
// Buy condition: Predicted close is higher than the current close
buyCondition = predictedClose > close
strategy.entry("Buy", strategy.long, when=buyCondition)
// Sell condition: Predicted close is lower than the current close
sellCondition = predictedClose < close
strategy.entry("Sell", strategy.short, when=sellCondition)