Transcripción de la sesión de codificación del 26/10/2021

La primera sesión de codificación fue un experimento exitoso, gracias EmanuelE, beetrader, clonex por sus preguntas y el chat.

Continuaremos con las sesiones de codificación
será quincenal, siempre a mediados y a finales de mes.

La próxima sesión de codificación tendrá lugar el 18 de noviembre a las 14:00 CET (13:00 hora de Londres, 8:00 de Nueva York, 5:00 de San Francisco y 0:00 de Sydney).

Todas las personas que llenaron el formulario de interés en las sesiones de codificación recibirán una notificación sobre cada próxima sesión (hasta que se den de baja de la lista de correo de sesiones), si desea recibir una invitación, rellene el formulario formulario aquí.

Transcripción de la sesión de codificación - no coincide con 100%, está filtrada y agrupada por el tema de la pregunta para una mejor lectura.

 

Llamada a programas externos - Python, #F - desde SQ

Beetrader
(2) ¿Cómo añado un script externo como F# o un script Python como parte del proyecto personalizado? (3) ¿hay una manera de vincular SQX y una base de datos como mysql o Microsoft SQL utilizando JDBC?

EmmanuelE
Bee, esta es una pregunta interesante. Algunos bridge .Net-java están disponibles en internet. Sería interesante ver cómo incluir una dll en SQX.
Estoy utilizando la biblioteca ML.Net, me gustaría saber si es posible implementar la biblioteca ML.Net en SQX a través de un puente .net-java

Mark
Hola Emmanuel - llamar a .NET desde Java - honestamente no lo he probado todavía, experimenté con Python. Debe ser muy similar.
El artículo de ejemplo sobre Python de SQ se publica aquí: https://strategyquant.com/doc/programming-for-sq/calling-python-from-sq-java-introduction/
El segundo ejemplo allí con el uso de ProcessBuilder puede ser usado para invocar cualquier script o programa externo. No es específico de SQ, los snippets de SQ están escritos en Java, así que puedes buscar ejemplos en Java para llamar a .NET o cualquier otra cosa.
Si necesitas algún puente y añadir una librería JAR personalizada a SQ, hay un artículo sobre esto: https://strategyquant.com/doc/programming-for-sq/using-custom-jar-libraries/

EmmanuelE
de hecho, es como cualquier lenguaje, solo tenemos que insertar al principio "import xx.yy" , supongo que podemos importar cualquier dll, como cualquier programa java
Sería interesante compartir, datos, objeto, (señal, indicador) directamente desde un software de trading a SQX
Python puede ser útil, estoy usando ML .NET, es muy similar. y hay muchas mejoras en ML .NET
Trabajo mucho con redes neuronales

Marca (SQ)
No estoy seguro de que sea tan sencillo. por lo general, se puede llamar a métodos personalizados de Java JAR personalizado, o Python o .NET bibliotecas en fragmentos de SQ, pero usted debe saber lo que está haciendo. No es tan fácil crear un indicador personalizado que será computado en otro código - es técnicamente posible, pero podría ser muy lento.
En cuanto al uso de redes neuronales, depende de lo que quieras hacer exactamente con SQ y NN. Tal vez si usted describe más exactamente lo que quieres hacer, puedo pensar en cómo hacerlo.

EmmanuelE
He encontrado algún puente entre NET Java : https://www.javonet.com/about/what-is-javonet/

Marca (SQ)
Sí, hay formas de llamar a .NET desde Java, esto en sí no es un problema. El "problema" es cómo conectar tu librería a SQ, depende de lo que quieras hacer exactamente

 

Desarrollo de una nueva prueba Monte Carlo

Beetrader
(1) ¿Cómo extiendo SQX para poder implementar una prueba de permutación Monte Carlo diferente además de las 2 que están incorporadas? Estoy pensando en implementar la prueba de permutación de Tim Masters.

