Transcripción del chat de codificación del 18/11/2021

Gracias de nuevo a todos los participantes en la última charla sobre codificación.

La próxima sesión de codificación tendrá lugar el 25 de noviembre a las 14:00 (hora CET), es decir, a las 13:00 (hora de Londres), 8:00 (hora de Nueva York), 5:00 (hora de San Francisco) y 0:00 (hora 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.

 

 

beetrader
¿Es posible cambiar el código de colores de la matriz de correlaciones? Los números negativos extremos aparecen en verde. Quiero tener los mismos tonos de color que los números positivos cuando los negativos se alejan de cero. ¿Hay alguna forma de hacerlo en el código?

Mark - SQ
Creo que no es posible cambiar los colores en este momento, que son hardcoded
pero lo entiendo. en principio todo es personalizable, incluidos los colores de la tabla de matrices de correlación, pero no podemos configurar cada cosa del programa. Dudo que haya muchos otros usuarios que se beneficiarían de esta característica, por lo que tiene una pequeña prioridad para nosotros. Debemos centrarnos en cosas más importantes y con mayor impacto.

 

 

beetrader
Quiero implementar una base de datos para guardar los resultados xml, ¿hay algún cambio que se espera en los próximos meses o estoy seguro de guardarlos en la especificación actual?

Mark - SQ
No, XML no debe cambiar. Puede ampliarse (nuevas etiquetas o atributos), pero no debería afectar al código que lo procesa.

 

 

beetrader
¿podemos tener una fuente de datos de precios distinta de las que aparecen en el gestor de datos, por ejemplo, puedo consumir precios de una base de datos mongodb o sql?

Mark - SQ
La solución más sencilla por ahora sería exportar los precios de la base de datos a un formato CSV, que luego podrá importar fácilmente a SQ en cualquier formato CSV.

 

 

sebasfiorent 
Sólo busco cómo implementar un FormulaBlock para implementar un Importe fijo en (USD/EUR, es decir, la divisa de la cuenta) para TakeProfit

Mark - SQ
debería ser una fórmula del paquete SQ.Formulas.SLPT. Pero para ser honesto, no hemos intentado extender esta parte externamente, hay algunas dependencias que podrían ser un problema - puedes crear una nueva fórmula en SQ, pero necesitarías añadir también su "traducción" a MT4/5 MQL y/o TS EasyLanguage para que funcione en el código final generado para estas plataformas.

 

 

beetrader
pregunta abierta: Hay algunos indicadores de John Ehlers en el SQX, ¿son sus otros indicadores basados en el procesamiento de señales difíciles o imposibles de implementar en el SQX?

Mark - SQ
son posibles de ser implementados, simplemente no hubo tiempo para hacerlo. Hay miles de posibles indicadores que podrían ser implementados en SQ, elegimos los que preferimos. Estamos añadiendo algunos de vez en cuando

clonex
Esto no debería ser un problema

No es tan difícil. Pls Envíeme aquí indicadores de Ehlers que significaba haber implementado.
Tengo algo en proceso de trabajo Autocorrelación , algo se hace ( Reflejo ) pero hay muchos posibles.

beetrader
ok gracias, podemos implementar algunos de ellos. Tal vez lo que quería saber es una lista de gotchas a tener en cuenta. Como si usted sabe algo definitivamente no funciona cuando se trata de ponerlas en práctica, entonces es útil para el poder SQX desarrolladores / extensores saber de antemano.

Mark - SQ
No estoy seguro de si hay algunos gotchas en la aplicación de los indicadores si no son algunos indicadores especiales multi-timeframe.
Los indicadores en SQ son bastante simples, su lógica es similar a los indicadores C# de NinjaTrader - Te recomiendo que busques la rimplementación de indicadores NT, podría ser muy simple convertir esto a SQ

beetrader
muchas gracias, eso es un gotcha

 

 

beetrader
¿Hay alguna forma de ampliar el SPP para que utilice el beneficio mediano y no el beneficio medio?

Mark - SQ
No estoy seguro de lo que quieres decir, SPP no utiliza la mediana o el valor medio para elegir el valor del parámetro, sino que busca la región más estable.

beetrader
¿Debo presentar una solicitud de cambio o es demasiado complicado cambiar la arquitectura actual?

beetrader
He marcado en la foto

Mark - SQ
Ya veo, no es SPP sino perfil de optimización. La media se utiliza allí porque se utiliza en el documento original, también la desviación estándar se mide generalmente a partir de la media. No estoy seguro de cómo se comportaría en caso de Mediana

beetrader
Claro que lo entiendo. El problema es que como el SPP se basa en valores medios, ¿no estamos entonces sobreestimados o infraestimados cuando pasamos a utilizar los beneficios medios y no los beneficios medios? Puedo jugar con los ajustes para encontrar los mejores números StdDev por lo que no es un tema de alta prioridad.

 

 

beetrader 
¿Has encontrado la manera de aplicar Martingale en QuantAnalyser?

clonex
Entender 1) manera más fácil que para ponerlo en práctica en lo que si scenarion donde se puede bucle troght orderslist 2) manera más difícil es hacer esto en el plugin de gestión de dinero en QA

 

 

beetrader
Me gustaría preguntar si hay alguna métrica preparada (como sharpe, o sqn), que pueda clacular estadísticas sobre pnl "mark to market" más frecuentes, que sólo operaciones completadas.
Por ejemplo, en el ámbito de la renta variable es bastante habitual realizar una valoración diaria a precios de mercado para las operaciones de varios días y calcular la ratio de Sharpe a partir de la PNL diaria.

clonex
¿Te refieres a algo como : ¿Calcular Sharpe para las últimas 20 operaciones?

clonex
Todavía no y, de verdad, esto no es prioritario para mí. Hay cosas mucho mejores delante de nosotros, con todo el debido respeto.
En realidad estoy trabajando en fragmentos de what if:
1) se detectará la DD máxima en la prueba/entrenamiento IS - entonces se detendrá la negociación si se alcanza el umbral de DD en OS
2) Simulación de comercio de renta variable en lo que si ( junto con fragmentos de control de cuentas en MT4/MT5 (( que se hacen, pero no relased )

beetrader
Sí, ya sé que estáis hasta arriba de trabajo. Sólo necesito orientación sobre cómo hacer referencia a los oficios anteriores en el código de control de calidad,

Mark - SQ
no, no hay tal métrica En SQ calculamos métricas sólo después de la estrategia de backtest, por lo que no tiene acceso a cada movimiento en el comercio. Almacena MAE/MFE, esto se puede utilizar para calcular este tipo de métricas hasta cierto punto.

beetrader
quiere decir que mientras una operación está abierta, quiere las estadísticas en juego como esta MAFE https://strategyquant.com/codebase/mafe-profit-factor/

os
Me refiero a calcularlo a partir del pnl diario por ejemplo, incluyendo la parte "no realizada".

1TP9El problema con todas las métricas de "rentabilidad ajustada al riesgo" en SQX que he encontrado (sharpe, sqn, rentabilidad sobre dd) es que puedes tener alguna estrategia "rota" que permanezca en alguna posición perdedora a largo plazo (semanas, meses), puede tener un enorme drawdown no realizado (como 50%+), pero si calculas tus estadísticas (sharpe) sólo a partir del PNL realizado (sin marcar a mercado), se verá irrealmente bien...

@beetrader sí, algo como MAE es solución. Esto es lo que estoy usando ahora como una función de fitness, alguna combinación de retorno, sharpe/sqn y MAE.
Esto está bien, pero me gustaría implementar algo mejor idealmente..

clonex
No sé cómo hacer esto en este momento, pero hice un montón snippet inédito con MAE / MFE , no sé cómo hacer esto ahora
En general, el ratio de ventaja, mfe, mae análisis nos puede decir mucho más de lo que esperaba
Pls guardar esta pregunta para la marca para tomorrwov @os os.

clonex
No estoy seguro de si esto es posible en QA ahora. Faltan en el paquete MoneyManagementTypes
Debería ser posible realizar un seguimiento de la orden antes como una variable de instancia realmente no lo sé

os
Ok, gracias.

Por ejemplo esta pregunta y primera respuesta es exactamente sobre ese problema..
Tiene sentido mirar pnl no realizado (operaciones abiertas pnl) diariamente, porque de lo contrario usted puede haber abierto el comercio de un año y no ver lo que sucede en el ínterin con el valor de su cuenta de sus estadísticas...
https://quant.stackexchange.com/questions/9935/calculate-daily-returns-for-sharpe-ratio

clonex
O tal vez sea posible

 

 

martinx
(traducido por Mark) ¿Existe una función que mida cuántos segundos ha durado la barra? Quiero usarlo para barras de rango y volumen

Mark - SQ
martinx - por favor, sólo en inglés. no, no hay ninguna función que mida cuántos segundos ha durado la barra. Ni siquiera estoy seguro de que exista este tipo de información almacenada para las barras de volumen y rango

martinx
¿existe la función en la plataforma standart(estoy usando tradestation o multicharts) por ejemplo en ms ,en su plataforma no hay manera de medir estas cosas básicas? gracias

Mark - SQ
ok, lo entiendo. No estoy 100% seguro ahora, pero los tiempos en SQ también se almacenan en milisegundos. Asi que los tiempos que estas mostrando deberian ser accesibles desde Time block/series. S usted necesita para hacer sólo Time(0) - Time(1) para obtener una diferencia entre la barra anterior y actual

 

 

EmmanuelE
Me gustaría crear estrategias de posiciones múltiples, como múltiples Buy/ short,
posición de cobertura. ¿Dónde puedo desarrollar estos fragmentos en el CodeEditor?

Veo que podemos crear una nueva "Acción de Orden" ¿o es una nueva "Gestión de Dinero"?

¿Dónde puedo desarrollar una gestión comercial con múltiples posiciones?

Mark - SQ
puede abrir múltiples órdenes usando Enter At Market/Stop/Limit. No se hace de esta manera en las estrategias estándar, pero cuando se crea la lógica de la estrategia se puede hacer en AlgoWizard editor.
Hacer un fragmento de código en el editor de código no es tan sencillo.

EmmanuelE
Lo vi en el algowizard pero no en el editor de código

Mark - SQ
Sí, puede crear un nuevo fragmento de acción de pedido, pero tendría que añadir también la forma de traducirlo al código de MT4/5 o EasyLanguage, sea cual sea el que utilice.
CodeEditor es para el desarrollo de bloques de negociación, no entiendo muy bien lo que quieres hacer. Debería ser fácil en AlgoWizard añadiendo más bloques EnterAtXXX

EmmanuelE
¿tenemos un ejemplo de fragmento de acción de nuevo pedido?
¿cómo añadirlo al traductor en un idioma sencillo?

Mark - SQ
puedes mirar EnterAtMarket, y hay un código fuente para cada building block en Code Editor - package SQ.Blocks.Order.Open

mira el ejemplo de añadir un indicador, el principio es el mismo: https://strategyquant.com/doc/programming-for-sq/adding-envelopes-indicator-step-by-step/#adding-pseudo-code-template-for-a-new-block
es un tutorial paso a paso sobre cómo añadir un nuevo bloque indicador a SQ.
todas las plantillas de todos los módulos se definen en Freemarker lenguaje en la sección del Código

EmmanuelE
por ejemplo, me gustaría poder añadir una posición de cobertura, cuando SQX buscar estrategias (no en algowizard)

o más
He desarrollado múltiples estrategias de gestión comercial. I
me gustaría añadirlos en SQX
en el editor de código

Mark - SQ
generalmente hay dos maneras:
1. crear fragmentos personalizados - indicadores, acciones de pedido - que se ocupen de esto, pero es bastante complejo
2. crea tu propia plantilla de estrategia - SQ puede generar estrategias basadas en tu plantilla
https://strategyquant.com/doc/strategyquant/strategy-templates/

EmmanuelE
Estoy dispuesto a desarrollar fragmentos de aduanas.

Mark - SQ
Todos los bloques por defecto en SQ tienen su código completo en Snippets en Code Editor

EmmanuelE
Estoy estudiando cada uno

EmmanuelE
si creo una plantilla en algowizard con multiples posiciones, no permitira crear estrategias en SQX con estrategias de indicadores aleatorios
la única solución es codificarlo es el editor de código

Estoy dispuesto a probar las plantillas para empezar

si creo una plantilla en algowizard con multiples posiciones, no permitira crear estrategia en SQX con estrategias de indicadores de bloques aleatorios, solo el indicador seleccionado en algowizard

la única solución es codificarlo es el editor de código

Mark
No veo por qué no debería funcionar con plantillas, creo que es posible.

 

 

Póquer1
Hola ¿Cómo puedo importar indicadores de tradestation (easylanguage) a SQ.
¿se requiere alguna codificación adicional (o puedo copiar y pegar desde TS?

Mark - SQ
Lo siento, pero no es tan sencillo. TS utiliza EasyLangiuage y SQ utiliza Java. Así que cualquier indicador que desee transferir tiene que ser implementado en SQ.
puede hacerlo solo, o puede pedir este tipo de servicio a alguien - tal vez clonex

Póquer1
Ok. Porque tengo un par de indicadores que me gustaría apoyo con.
¿Si funciona para Clonex?

Mark - SQ
puede preguntar a Clonex:
Contacto Ivan Hudec Consultor StrategyQuantX
Rellene este formulario.

 

 

oliverhowton
el puesto https://strategyquant.com/doc/programming-for-sq/example-per-databank-custom-analysis/ ¿esta función sustituye a las funciones en quant analyzer. he intentado guardar una ejecución particular de una prueba matix walk forward en un archivo csv y importto quant analyzer pero no es posible así que estoy un poco perdido a los beneficios de esta característica? gracias

Mark - SQ
Oliver, este ejemplo es para StrategyQuant, no funcionaría en QuantAnalyzer. No he programado para QA durante algún tiempo, pero usted debe ser capaz de hacer algo similar con Scripter en QA - seleccionar las estrategias en el banco de datos (o cargarlos desde el disco) y luego hacer algo en topn de ellos.
¿Qué quiere hacer exactamente?

oliverhowton
así ive encontrado una configuración estable de ejecución / params en un walkforward y por lo que la curva de equidad única que quiero importar a quant analyzer pero el archivo csv al intentar importar a QA no work..... ¿alguna idea de cómo puedo lograr esto? gracias

Mark
El problema es que QA sólo carga el resultado principal de la estrategia, no los resultados de WF.
Creo que hay una solución, pero no es sencilla.
En SQ puede ir a la Lista de operaciones para el resultado de su WF, y exportar las operaciones a un archivo CSV.
en QA puede cargar esta lista de operaciones. Lo único es que tendrás que especificar un formato personalizado: https://strategyquant.com/doc/quantanalyzer/formats-supported-in-quantanalyzer/#format-specification
pero sólo hay que hacerlo una vez

Ya he añadido el formato personalizado en el comentario a tu tarea: https://roadmap.strategyquant.com/tasks/sq4_8403
El formato añadido es:
Formato.4.SaltarFila=1
Formato.4.Separador=;
Format.4.DateFormat=aaaa.MM.dd HH:mm:ss
Format.4.LineFormat=Sin usar,Símbolo,Acción,OpenTime,OpenPrice,Tamaño,CloseTime,ClosePrice,PL,Sin usar,Sin usar,Sin usar,Sin usar,Sin usar,Comentario

beetrader
Al ver su archivo de resultados, creo que lo mejor es obtener la configuración óptima que ha encontrado y volver a ejecutar la estrategia en AW, guardar el archivo con un nuevo nombre y luego importarlo en QA. De esta forma no obtendrá el resto de información, ya que QA tratará sus resultados como una cartera, y podrá ver o analizar fácilmente los resultados que he marcado con flechas en el gráfico.

oliverhowton
gracias. voy a echar otro vistazo. sí, el problema es que tengo la intención de reoptimizar mis estrategias y el wfm aconseja utilizar ciertos ajustes en el futuro para los futuros ajustes de datos que tengo la intención de utilizar. esta curva de equidad que se ha optimizado en la sucesión tengo la intención de comparar con los demás para que pueda construir una cartera. y por lo que no es posible construir adecuadamente. la única manera que puedo trabajar es replicar la configuración en el período de tiempo wfm y paso a través de cada período con la configuración y combinar en una cartera para obtener la verdadera prueba de espalda, pero esto parece como un montón de trabajo para una sola estrategia.

Suscríbase a
Notificar a
1 Comentario
Más antiguo
Más reciente Más votados
Feedbacks de Inline
Ver todos los comentarios
Emmanuel
27. 11. 2021 16:43

esto es útil para leer de nuevo la respuesta

Seguir leyendo