Transcription du chat de codage du 18/11/2021

Merci encore à tous les participants du dernier coding chat.

La prochaine session de codage aura lieu le 25 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.

 

 

betterave
Est-il possible de changer le code couleur de la matrice de corrélation, les nombres négatifs extrêmes sont affichés en vert. Je voudrais que les couleurs soient les mêmes que celles des nombres positifs lorsque les nombres négatifs s'éloignent de zéro. Existe-t-il un moyen de le faire dans le code ?

Mark - SQ
Je crois qu'il n'est pas possible de changer les couleurs pour l'instant, elles sont codées en dur.
Tout est en principe possible à personnaliser, y compris les couleurs dans le tableau de la matrice de corrélation, mais nous ne pouvons pas configurer chaque élément du programme. Je doute qu'il y ait beaucoup d'autres utilisateurs qui bénéficieraient de cette fonctionnalité, c'est pourquoi elle n'a qu'une faible priorité pour nous. Nous devons nous concentrer sur des choses plus importantes ayant le plus grand impact.

 

 

betterave
Je souhaite mettre en place une base de données pour enregistrer les résultats xml. Y a-t-il des changements prévus dans les prochains mois ou puis-je les enregistrer en toute sécurité dans la spécification actuelle ?

Mark - SQ
Non, le XML ne doit pas changer. Il peut être étendu (nouvelles balises ou nouveaux attributs), mais cela ne doit pas affecter le code qui le traite.

 

 

betterave
Est-il possible d'avoir une autre source de données de prix que celles listées dans le gestionnaire de données ? Par exemple, puis-je consommer des prix à partir d'une base de données mongodb ou sql ?

Mark - SQ
La solution la plus simple pour l'instant serait d'exporter les prix de votre base de données dans un format CSV, vous pouvez ensuite facilement importer n'importe quel format CSV dans SQ.

 

 

sebasfiorent 
Je cherche comment mettre en place un FormulaBlock pour mettre en place un montant fixe en (USD/EUR, c'est-à-dire la devise du compte) pour TakeProfit.

Mark - SQ
il devrait s'agir d'une formule dans le paquet SQ.Formulas.SLPT. Vous pouvez créer une nouvelle formule dans SQ, mais vous devrez également ajouter sa "traduction" vers MT4/5 MQL et/ou TS EasyLanguage pour qu'elle fonctionne dans le code final généré pour ces plates-formes.

 

 

betterave
Question ouverte : Il y a quelques indicateurs de John Ehlers dans le SQX, ses autres indicateurs basés sur le traitement du signal sont-ils difficiles ou impossibles à mettre en œuvre dans le SQX ?

Mark - SQ
il est possible de les mettre en œuvre, mais nous n'avons pas eu le temps de le faire. Il existe des milliers d'indicateurs possibles qui pourraient être implémentés dans SQ, nous avons choisi ceux que nous préférons. Nous en ajoutons quelques-uns de temps en temps

clonex
Cela ne devrait pas poser de problème

Ce n'est pas si difficile. Veuillez m'envoyer les indicateurs d'Ehlers que vous vouliez mettre en œuvre.
J'ai quelque chose en cours de travail Autocorrélation , quelque chose est fait ( Reflex ) mais il y a beaucoup de possibilités.

betterave
Ok, merci, nous pouvons mettre en œuvre certaines d'entre elles. Peut-être que ce que je voulais savoir, c'est une liste de problèmes à éviter. Par exemple, si vous savez que quelque chose ne fonctionnera pas en essayant de l'implémenter, alors il est utile que les développeurs/extensionneurs de SQX le sachent à l'avance.

Mark - SQ
Je ne suis pas sûr qu'il y ait des problèmes dans la mise en œuvre des indicateurs s'il ne s'agit pas d'indicateurs multi-cadres spéciaux.
Les indicateurs dans SQ sont assez simples, leur logique est similaire à celle des indicateurs C# de NinjaTrader - je vous recommande de rechercher la mise en œuvre des indicateurs NT, il pourrait être très simple de les convertir en SQ.

betterave
Merci beaucoup, c'est un piège

 

 

betterave
Existe-t-il un moyen d'étendre SPP pour qu'il utilise le bénéfice médian et non le bénéfice moyen ?

Mark - SQ
Je ne suis pas sûr de ce que vous voulez dire, SPP n'utilise pas la valeur médiane ou moyenne pour choisir la valeur du paramètre, mais il recherche la région la plus stable.

betterave
Dois-je faire une demande de modification ou est-ce trop compliqué de modifier l'architecture actuelle ?

betterave
J'ai marqué sur l'image

Mark - SQ
Je vois, il ne s'agit pas de SPP mais de profil d'optimisation. La moyenne est utilisée ici parce qu'elle l'est dans l'article original, et l'écart-type est généralement mesuré à partir de la moyenne. Je ne suis pas sûr de la façon dont il se comporterait dans le cas de la médiane.

betterave
Bien sûr, je comprends. Le problème est qu'étant donné que le SPP est basé sur les valeurs médianes, ne sommes-nous pas en train de surestimer ou de sous-estimer lorsque nous passons à l'utilisation des bénéfices moyens et non des bénéfices médians. Je peux jouer avec les paramètres pour trouver les meilleurs chiffres de StdDev, ce n'est donc pas une priorité absolue.

 

 

betterave 
Avez-vous réussi à trouver un moyen d'implémenter Martingale dans QuantAnalyser ?

clonex
Comprendre 1) la façon la plus simple est de l'implémenter dans la scénarion "what if" où l'on peut boucler la liste d'ordres courts 2) la façon la plus difficile est de le faire dans le plugin de gestion de l'argent dans le QA

 

 

