Transcription de la session de codage du 26/10/2021

La première session de codage a été une expérience réussie, merci à EmanuelE, beetrader, clonex pour vos questions et le chat.

Nous poursuivrons les sessions de codage
il sera bihebdomadaire, toujours au milieu et à la fin du mois.

La prochaine session de codage aura lieu le 18 novembre à 14h00 CET, soit 13h00 heure de Londres, 8h00 heure de New York, 5h00 heure de San Francisco, 0h00 heure de Sydney.

Toutes les personnes qui ont rempli le formulaire d'intérêt pour la session de codage seront informés de toutes les prochaines sessions (jusqu'à ce qu'ils se désinscrivent de la liste de diffusion des sessions). Si vous souhaitez recevoir une invitation, veuillez remplir le formulaire suivant formulaire ici.

Transcription de la session de codage - ce n'est pas la correspondance 100%, elle est filtrée et regroupée par thème de question pour une meilleure lecture.

 

Appel de programmes externes - Python, #F - à partir de SQ

Beetrader
(2) Comment ajouter un script externe comme F# ou un script Python dans le cadre du projet personnalisé ? (3) Existe-t-il un moyen de relier SQX à une base de données comme mysql ou Microsoft SQL en utilisant JDBC ?

EmmanuelE
Bee, c'est une question intéressante. Des ponts .Net-java sont disponibles sur internet. Il serait intéressant de voir comment inclure une dll dans SQX.
J'utilise la bibliothèque ML.Net, j'aimerais savoir s'il est possible d'implémenter la bibliothèque ML.Net dans SQX via un pont .net-java.

Marque
Bonjour Emmanuel - appeler .NET depuis Java - honnêtement je n'ai pas encore essayé, j'ai expérimenté avec Python. Cela devrait être très similaire.
L'exemple d'article sur Python de la SQ est publié ici : https://strategyquant.com/doc/programming-for-sq/calling-python-from-sq-java-introduction/
Le deuxième exemple, avec l'utilisation de ProcessBuilder, peut être utilisé pour invoquer n'importe quel script ou programme externe. Ce n'est pas spécifique à SQ, les snippets de SQ sont écrits en Java, vous pouvez donc chercher des exemples Java pour appeler .NET ou autre chose.
Si vous avez besoin d'une passerelle pour ajouter une bibliothèque JAR personnalisée à SQ, il y a un article à ce sujet : https://strategyquant.com/doc/programming-for-sq/using-custom-jar-libraries/

EmmanuelE
en fait, c'est comme n'importe quel langage, il suffit d'insérer au début "import xx.yy", je suppose qu'on peut importer n'importe quelle dll, comme n'importe quel programme java
Il serait intéressant de pouvoir partager des données, des objets (signaux, indicateurs) directement depuis un logiciel de trading vers SQX.
Python peut être utile, j'utilise ML .NET, c'est très similaire et il y a beaucoup d'améliorations dans ML .NET.
Je travaille beaucoup avec les réseaux neuronaux

Mark (SQ)
Je ne suis pas sûr que ce soit aussi simple. En général, vous pouvez appeler des méthodes personnalisées à partir de JAR Java personnalisés ou de bibliothèques Python ou .NET dans des extraits de SQ, mais vous devez savoir ce que vous faites. Il n'est pas si facile de créer un indicateur personnalisé qui sera calculé dans un autre code - c'est techniquement possible, mais cela risque d'être très lent.
en ce qui concerne l'utilisation des réseaux neuronaux, cela dépend de ce que vous voulez faire exactement avec SQ et NN. Peut-être que si vous décrivez plus précisément ce que vous voulez faire, je pourrai réfléchir à la manière de le faire.

EmmanuelE
J'ai trouvé un pont entre NET Java : https://www.javonet.com/about/what-is-javonet/

Mark (SQ)
Oui, il existe des moyens d'appeler .NET à partir de Java, ce qui n'est pas un problème en soi. Le "problème" est de savoir comment connecter votre bibliothèque à SQ, cela dépend de ce que vous voulez faire exactement.

 

Développement d'un nouveau test de Monte Carlo

