
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
int TikKot(char *kotx, double *bid, double *ask, TDateTime *tim) ;
cette ligne ne prend pas en charge les données comme "TDateTime *tim" dans Omega.
Cela signifie que seules les fonctions de début et de fin du terminal où aucun paramètre n'est défini fonctionnent. Lorsque les paramètres sont définis, nous devons savoir quels paramètres sont pris par la DLL, il serait bien d'avoir des exemples.
Je pense que vous devrez examiner un exemple en Delphi avec un programmeur qui peut vous dire exactement ce dont vous avez besoin, et ensuite chercher des outils Omega pour fournir les paramètres requis à la DLL. Si VOUS vouliez publier une version de la DLL spécifiquement pour Omega, cela faciliterait énormément son test et son utilisation rapides, je pense qu'il y aurait beaucoup d'utilisateurs avec Omega. Il y a déjà quelques utilisateurs intéressés. Voici un petit extrait de l'AIDE Omega :
Un point important est la liste des types de données supportés, voir ci-dessous.
Définition de fonction DLL
Avant de pouvoir appeler une fonction DLL à partir d'EasyLanguage, vous devez déclarer la DLL à l'aide de l'instruction DLL Function Declaration.
Syntaxe :
DefineDLLFunc : "DLLNAME.DLL", Return Type, "FunctionName", Parameters ;
DLLNAME.DLL est le nom de la DLL où réside la fonction, Return Type est le type d'expression que la fonction retournera, FunctionName est le nom de la fonction tel que défini dans la DLL, Parameters est la liste des paramètres attendus par la fonction (chaque paramètre séparé par une virgule).
Il est très important de se rappeler que les DLL 32 bits utilisent des fonctions déclarées exportées et sensibles à la casse en utilisant _cdecl, stdcall ou fastcall. Pour que les DLL soient compatibles avec EasyLanguage, les fonctions exportées doivent être créées en utilisant des lettres majuscules et doivent être déclarées comme _stdcall. Ces fonctions d'exportation doivent être répertoriées dans la section EXPORTS .DEF du fichier DLL. L'utilisation de "_declspec (dllexport)" à partir du prototype de fonction n'est pas suffisante pour que EasyLanguage puisse localiser les fonctions DLL exportées.
Par exemple, l'instruction suivante déclare une fonction nommée MessageBeep qui est située de façon permanente dans une DLL nommée USER32.DLL. Elle renvoie une valeur booléenne (vrai/faux) et attend un seul paramètre, int.
DefineDLLFunc : "USER32.DLL", bool, "MessageBeep", int ;
Types de données
EasyLanguage supporte de nombreux types de données valides qui peuvent être utilisés pour envoyer et recevoir des informations aux fonctions contenues dans les DLL. Voici une liste des types de données pris en charge par EasyLanguage :
Types de données fondamentaux :
BYTE
Type de données entier de 1 octet.
char
Type de données entières de 1 octet.
int
Type de données entier signé de 4 octets.
WORD
Type de données : nombre entier non signé de 2 octets.
long
Type de données : entier signé de 4 octets.
DWORD
Type de données : entier non signé de 4 octets.
float
Type de données à virgule flottante de 4 octets.
double
Type de données à virgule flottante de 8 octets.
BOOL
Type de données booléen de 4 octets.
Variantes :
UNSIGNED LONG
Identique à DWORD.
VOID
Signifie "Aucune valeur renvoyée".
Types de pointeurs :
LPBYTE
Pointeur vers un BYTE.
LPINT
Pointeur vers un int.
LPWORD
Pointeur vers un MOT.
LPLONG
Pointeur vers un LONG.
LPDWORD
Pointeur vers un DWORD.
LPFLOAT
Pointeur vers un flottant (en FAR).
LPDOUBLE
Pointeur vers un double (en double FAR).
LPSTR
Pointeur vers un caractère.
Tous les pointeurs sont des pointeurs 32 bits et EasyLanguage traite chacun d'entre eux de la même manière.
Il est également très important de se rappeler que toutes les valeurs dans EasyLanguage sont des flottants, sauf pour Open, High, Low et Close, qui sont des entiers. Pour contrôler ces prix, vous devez envoyer la fonction d'échelle de prix au symbole qui compose le graphique.
Par exemple, si un titre a une échelle de prix de 1/1000 et que le prix final était de 105,125, ce prix sera envoyé à la DLL sous la forme 105125. Pour que la DLL sache comment lire ce prix, vous devez envoyer la valeur dans le mot réservé PriceScale, qui dans ce cas renvoie la valeur 1 000.
dans cette ligne les données de type "TDateTime *tim" ne sont pas supportées par Omega.
Tout a un sens maintenant. Pour contourner ce problème, essayez de spécifier le type double dans Omega au lieu de TDateTime - c'est-à-dire int TikKot(char, double, double, double) ;
En fait, ces types sont facilement interchangeables et utilisent 8 octets de mémoire chacun. Bonne chance !
Pourquoi ? C'est dans la description :
Pointeur vers un caractère.
C'est la même chose. Y a-t-il des exemples pour ces types de variables dans la documentation d'Omega ? Vous devez y chercher soigneusement des variantes similaires. Bonne chance !
Ceci provient de l'aide DLL :
Note : Les DLL 32-bit utilisent des fonctions exportées sensibles à la casse déclarées à l'aide de _cdecl, _stdcall , ou fastcall. Pour que les DLL soient compatibles avec EasyLanguage, les fonctions exportées doivent être créées en utilisant toutes les majuscules et être déclarées comme _stdcall. Ces fonctions exportées doivent être répertoriées dans la section EXPORTS du fichier .DEF de la DLL. L'utilisation de "_declspec (dllexport)" à partir du prototype de la fonction ne suffit pas à EasyLanguage pour localiser les fonctions exportées d'une DLL.
Il est donc dit ici qu'Omega ne fonctionne qu'avec les fonctions qui sont écrites en GRANDES lettres. J'ai vérifié comment c'est écrit dans une autre DLL, vraiment seulement en GRANDES LETTRES.
Si vous modifiez l'appel des fonctions (noms en lettres majuscules), nous pourrons effectuer d'autres tests.
Personnellement, je suis très intéressé par votre produit et ma demande à vous est d'adapter la DLL à Omega. J'espère que ça va marcher... Bonne chance !
Si ce n'est pas le cas, postez ici, s'il vous plaît, je vais devoir travailler sur une autre solution d'automatisation des échanges. Merci.
Personnellement, je suis très intéressé par votre produit et ma demande à vous est d'adapter la DLL à Omega. J'espère que ça va marcher... Bonne chance !
J'ai fait une variante avec de grandes lettres de fonction et je l'ai envoyée à votre boîte de réception. Bonne chance !