betterave
J'aimerais savoir s'il existe un indicateur prêt à l'emploi (comme sharpe ou sqn) qui permettrait de calculer des statistiques sur les transactions plus fréquentes "mark to market", plutôt que sur les transactions terminées.
Par exemple, dans le domaine des actions, il est assez courant de procéder à une évaluation quotidienne du marché pour les transactions pluri-journalières et de calculer le ratio de Sharpe à partir du PNL quotidien.

clonex
Vous voulez dire quelque chose comme : Calculer le Sharpe pour les 20 dernières transactions ?

clonex
Pas encore et ce n'est vraiment pas une priorité pour moi. Il y a des choses bien plus intéressantes qui nous attendent, avec tout le respect que je vous dois.
En fait, je travaille sur des extraits d'hypothèses :
1) on détectera le DD maximum dans le train et/ou le test IS - puis on arrêtera le trading si le seuil de DD est atteint dans l'OS
2) Simulation du trading d'actions dans l'hypothèse où (avec des snippets de contrôle de compte dans MT4/MT5 (( ils sont faits mais pas diffusés ))

betterave
Je sais que vous êtes débordés. J'ai juste besoin de conseils sur la manière de faire référence aux transactions précédentes dans le code AQ,

Mark - SQ
Non, il n'y a pas de telle métrique Dans SQ, nous calculons les métriques seulement après le backtest de la stratégie, donc il n'a pas accès à chaque mouvement dans le trade. Il stocke le MAE/MFE, qui peut être utilisé pour calculer ce type de métrique dans une certaine mesure.

betterave
Il veut dire que lorsqu'une transaction est ouverte, il veut les statistiques en cours de jeu comme ce MAFE https://strategyquant.com/codebase/mafe-profit-factor/

os
J'entends par là le calcul à partir du PNL journalier par exemple, y compris la partie "non réalisée".

1TP9Le problème avec toutes les mesures de "rendement ajusté au risque" que j'ai trouvées dans le SQX (sharpe, sqn, rendement sur dd) est que vous pouvez avoir une stratégie "cassée" qui reste dans une position perdante à long terme (semaines, mois), elle peut avoir un énorme drawdown non réalisé (comme 50%+), mais si vous calculez vos statistiques (sharpe) uniquement à partir du PNL réalisé (pas d'évaluation au marché), cela semblera irréaliste...

@beetrader oui, quelque chose comme le MAE est une solution de rechange. C'est ce que j'utilise actuellement comme fonction d'aptitude, une combinaison de rendement, de sharpe/sqn et de MAE.
C'est bien, mais j'aimerais mettre en place quelque chose de mieux dans l'idéal...

clonex
Je ne sais pas comment faire pour l'instant mais j'ai fait beaucoup de snippets inédits avec MAE / MFE, je ne sais pas comment faire pour l'instant.
L'analyse des ratios de bord, de mfe, de mae peut nous en dire beaucoup plus que ce que je pensais.
Merci de garder cette question pour la note de demain @os os.

clonex
Je ne suis pas sûr que cela soit possible en QA maintenant. Il manque des éléments dans le paquet MoneyManagementTypes
Il devrait être possible de suivre la commande avant en tant que variable d'instance, mais je ne sais pas vraiment.

os
Ok, merci.

Par exemple, cette question et la première réponse portent exactement sur ce problème...
Il est logique de regarder le pnl non réalisé (pnl des transactions ouvertes) quotidiennement, car sinon vous pouvez avoir des transactions ouvertes pendant un an et ne pas voir ce qui s'est passé entre-temps avec la valeur de votre compte à partir de vos statistiques...
https://quant.stackexchange.com/questions/9935/calculate-daily-returns-for-sharpe-ratio

