Respuesta

Nuevo método para crear estrategias

2 respuestas

kainc301

Cliente, bbp_participant, comunidad, 54 respuestas.

Visitar el perfil

hace 4 años #254665

Hola a todos, estaba pensando en nuevos enfoques para construir algoritmos y se me ocurrió una idea que me gustaría recibir algunos comentarios. Cualquier implementación de una idea de este tipo tomará un tiempo para construir así que no estoy buscando que esto se convierta en una característica en el corto plazo.

Actualmente, la forma en que SQX construye estrategias es aditiva. En otras palabras, cada estrategia comienza con una cantidad mínima de bloques indicadores y los bloques se añaden o modifican en las siguientes generaciones al construir.

Creo que también deberíamos estudiar la posibilidad de integrar un método sustractivo. En lugar de empezar con un pequeño conjunto de bloques de indicadores y construir sobre esa base, se pueden simular operaciones de compra/venta para todos los bloques de indicadores seleccionados y, a continuación, eliminar los bloques menos rentables en cada generación sucesiva.

En este método, todos los bloques de indicadores se cargarían a la vez en la memoria y las operaciones de compra y venta se tomarían al azar para cada bloque de indicadores. A continuación, los bloques se agrupan en estrategias en función de los bloques simulados que obtuvieron beneficios simultáneamente. Los bloques indicadores se eliminan en las siguientes generaciones en función de los bloques indicadores que hayan obtenido menos beneficios (o en función de una optimización de la aptitud personalizada). Se puede tomar un máximo rodante de distancia en beneficio (X ATR o X pips) para cada bloque y promediar entre bloques para sugerir un valor TP, y viceversa de valores SL con pérdidas. Si se selecciona simetría, las estrategias se construirán con bloques de indicadores simétricos y se eliminarán los respectivos bloques de indicadores a ambos lados. Si se utiliza un bloque indicador para TP/SL, se debe seleccionar un conjunto de bloques para posibles TP/SL, y se simulan simultáneamente con las estrategias generadas.

La teoría subyacente se basa en el aprendizaje por conjuntos, pero como utilizamos una versión de un bosque aleatorio, se trata básicamente de un bosque aleatorio invertido en el que todos los indicadores se prueban a la vez y luego se reducen a medida que avanzan las generaciones. Los inconvenientes son que puede resultar complejo simular todos estos datos simultáneamente y que sería más lento que el método actual. Debería ser más rápido a medida que avanzan las generaciones, ya que los indicadores se van eliminando en las generaciones siguientes. También puede ser posible el cálculo paralelo para acelerar este proceso, ya que todos los bloques de indicadores se simulan simultáneamente.

He incluido la solicitud de función aquí:

https://roadmap.strategyquant.com/tasks/sq4_5741

Por supuesto, hay asuntos mucho más importantes de los que preocuparse en este momento. Sólo quería saber si alguien más pensaba que podría merecer la pena estudiar esta cuestión.

0

ivan

Abonado, bbp_participant, comunidad, 236 respuestas.

Visitar el perfil

hace 4 años #254713

  Con este método, todos los bloques indicadores se cargarían en memoria a la vez 

Sospecho que necesitarás un hardware muy potente, de los que sólo tienen las grandes empresas o los organismos estatales. Esto sería como un SXQ corporativo

Timisoara, Rumanía
3900X 3.8 Ghz 12 núcleos, 64GB RAM DDR4 3000Mhz, Samsung 970 EVO Plus M.2 NVMe

0

kainc301

Cliente, bbp_participant, comunidad, 54 respuestas.

Visitar el perfil

hace 4 años #254731

Sospecho que necesitarás un hardware muy potente, de los que sólo tienen las grandes empresas o los organismos estatales. Esto sería como un SXQ corporativo

Creo que la gestión de los cálculos es el mayor obstáculo para una idea como ésta, debido a la cantidad de operaciones paralelas. Pero no sé hasta qué punto. Si se hace de la forma que sugiero, sólo habría que realizar una operación paralela por generación en lugar de por estrategia. Así que esto puede ser sólo un pequeño obstáculo si se hace correctamente, en cuyo caso, podríamos utilizar el hardware que tenemos ahora a costa de un proceso de construcción ligeramente más lento en lugar de un proceso de construcción exponencialmente más lento. Cargar todos los bloques de indicadores en la memoria también puede suponer un reto.

0

Viendo 2 respuestas - de la 1 a la 2 (de un total de 2)