En fait, il en est un (officiel) MT4 Serveur de l'API. Il se compose d'une .le fichier dll avec un exemple de code en C++ et Delphi.
L' .dll expose les fonctions de connexion, de passer des commandes, obtenir votre bilan, etc.
Vous n'avez pas besoin de MetaTrader installé, mais seulement que .dll-fichier.
Malheureusement, la documentation de l'API est pratiquement inexistant. Parfois, le code source n'est commenté en russe.
Apparemment, une partie de la documentation est disponible dans un soutien spécial de la zone sur MetaQuote site internet, mais cela nécessite un login et vous obtiendrez seulement si vous avez acheté une licence serveur MT4 (je n'en ai pas).
Maintenant pour répondre à votre question initiale: Si vous voulez à la rétro-ingénierie du protocole que vous avez certainement besoin de démonter le binaire et ont un oeil sur le code. La communication est brouillée par un inconnu algorithme.
Ce que j'ai trouvé jusqu'à présent:
Bien qu'ils soient d'utiliser le port 443 pour la communication, ils ne sont pas à l'aide de SSL ou même en HTTPS. Si vous regardez capturé le trafic on dirait parfois qu'ils sont à l'aide de 16 octets taille de bloc sans cbc. (Vous pouvez facilement repérer les modèles qui répètent toutes les 16 octets avec de légères différences).
Le Transport est tout simplement TCP, vous pouvez diffuser de multiples commandes avec une connexion jusqu'à ce que vous avez terminé.
Commandes (avant le chiffrement) sont lisibles ASCII-textes fini avec un saut de ligne (\n
)
La connexion est correctement terminée par l'envoi d' QUIT\n
Le premier octet après l'ouverture de la connexion spécifie le mode de protocole. Les valeurs possibles sont (au moins) W
, Z
pour le texte clair ou 0x0
pour le transport chiffré.
Début d'une connexion avec W
lance le "Service Web"-mode. Vous pouvez recevoir au moins un devis et une liste de symboles avec qui. Vous pouvez facilement essayer avec telnet:
$ telnet 216.93.169.220 443
Essayer 216.93.169.220...
Connecté à 216.93.169.220.
Caractère d'échappement '^]'.
WINFO
MetaTrader Serveur 4.00 construire 391
Ava Financial Ltd.
QUOTES-EURUSD,EURGBP,
jusqu'EURUSD 1.4105 1.4106 2011.03.24 02:02:49
en bas de l'EURGBP 0.8673 0.8675 2011.03.24 02:02:41
2011.03.24 02:02:49
LIST
CONFIRMLISTS-EURUSDEURGBPAms.AEGNAms.AHLNAms.AKZOAms.ASMLAms.BAMNAms.BOSNAms.CORAms.DSMNAms.ELSNAms.FUGRcAms.HEINAms.INGAms.ISPAAms.KPNAms.PHGAms.RANDAms.RDSaAms.SBMOAms.TNTAms.TOM2Ams.UNcAms.WEHAAms.WLSNcCBOT.WFft.BMWGFft.VOWGHel.NOK1VLSE.AALLSE.ABFLSE.ADMLLSE.AMECLSE.ANTOLSE.AUTNLSE.AVLSE.AZNLSE.BAESLSE.BALFLSE.BARCLSE.BATSLSE.BAYLSE.BGLSE.BLTLSE.BNZLLSE.BPLSE.BSYLSE.BTLSE.CCLLSE.CNALSE.CNELSE.COBLSE.CPGLSE.CPILSE.CWLSE.DGELSE.ENRCLSE.EXPNLSE.FRCLLSE.FRESLSE.GFSLSE.GSKLSE.HOMELSE.HSBALSE.IAPLSE.IHGLSE.IIILSE.IMTLSE.IPRLSE.ISALSE.ISYSLSE.ITRKLSE.JMATLSE.KAZLSE.KGFLSE.LGENLSE.LMILSE.LSELSE.MKSLSE.MRWLSE.NGLSE.NXTLSE.OMLLSE.PFCLSE.PNNLSE.PRULSE.PSONLSE.RBLSE.RDSaLSE.RDSbLSE.RELLSE.REXLSE.RIOLSE.RRLSE.RRSLSE.RSALSE.SABLSE.SBRYLSE.SGELSE.SHPLSE.SLLSE.SMINLSE.SNLSE.SRPLSE.SSELSE.STANLSE.SVTLSE.TCGLSE.TLWLSE.TSCOLSE.TTLSE.ULVRLSE.UULSE.VEDLSE.VODLSE.WOSLSE.WPPLSE.XTAMad.ABEMad.ABGMad.ACSMad.ACXMad.ANAMad.BB
QUIT
Connection closed by foreign host.
Le texte en gras est ce que j'ai tapé dans la session telnet. Z
au lieu de W
travaille également pour le INFO
commande.
Notez que vous avez à la fin de la liste des symboles pour l' QUOTES
commande avec une virgule.
L' QUOTES
commande semble être pas disponibles dans les versions antérieures à 391 (trouvé beaucoup de serveurs exécutant construire 344).
Je sais à propos de l' QUOTES
commande (et le W
) directement à partir de la documentation, vu l' INFO
commande en sniffant le client MT4 et a découvert LIST
juste en essayant de certains mots-clés. Laissez-moi savoir si vous trouvez plus. Il devrait y avoir au moins une commande pour recevoir les barres, pour les graphiques.
Je sais que ce n'est pas une bonne réponse à votre question, mais je pense que cette info est pertinente pour beaucoup de gens, pour un point de départ, et il a trop de texte pour un commentaire.