clonex
Ou peut-être que c'est possible

 

 

martinx
(traduit par Mark) Existe-t-il une fonction qui mesure le nombre de secondes qu'a duré la barre ? Je veux l'utiliser pour les barres de range et de volume.

Mark - SQ
Non, il n'y a pas de fonction qui mesure le nombre de secondes qu'a duré la barre. Je ne suis même pas sûr que ce type d'information soit stocké pour les barres de volume et de range.

martinx
La fonction existe dans une plateforme standard (j'utilise tradestation ou multicharts) par exemple dans ms, dans votre plateforme il n'y a pas moyen de mesurer ces choses basiques ? merci.

Mark - SQ
ok, je comprends. Je ne suis pas sûr 100% maintenant, mais les temps dans SQ sont également stockés en milisecondes. Donc les temps que vous affichez devraient être accessibles à partir du bloc/série Time. Il suffit donc de faire Time(0) - Time(1) pour obtenir la différence entre la barre précédente et la barre actuelle.

 

 

EmmanuelE
J'aimerais créer des stratégies de positions multiples, comme des stratégies d'achat et de vente multiples,
position de couverture. Où puis-je développer ces snippets dans l'éditeur de code ?

Je vois que nous pouvons créer un nouveau "Order Action" ou est-ce un nouveau "Money Management" ?

Où puis-je développer une gestion des échanges avec des positions multiples ?

Mark - SQ
vous pouvez ouvrir plusieurs ordres en utilisant Enter At Market/Stop/Limit. Ce n'est pas le cas dans les stratégies standard, mais lorsque vous créez la logique de la stratégie, vous pouvez le faire dans l'éditeur d'AlgoWizard.
Il n'est pas si simple de créer un snippet dans l'éditeur de code.

EmmanuelE
Je l'ai vu dans l'algowizard mais pas dans l'éditeur de code.

Mark - SQ
Oui, vous pouvez créer un nouveau snippet d'action de commande, mais vous devrez également ajouter la manière de le traduire en code MT4/5 ou EasyLanguage - quel que soit celui que vous utilisez.
CodeEditor est destiné au développement de blocs de trading, je ne comprends pas très bien ce que vous voulez faire. Cela devrait être facile dans AlgoWizard en ajoutant plus de blocs EnterAtXXX.

EmmanuelE
avons-nous un exemple d'extrait d'action de nouvelle commande ?
Comment l'ajouter au traducteur dans une langue facile ?

Mark - SQ
Vous pouvez consulter EnterAtMarket, et il existe un code source pour chaque bloc de construction dans l'Éditeur de code - package SQ.Blocks.Order.Open

Regardez l'exemple de l'ajout d'un indicateur, le principe est le même : https://strategyquant.com/doc/programming-for-sq/adding-envelopes-indicator-step-by-step/#adding-pseudo-code-template-for-a-new-block
Il s'agit d'un tutoriel étape par étape sur la façon d'ajouter un nouveau bloc d'indicateurs à SQ.
tous les modèles de tous les blocs de construction sont définis dans le document Freemarker dans l'article du code

EmmanuelE
Par exemple, j'aimerais pouvoir ajouter une position de couverture, lorsque SQX recherche des stratégies (pas dans algowizard).

ou plus
J'ai développé de multiples stratégies de gestion commerciale. I
voudrait les ajouter dans SQX
dans l'éditeur de code

Mark - SQ
il y a généralement deux façons de procéder :
1. créer des snippets personnalisés - indicateurs, actions de commande - qui traiteraient ce problème, mais c'est assez complexe
2. créer votre propre modèle de stratégie - SQ peut ensuite générer des stratégies basées sur votre modèle
https://strategyquant.com/doc/strategyquant/strategy-templates/

EmmanuelE
Je suis prêt à développer des snippets douaniers.

Mark - SQ
Tous les blocs par défaut de SQ ont leur code complet dans les extraits de l'éditeur de code.

EmmanuelE
J'étudie chacun d'entre eux

EmmanuelE
Si je crée un modèle dans un algowizard avec plusieurs positions, il ne permettra pas de créer une stratégie dans SQX avec des stratégies d'indicateurs aléatoires.
la seule solution est de coder dans l'éditeur de code

Je suis prêt à essayer le templating pour commencer

Si je crée un modèle dans algowizard avec plusieurs positions, il ne permettra pas de créer une stratégie dans SQX avec des stratégies d'indicateurs de blocs aléatoires, seulement l'indicateur sélectionné dans algowizard.

la seule solution est de coder dans l'éditeur de code

Marque
Je ne vois pas pourquoi cela ne fonctionnerait pas avec le templating, je pense que c'est possible.

 

 

Poker1
Bonjour Comment importer des indicateurs de tradestation (easylanguage) vers SQ.
Est-ce qu'un codage supplémentaire est nécessaire (ou puis-je faire un copier-coller à partir de TS ?

Mark - SQ
Je suis désolé, ce n'est pas si simple. TS utilise EasyLangiuage et SQ utilise Java. Par conséquent, tout indicateur que vous souhaitez transférer doit être implémenté dans SQ.
vous pouvez le faire seul, ou vous pouvez demander/commander ce type de service à quelqu'un - peut-être clonex

Poker1
D'accord. J'ai quelques indicateurs pour lesquels j'aimerais obtenir de l'aide.
Si cela fonctionne pour Clonex ?

Mark - SQ
vous pouvez demander à Clonex :
Contacter le consultant Ivan Hudec StrategyQuantX
Remplissez ce formulaire.

 

 

oliverhowton
le poste https://strategyquant.com/doc/programming-for-sq/example-per-databank-custom-analysis/ Cette fonction remplace-t-elle les fonctions de l'analyseur quantique ? J'ai essayé de sauvegarder une série particulière d'un test matix dans un fichier csv et de l'importer dans l'analyseur quantique, mais ce n'est pas possible, donc je ne comprends pas bien les avantages de cette fonction.

Mark - SQ
Oliver, cet exemple est pour StrategyQuant, il ne fonctionnerait pas dans QuantAnalyzer. Je n'ai pas programmé pour QA depuis un certain temps, mais vous devriez pouvoir faire quelque chose de similaire avec Scripter dans QA - sélectionner des stratégies dans la banque de données (ou les charger à partir d'un disque) et ensuite faire quelque chose au-dessus d'elles.
Que voulez-vous faire exactement ?

