Support Board
Date/Time: Mon, 21 Apr 2025 13:14:34 +0000
[Programming Help] - Demande d'aide pour l'utilisation des fonctions DOM dans une étu
View Count: 132
[2025-02-28 18:39:05] |
lazard973 - Posts: 2 |
Bonjour, J'espère que vous allez bien. Je suis en train de développer une étude personnalisée en utilisant le langage ACSIL (Advanced Custom Study Interface Language) pour exporter des données avancées, y compris les informations du Depth of Market (DOM), vers un fichier CSV. Problème rencontré : Lors de la compilation de mon script, j'obtiens des erreurs liées à l'utilisation des fonctions sc.GetBidMarketDepthEntryAtLevel(level) et sc.GetAskMarketDepthEntryAtLevel(level). Voici un exemple d'erreur : error: cannot bind non-const lvalue reference of type 's_MarketDepthEntry&' to an rvalue of type 's_MarketDepthEntry'Ces erreurs apparaissent chaque fois que j'essaie d'accéder aux champs .Price ou .Quantity des structures retournées par ces fonctions. J'ai essayé plusieurs approches, notamment : Stocker les résultats dans des variables locales. Accéder directement aux champs des structures retournées. Utiliser la structure s_MarketDepthArray J'espère que ce message vous parvient bien. Je rencontre actuellement des problèmes persistants lorsque j'essaie d'accéder aux données de profondeur de marché (DOM) à l'aide d'ACSIL dans Sierra Chart version 2741. J'ai essayé plusieurs approches, mais je rencontre des erreurs de compilation que je ne parviens pas à résoudre. J'apprécierais grandement votre aide pour résoudre ces problèmes. Voici les détails des problèmes auxquels je suis confronté : Erreur avec s_MarketDepthEntry (problème de liaison rvalue) : lors de l'utilisation de fonctions telles quesc.GetBidMarketDepthEntryAtLevel()etsc.GetAskMarketDepthEntryAtLevel(), je rencontre l'erreur de compilation suivante : error: cannot bind non-const lvalue reference of type 's_MarketDepthEntry&' to an rvalue of type 's_MarketDepthEntry' Cette erreur se produit même lorsque je suis la documentation en passant un pointeur vers s_MarketDepthEntry (par exemple, sc.GetBidMarketDepthEntryAtLevel(level, &bidEntry) ), ou lorsque j'essaie d'assigner le résultat directement à une variable const s_MarketDepthEntry . L'erreur suggère que la fonction renvoie un objet s_MarketDepthEntry (rvalue) au lieu d'un booléen comme prévu, ce qui provoque un problème de liaison. J'ai essayé différentes approches (affectation directe, utilisation de const et passage d'un pointeur), mais l'erreur persiste. Vous trouverez ci-dessous un exemple minimal du code que j'utilise : cpp s_MarketDepthEntry bidEntry; if (sc.GetBidMarketDepthEntryAtLevel(level, &bidEntry)) { float bidPrice = bidEntry.Price; float bidQuantity = bidEntry.Quantity; } Erreur avec c_SCArray (non déclaré dans la portée) : Lorsque j'utilise des fonctions commesc.GetBidMarketDepthStack()ousc.GetMarketDepthPriceLevels(), je rencontre l'erreur suivante : error: 'c_SCArray' was not declared in this scope C'est inattendu, car j'utilise Sierra Chart version 2741 et, selon la documentation, c_SCArray devrait être disponible pour ces fonctions. J'ai vérifié que j'incluais sierrachart.h , mais le type c_SCArray n'est toujours pas reconnu. Vous trouverez ci-dessous un exemple du code que j'essaie d'utiliser : cpp c_SCArray bidStack = sc.GetBidMarketDepthStack(); Contexte et Objectif : J'essaie d'écrire une étude ACSIL pour exporter des données graphiques, y compris les données DOM (prix Bid/Ask et quantités pour 30 niveaux et un ratio de profondeur), vers un fichier CSV. Mon étude fonctionne parfaitement lorsque j'exclus les données DOM, mais je ne peux pas accéder aux données DOM en raison des erreurs ci-dessus. J'utilise Sierra Chart version 2741, installée sur Windows, et mon code ACSIL est compilé à l'aide de la fonction Remote Build. Ce que j'ai essayé : Pour l' erreur s_MarketDepthEntry , j'ai essayé d'attribuer le résultat directement, en utilisant const s_MarketDepthEntry et en passant un pointeur ( &bidEntry ) conformément à la documentation, mais toutes les tentatives échouent avec la même erreur de liaison rvalue. Pour l' erreur c_SCArray , j'ai vérifié que sierrachart.h est inclus, mais le type n'est toujours pas reconnu. J'ai également vérifié le dossier ACS_Source ( C:\SierraChart\ACS_Source\ ) pour m'assurer que les fichiers d'en-tête sont à jour, mais le problème persiste. J'ai essayé des approches alternatives, telles que l'utilisation de sc.GetMarketDepthArray() (qui n'existe pas) et sc.GetMarketDepthPriceLevels() , mais elles échouent également en raison du problème c_SCArray . Demande d'assistance : Pouvez-vous confirmer s'il existe un problème connu avec s_MarketDepthEntry ou c_SCArray dans la version 2741 ? Existe-t-il une méthode nouvelle ou alternative pour accéder aux données DOM (prix acheteurs/vendeurs et quantités pour plusieurs niveaux) dans ACSIL pour cette version ? Pourriez-vous fournir un exemple pratique de la manière d’accéder aux données DOM dans ACSIL à l’aide de la version 2741 ? S’il s’agit d’un bug, existe-t-il une solution de contournement ou un correctif prévu dans une future mise à jour ? J'ai également essayé d'utiliser l'étude intégrée « Write Bar and Study Data to File » avec l'étude « Market Depth Data » appliquée à mon graphique, mais cette approche ne fournit pas les données granulaires dont j'ai besoin (par exemple, les quantités Bid/Ask pour 30 niveaux directement dans mon fichier CSV). Mon objectif est d'accéder à ces données par programmation via ACSIL afin de pouvoir calculer des métriques telles que le ratio de profondeur et les exporter avec d'autres données graphiques. Merci beaucoup pour votre temps et votre aide. N'hésitez pas à me contacter si vous avez besoin de détails supplémentaires, tels que mon code ACSIL complet ou des informations complémentaires sur ma configuration. j ai le pack 12 |
[2025-02-28 20:06:17] |
Tony - Posts: 564 |
Bonjour lazard973, même si je crois que le français est la langue la plus belle et la plus élégante de cette planète, la vérité qui dérange est que tout message contenant du français, surtout avec cette longueur et cette complexité, aurait beaucoup moins de chances d'obtenir une réponse. Je m'excuse pour la maladresse de ce message, je ne parle pas du tout français, j'utilise Google traduction.
|
To post a message in this thread, you need to log in with your Sierra Chart account: