Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 74
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
Yuri, decidí usar el santo de los santos y hacer un grial, pero me sale una inscripción que dice que los valores predichos no pueden ser más de 10. ¿Es una restricción deliberada o un límite del algoritmo ???? Porque más de 10 es extremadamente relevante así que ....
Después de 10 puede haber un desbordamiento de tipo int, y sólo tiene 32 bits, es decir, antes del desbordamiento puede contener números que no superen el valor 2^32=2147483648. Son poco más de dos mil millones. Por supuesto, se pueden implementar contadores con mayor capacidad de dígitos, pero la velocidad de cálculo será varias veces más lenta.
Por eso Dr.Trader no pudo ejecutar la libVMR completa reescrita en R - demasiados cálculos y consume mucha memoria.
Después de 10 puede haber un desbordamiento de tipo int, y sólo tiene 32 bits, es decir, se ajusta a los números sin un desbordamiento no superior a 2^32=2147483648. Son poco más de dos mil millones. Por supuesto, se pueden escribir contadores con mayor profundidad de bits, pero la velocidad de cálculo será varias veces más lenta.
Después de 10 puede haber un desbordamiento de tipo int, y sólo tiene 32 bits, es decir, antes del desbordamiento contiene números que no superan el valor 2^32=2147483648. Son poco más de dos mil millones. Por supuesto, se pueden escribir contadores con mayor capacidad de dígitos, pero la velocidad de los cálculos caerá varias veces.
Por eso el Dr. Trader no pudo ejecutar la libVMR completa reescrita en R - demasiados cálculos y demasiado consumo de memoria.
Déjeme contarle una anécdota: recuerdo que le pregunté por los cálculos paralelos. Para poder contar más entradas en el coprocesador matemático. Sólo vino un imbécil que reescribió LibVMRx en C++ y lo puso en paralelo de alguna manera. Tenía un ordenador muy potente y tardó unos 40 minutos en procesar 8 columnas, según dijo. Ni siquiera me mandó el programa ni nada, sólo me plagó de excusas y tonterías. Aunque le he proporcionado todos los datos y estaba dispuesto a compartir el sistema y las consideraciones para construir el modelo. Pero se negó a ayudarme. Hay gente así. Suelta y mete ....
Lo he puesto en paralelo con la última versión 6.01. Nada más funciona. Si fuera posible, lo habría paralizado un poco más. Lo hacía por mí, es decir, necesito que todo se calcule más rápido.
Ahora he ideado un algoritmo para calcular los predictores débiles y así poder eliminarlos. Llevará mucho tiempo calcularlo, pero merecerá la pena, porque en lugar de un predictor débil, podrás sustituirlo por uno más fuerte. O eliminar los predictores débiles, aumentando tanto la velocidad de cálculo como la capacidad de generalización. Porque, para el trading, es necesario recalcular constantemente los modelos en cuanto el mercado empieza a hacer trampas. Y así es el mercado, en cuanto se fusionan otros operadores, cambian sus estrategias y tienes que volver a adaptarte a ellas.
Lo he puesto en paralelo con la última versión 6.01. Nada más funciona. Si fuera posible, lo habría paralizado un poco más. Lo hacía por mí mismo, es decir, necesito calcularlo todo más rápido.
Ahora he ideado un algoritmo, cómo calcular los predictores débiles, para que puedan ser eliminados. Llevará mucho tiempo calcularlo, pero merecerá la pena, porque en lugar de un predictor débil, podemos sustituirlo por otros más fuertes. O eliminar los predictores débiles, aumentando tanto la velocidad de cálculo como la capacidad de generalización. Porque, para el trading, es necesario recalcular constantemente los modelos en cuanto el mercado empieza a hacer trampas. Así es el mercado, en cuanto los demás operadores se fusionan, cambian sus estrategias y tienes que volver a adaptarte a ellas.
Eso es todo. Estoy deseando ver los cambios.
Es posible recorrer manualmente los predictores uno por uno, pero es largo y doloroso, aunque también es la dirección correcta. Necesita mucho tiempo, pero debe ser automático y en un tiempo razonable y no tan insoportable.
Mihail Marchukajtes:
Estamos en el mismo lado de la valla, yo también creo que el mercado está en constante cambio y hay que ajustarlo cada vez que pasa algo o se publican noticias. No busques un grial en 5 años, como hacen algunos. Esto es una utopía, pero ya estoy agotado de explicarlo...Es posible encontrar griales débiles de larga duración. Tuve algunos de ellos. Pero mi ganancia está al borde de la falta, mi ganancia es de un centavo aunque tenga un buen depósito.
Teóricamente es posible encontrar un grial fuerte de larga duración, pero la probabilidad es probablemente cero punto cero...
La forma más segura:
HM... Mira, ahora he entrenado el modelo, ambos modelos obtuvieron los mismos valores de nivel de generalización, es decir, el segmento de mercado es aserrado de la misma manera por ambos modelos. Creo que esta es la clave para elegir el modelo adecuado. Sigo formándome, buscando aportaciones, etc.
Busca en el archivo java. Si hay líneas "La variable se redujo", indican predictores débiles. Dichos predictores están excluidos del código del modelo - no se calculan en ninguna parte del código del clasificador binario.
Es cierto que si todos los predictores son aproximadamente iguales, no aparecen estas líneas.
He aquí un ejemplo (resaltado en negrita). El sexto predictor v5 (contado desde cero) - la séptima columna en el CSV puede ser sustituida por alguna otra más fuerte:
Busca en el archivo java. Si hay líneas "La variable se redujo", indican predictores débiles. Dichos predictores están excluidos del código del modelo - no se calculan en ninguna parte del código del clasificador binario.
Es cierto que si todos los predictores son aproximadamente iguales, no aparecen estas líneas.
He aquí un ejemplo (resaltado en negrita). El sexto predictor v5 (contado desde cero) - la séptima columna en el CSV puede ser reemplazada por alguna otra más fuerte:
double getBinaryClassificator1(double v0, double v1, double v2, double v3, double v4, double v5) {
double x0 = 2,0 * (v0 + 1,0) / 2,0 - 1,0;
double x1 = 2,0 * (v1 + 1,0) / 2,0 - 1,0;
double x2 = 2,0 * (v2 + 1,0) / 2,0 - 1,0;
double x3 = 2,0 * (v3 + 1,0) / 2,0 - 1,0;
double x4 = 2,0 * (v4 + 1,0) / 2,0 - 1,0;
//Variable v5 tiene bajo reducción
doble decisión = -0,23641879194630872 -0,10890380313199105 * x2
-0,14546040268456376 * x0 * x2
+ 0,07270693512304251 * x1 * x2
-0.07182997762863534 * x3
-0,07383982102908278 * x0 * x1 * x2 * x3
-0.4362541387024608 * x4
;
decisión de retorno;
}