Beetrader
(1) Comment puis-je étendre SQX afin de mettre en œuvre un test de permutation de Monte Carlo différent en plus des 2 qui sont intégrés. Je pense mettre en œuvre le test de permutation de Tim Masters ?

Marque
Je ne connais pas les algorithmes exacts de ses tests de permutation - fait-il des permutations des transactions qui en résultent, ou autre chose ?
Dans tous les cas, vous pouvez jeter un coup d'œil sur la manière dont les tests MC actuels sont mis en œuvre - le code source de chaque test est disponible.
Si vous décrivez mieux ce que vous voulez faire, je peux vous donner quelques conseils.
Je pourrai vous aider au mieux lors de cette session en direct si vous me donnez une meilleure description de ce que vous voulez faire exactement - dans le cas d'un test MC, la description de l'algorithme à mettre en œuvre. Ou si vous avez déjà commencé, alors le code que vous avez jusqu'à présent et le problème que vous avez rencontré.
Je ne peux donner que des réponses générales à des questions générales.
Mais j'essaierai d'examiner le test de permutation de Tim Masters si j'en ai le temps et je le publierai dans la transcription de ce chat.

Beetrader
Il permute les séries temporelles avant de les introduire dans l'algo. Il utilise les logarithmes pour trouver les différences, par exemple entre les prix de clôture, les randomise et recrée les séries temporelles.

EmmanuelE
Je vois que nous pouvons développer des indicateurs, des signaux, des colonnes de la banque de données. Pouvons-nous accéder au commerce pour mettre en œuvre un nouveau type de test ? Pouvons-nous ajouter une nouvelle vérification croisée ?
La vérification croisée de Monte Carlo est-elle disponible ? à titre d'exemple ?

Mark (SQ)
vous pouvez étendre bien plus que cela. Oui, vous pouvez facilement créer une nouvelle méthode Monte Carlo, il y a déjà un exemple dans notre base de code : https://strategyquant.com/codebase-category/mc-retest/
Vous pouvez ainsi ajouter une nouvelle méthode de simulation pour MC.
Le code source complet de tous les tests Monte Carlo existants est également disponible dans l'éditeur de code de SQ.

EmmanuelE
Excellent ! !!!!!!!!!!!!!!!! Je cherchais cette information ! !!

Mark (SQ)
vous pouvez également accéder aux transactions de la stratégie ou même à un lot de stratégies pour effectuer votre propre analyse. Pour ce faire, il est préférable d'utiliser l'extrait CustomAnalysis dans le cadre du flux de travail d'un projet personnalisé, à titre d'exemple : https://strategyquant.com/doc/programming-for-sq/example-per-strategy-custom-analysis/
une analyse personnalisée peut être exécutée après la fin de votre constructeur ou de votre testeur, elle peut effectuer sa propre analyse et (par exemple) supprimer les stratégies qui ne passent pas votre validation. Vous pouvez également utiliser JDBC pour vous connecter à votre base de données et y télécharger quelque chose.

EmmanuelE
C'est génial ! !!!!!
Nous pouvons faire beaucoup ! !!!

Mark (SQ)
Oui, il y a beaucoup de choses que SQ peut faire et qui ne sont pas encore bien documentées, nous essayons de les améliorer.

EmmanuelE
Cela permet une grande flexibilité ! !!!!
Existe-t-il un code permettant de créer un portefeuille ?
Existe-t-il un code pour le test de marche avant ?

Clonex
Oui, il est possible de travailler avec WFO. Nous ajoutons des exemples dès que possible - au cours de la première quinzaine de novembre.

EmmanuelE
Il serait utile de voir comment les stratégies sont sélectionnées d'un cycle à l'autre.
J'aimerais créer un portofolio contenant les résultats de la transaction WF.

Mark (SQ)
Vous parlez d'un portefeuille d'actions de la FMC ?

EmmanuelE
oui

Mark (SQ)
cela devrait être possible. Le plus simple est de le faire dans un extrait d'analyse personnalisée.

Exemple de création d'un portefeuille à partir des résultats du WF : Par extrait d'analyse personnalisée de la banque de données.

Lien entre le SQ et la base de données

betterave
(3) Existe-t-il un moyen de relier SQX à une base de données comme mysql ou Microsoft SQL en utilisant JDBC ?