oliverhowton
J'ai trouvé des paramètres d'exécution/paramètres stables dans un walkforward et une courbe d'équité unique que je veux importer dans Quant Analyzer, mais le fichier csv ne fonctionne pas lorsque j'essaie de l'importer dans QA...... Avez-vous une idée de la façon dont je peux y parvenir ?

Marque
Le problème est que QA ne charge que le résultat principal de la stratégie, et non les résultats de WF.
Je pense qu'il existe une solution, mais elle n'est pas simple.
Dans SQ, vous pouvez accéder à la liste des transactions pour un résultat WF donné, et exporter les transactions dans un fichier CSV.
dans QA, vous pouvez alors charger cette liste de métiers. La seule chose à faire est de spécifier un format personnalisé : https://strategyquant.com/doc/quantanalyzer/formats-supported-in-quantanalyzer/#format-specification
mais vous ne devez le faire qu'une seule fois

J'ai déjà ajouté le format personnalisé dans le commentaire à votre tâche : https://roadmap.strategyquant.com/tasks/sq4_8403
Le format ajouté est le suivant :
Format.4.SkipRow=1
Format.4.Separator= ;
Format.4.DateFormat=yyyy.MM.dd HH:mm:ss
Format.4.LineFormat=Inutilisé,Symbol,Action,OpenTime,OpenPrice,Size,CloseTime,ClosePrice,PL,Inutilisé,Inutilisé,Inutilisé,Inutilisé,Inutilisé,Inutilisé,Commentaire

betterave
En regardant votre fichier de résultats, je pense qu'il est préférable d'obtenir les paramètres optimaux que vous avez trouvés et de réexécuter la stratégie dans AW, d'enregistrer votre fichier sous un nouveau nom de fichier et de l'importer ensuite dans QA. De cette façon, vous n'obtiendrez pas les autres éléments parce que QA traite vos résultats comme un portefeuille. Vous pouvez alors facilement voir ou analyser vos résultats que j'ai marqués avec les flèches dans le graphique.

oliverhowton
Merci, je vais regarder à nouveau. oui, le problème est que j'ai l'intention de réoptimiser mes stratégies et le wfm conseille d'utiliser certains paramètres à l'avenir pour les paramètres de données futures que j'ai l'intention d'utiliser. cette courbe d'équité qui a été optimisée successivement, j'ai l'intention de la comparer avec d'autres afin de pouvoir construire un portefeuille. et donc il n'est pas possible de construire de manière appropriée. la seule façon que je peux trouver est de reproduire les paramètres sur la période de temps du wfm et d'avancer dans chaque période avec les paramètres et de les combiner dans un portefeuille pour obtenir le véritable back test, mais cela semble être beaucoup de travail pour une seule stratégie.

S'abonner
Notification pour
1 Commentaire
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Emmanuel
27. 11. 2021 4:43 pm

il est utile de relire la réponse

Poursuivre la lecture