Mark
No estoy familiarizado con los algoritmos exactos de sus pruebas de permutación: ¿hace permutaciones de las operaciones resultantes, o algo más?
En cualquier caso, puede echar un vistazo a cómo se implementan las pruebas MC actuales: el código fuente de cada prueba está disponible.
Si describes mejor lo que quieres hacer puedo darte algunas pistas
Podré ayudarte mejor en esta sesión en vivo si me das una mejor descripción de lo que quieres hacer exactamente - en caso de MC test la descripción del algoritmo a implementar. O si ya has empezado, entonces el fragmento de código que tienes hasta ahora y qué problema te encuentras.
Sólo puedo dar respuestas generales a preguntas generales.
Pero intentaré mirar el test de Permutación de Tim Masters si mi tiempo me lo permite y lo publicaré en la transcripción de este chat

Beetrader
Permuta las series temporales antes de introducirlas en el algoritmo. Utiliza logaritmos para encontrar diferencias, por ejemplo, de precios de cierre, los aleatoriza y vuelve a crear las series temporales.

EmmanuelE
Veo que podemos desarrollar indicadores , señales, columna de banco de datos. ¿Podemos acceder al comercio para implementar un nuevo tipo de prueba? ¿Podemos añadir una nueva comprobación cruzada?
¿Está disponible la comprobación cruzada de Monte Carlo como ejemplo?

Marca (SQ)
se puede extender mucho más que esto. Sí, puede crear fácilmente un nuevo método Monte Carlo, ya hay un ejemplo en nuestro código base: https://strategyquant.com/codebase-category/mc-retest/
de esta forma puede añadir un nuevo método de simulación para MC.
Además, el código fuente completo de todas las pruebas Monte Carlo existentes está disponible en Code Editor en SQ.

EmmanuelE
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Excelente !!!!!!!!!!!!!!!!! ¡¡¡Estaba buscando esta información !!!

Marca (SQ)
también puede acceder a las operaciones de estrategia o incluso un lote de estrategias para hacer su propio análisis, esto se hace mejor utilizando CustomAnalysis fragmento como parte del flujo de trabajo del proyecto personalizado, un ejemplo: https://strategyquant.com/doc/programming-for-sq/example-per-strategy-custom-analysis/
El análisis personalizado se puede ejecutar después de que su constructor o retester finalice, puede realizar su propio análisis y (por ejemplo) eliminar las estrategias que no pasen su validación. O utilizar JDBC para conectarse a su base de datos y cargar algo allí

EmmanuelE
¡¡¡¡¡¡esto es impresionante !!!!!!
¡¡¡¡Podemos hacer mucho !!!!

Marca (SQ)
sí, hay muchas cosas que SQ puede hacer que no están bien documentadas todavía, estamos tratando de mejorarlo ahora

EmmanuelE
¡¡¡¡¡Esto da mucha flexibilidad !!!!!
¿Existe un código para crear una cartera?
¿Existe un código de prueba Walk Forward?

Clonex
Sí, es posible trabajar con WFO. Añadiremos ejemplos lo antes posible, durante la primera quincena de noviembre.

EmmanuelE
Sería útil ver cómo las estrategias de un seleccionado de ejecución a la siguiente ejecución
Me gustaría crear una cartera con los resultados de las operaciones de WF

Marca (SQ)
¿se refiere a la cartera de acciones de WF?

EmmanuelE

Marca (SQ)
debería ser posible. Lo más sencillo es hacerlo en el fragmento de análisis personalizado, voy a hacer un ejemplo de eso

Ejemplo de creación de cartera a partir de los resultados de WF: Por fragmento de análisis personalizado del banco de datos.

Vinculación de SQ y la base de datos

beetrader
(3) ¿hay alguna forma de vincular SQX y una base de datos como mysql o Microsoft SQL utilizando JDBC?

Marca (SQ)
¿desea cargar los datos para el backtest desde la base de datos o almacenar los resultados de la estrategia en la base de datos?

