Discusión sobre el artículo "Redes neuronales en el trading: Previsión probabilística de series temporales (Final)"
He estado teniendo algunos problemas VAE.mqh y han encontrado los siguientes trabajos en torno a la cuestión bastante bien.
bool CVAE::calcInputGradients(CNeuronBaseOCL *NeuronOCL) { if(!OpenCL || !NeuronOCL) return false; //--- if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_input, NeuronOCL.getOutput().GetIndex())) return false; if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_inp_grad, NeuronOCL.getGradient().GetIndex())) return false; if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_random, m_cRandom.GetIndex())) return false; if(!OpenCL.SetArgumentBuffer(def_k_VAECalcHiddenGradient, def_k_vaehg_gradient, Gradient.GetIndex())) return false; if(!OpenCL.SetArgument(def_k_VAECalcHiddenGradient, def_k_vaehg_kld_mult, m_fKLD_Mult)) return false; // Calcular los tamaños de trabajo adecuados uint neurons_count = (uint)Neurons(); uint local_size = 64; // o 32, 128, 256 dependiendo de tu GPU // Redondea el tamaño global para que sea divisible por el tamaño local uint global_size = ((neurons_count + local_size - 1) / local_size) * local_size; uint work_offset[] = {0}; uint work_size[] = {global_size}; uint local_work_size[] = {local_size}; if(!OpenCL.Execute(def_k_VAECalcHiddenGradient, 1, work_offset, work_size, local_work_size)) return false; //--- return true; }
我也尝试了相同的测试路径,先是使用Study通过历史数据学习了1000000次,生成了相关的nnw文件之后。采用StudyOnline学习一年的数据(这个时候是没有任何收入的,10000美金的账户很快就没钱了,运行结束之后更新了部分的nnw文件)。最后使用Test测试和StudyOnline的结果基本一致(没有任何盈利)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Artículo publicado Redes neuronales en el trading: Previsión probabilística de series temporales (Final):
Como ya hemos mencionado, el modelo se entrena en dos etapas sucesivas. En primer lugar, realizamos una entrenamiento offline con una historia de 15 años del par EURUSD con el marco temporal H1. Este conjunto de datos abarca todo tipo de situaciones de mercado: desde movimientos laterales prolongados hasta tendencias pronunciadas, desde periodos de calma hasta picos de volatilidad. Esto permite que el modelo estudie una variedad de comportamientos del mercado. El Codificador ha aprende así a identificar patrones clave y a transformar el estado del mercado en una representación compacta pero informativa, que se convierte en la base para la toma de decisiones del Agente. El Actor, basándose en los comentarios del Crítico y del Director, elabora una estrategia sostenible que puede funcionar eficazmente en diferentes condiciones.
A continuación, se ejecuta la segunda fase: el entrenamiento online utilizando datos de 2024, organizado en el simulador de estrategias de MetaTrader 5. En este caso, el modelo funciona prácticamente en tiempo real, analizando el mercado vela por vela. Nos hemos encontrado con ruido, fluctuaciones aleatorias y distorsiones típicas de un mercado en vivo. Este enfoque nos ha permitido no solo seguir entrenando el modelo, sino también adaptar su comportamiento a la dinámica del mundo real, mejorar la estrategia y aumentar la resiliencia ante la incertidumbre.
Tras completar el entrenamiento, hemos probado el modelo utilizando datos nuevos (cotizaciones de enero a marzo de 2025), manteniendo todos los parámetros utilizados durante el entrenamiento. A continuación le resumimos los resultados de las pruebas.
Los resultados de las pruebas demuestran que el modelo ha generado beneficios positivos durante el periodo histórico seleccionado. El ingreso neto total ha sido de 821.90$ con un depósito inicial de 100.0$, lo que indica crecimiento del capital. Cabe señalar que el coeficiente de rentabilidad (Profit Factor) se ha situado en 1,06, lo que indica que los beneficios superan ligeramente las pérdidas.
Autor: Dmitriy Gizlyk