Mark (SQ)
En général, oui, mais quel lien exactement ? Voulez-vous charger les données pour le backtest à partir de la base de données, ou stocker les résultats de la stratégie dans la base de données ?

Beetrader
Je souhaite stocker les résultats dans une base de données afin de pouvoir effectuer ultérieurement des comparaisons avec des actions en direct. Je le fais actuellement manuellement dans le cadre de l'assurance qualité.

Mark (SQ)
Voulez-vous faire cela dans SQ ? C'est possible en utilisant l'extrait d'analyse personnalisé, mais que voulez-vous exactement stocker dans la base de données ? les résultats de la stratégie, ou les transactions ?

Beetrader
Idéalement, je veux tout stocker dans la base de données. Je sais que je peux stocker le xml de la stratégie, auquel cas je dois simplement créer une tâche personnalisée pour lire le xml et enregistrer ce que je veux dans la base de données ?

Mark (SQ)
Oui, et vous pouvez stocker tout le reste de la même manière. Vous avez accès aux métriques (Netprofit, # des trades, etc) ainsi qu'à la liste complète des trades pour chaque stratégie dans la banque de données.
voir l'exemple d'analyse personnalisée ici : https://strategyquant.com/doc/programming-for-sq/example-per-strategy-custom-analysis/
il peut être appelé pour chaque stratégie de la banque de données. Il suffit ensuite de récupérer les éléments du ResultsGroup et de les sauvegarder.

La stratégie et toutes ses données sont stockées dans l'objet ResultsGroup : https://strategyquant.com/doc/programming-for-sq/working-with-resultsgroup/
L'analyse personnalisée peut être exécutée à la fin du Builder ou du Retester, ou dans le cadre d'un projet personnalisé. Elle peut effectuer sa propre analyse et (par exemple) supprimer les stratégies qui ne passent pas votre validation. Ou utiliser JDBC pour se connecter à votre base de données et y télécharger quelque chose.
Encore une fois, les Snipppets SQ sont en Java pur, vous pouvez donc simplement ajouter du code pour vous connecter à votre base de données via JDBC et y enregistrer ce que vous voulez.

 

QuantAnalyzer - Simulation Martingale MM

Beetrader
Comment puis-je créer un money management martingale dans Quant Analyser. J'ai essayé de suivre le code existant mais je n'ai pas trouvé le moyen de me référer aux transactions précédentes.

Mark (SQ)
Vous avez raison, vous ne pouvez pas vous référer à des transactions antérieures dans MM, je dois y réfléchir - si c'est possible d'une manière ou d'une autre. Je posterai une meilleure réponse et peut-être un exemple dans la transcription du chat.

EmmanuelE
J'ai la même chose, je veux créer une autre gestion de l'argent avec une façon différente d'acheter/vendre/couverture.

EmmanuelE
J'ai également besoin de me référer aux transactions précédentes, pour ouvrir des transactions multiples.

Beetrader
J'ai envoyé quelques exemples de la manière dont nous pouvons commencer à améliorer la documentation. Si vous disposez d'un moyen pour que les utilisateurs soumettent des exemples, vous pouvez alors les vérifier et les réviser avant de les publier dans la documentation de l'api.

Cette réponse est encore en cours d'élaboration, elle sera publiée dans les prochains jours.

 

Mise à jour de la configuration du constructeur en cours d'exécution

Beetrader
SQ dans les projets personnalisés, existe-t-il un moyen de mettre à jour la tâche de construction avec la sortie d'un script pythong antérieur qui calcule par exemple les plages que je veux utiliser comme stop loss et take profit.

Mark (SQ)
cela devrait être possible, mais ce sera assez délicat. Il faut que je regarde comment faire, j'essaierai de faire un exemple.

Cette réponse est encore en cours d'élaboration, elle sera publiée dans les prochains jours.

S'abonner
Notification pour
2 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Hemmo
17. 11. 2021 9:36 am

Des informations récentes de Timothy Masters sur les tests de permutation peuvent être écoutées dans le podcast Better System Trader à l'adresse suivante :
https://www.youtube.com/watch?v=1RKz9v_0WDo&t=3191s

Emmanuel
20. 11. 2021 1:26 pm

Merci Mark, cette session a été très utile

Poursuivre la lecture