Beetrader
Quiero almacenar los resultados en una base de datos para poder realizar comparaciones con la acción en vivo más adelante. Actualmente lo hago manualmente en QA.

Marca (SQ)
¿quieres hacer esto en SQ? es posible mediante el análisis personalizado fragmento, pero ¿qué es exactamente lo que desea almacenar en la base de datos? resultados de la estrategia, o los oficios?

Beetrader
idealmente quiero almacenar todo en la base de datos. Sé que puedo almacenar la estrategia xml, en cuyo caso ¿simplemente creo una tarea personalizada para leer el xml y guardar lo que quiero en la base de datos?

Marca (SQ)
Sí, y puede almacenar todo lo demás de la misma manera. Usted tiene acceso a las métricas (Netprofit, # de las operaciones, etc), así como la lista completa de las operaciones para cada estrategia en el banco de datos.
consulte aquí el ejemplo de análisis personalizado: https://strategyquant.com/doc/programming-for-sq/example-per-strategy-custom-analysis/
puede ser llamado para cada estrategia en el banco de datos. A continuación, sólo obtener las cosas de ResultsGroup y guardarlos

La estrategia con todos sus datos se almacena en el objeto ResultsGroup: https://strategyquant.com/doc/programming-for-sq/working-with-resultsgroup/
El análisis personalizado puede ejecutarse una vez finalizado su Builder o Retester, o como parte de un proyecto personalizado. Puede realizar su propio análisis y (por ejemplo) eliminar las estrategias que no pasen su validación. O utilizar JDBC para conectarse a su base de datos y cargar algo allí
De nuevo, los SQ Snipppets están en Java puro, así que puedes simplemente añadir código para conectarte a tu base de datos a través de JDBC y guardar allí lo que quieras.

 

QuantAnalyzer - Simulación Martingale MM

Beetrader
¿Cómo puedo crear una gestión de dinero martingala en Quant Analyser. Traté de seguir el código existente, pero no pude encontrar una manera de hacer referencia a las operaciones anteriores.

Marca (SQ)
tienes razón, no se puede hacer referencia a las operaciones anteriores en MM, tengo que pensar en ello - si es posible de alguna manera. Voy a publicar una mejor respuesta y tal vez algún ejemplo en la transcripción de chat

EmmanuelE
Me pasa lo mismo, quiero crear otra gestión monetaria también con otra forma de comprar/vender/cobertura.

EmmanuelE
Necesito también hacer referencia al comercio anterior, para abrir el comercio múltiple

Beetrader
He enviado algunos ejemplos de cómo podemos empezar a mejorar la documentación. Si usted tiene una manera para los ejemplos enviados por los usuarios a continuación, puede comprobar y revisar antes de publicar en la documentación api.

Esta respuesta aún se está trabajando, se publicará en los próximos días.

 

Actualizar la configuración del Builder sobre la marcha

Beetrader
SQ en los proyectos personalizados, ¿hay alguna forma de actualizar la tarea del constructor con la salida de un script pythong anterior que calcule, por ejemplo, los rangos que quiero utilizar como stop loss y take profit?

Marca (SQ)
debería ser posible, pero será bastante complicado. Debo mirar cómo hacerlo, intentaré hacer un ejemplo para ello.

Esta respuesta aún se está trabajando, se publicará en los próximos días.

Suscríbase a
Notificar a
2 Comentarios
Más antiguo
Más reciente Más votados
Feedbacks de Inline
Ver todos los comentarios
Hemmo
17. 11. 2021 9:36 am

Alguna información reciente sobre las pruebas de permutación de Timothy Masters se puede escuchar en el podcast Better System Trader en:
https://www.youtube.com/watch?v=1RKz9v_0WDo&t=3191s

Emmanuel
20. 11. 2021 1:26 pm

Gracias Mark, esta sesión ha sido muy útil

Seguir leyendo