Coup d'envoi du trade par lotVBScript
Résultats de 1 é 7 sur 7

Sujet : Coup d'envoi du trade par lotVBScript

  1. #1
    Est-il possible de d?marrer un commerce via un script batch ou vbs? J'ai une appliion externe qui ne s'interface pas avec MetaTrader mais je voudrais automatiser un syst?me de trading bas? sur ses signaux.

    FYI: Ce n'est pas un syst?me bas? sur le Web auquel j'ai acc?s de toute fa?on (c'est-?-dire que je ne peux pas cr?er une appliion dll ou component pour communiquer avec).

  2. #2
    Cela devrait ?tre possible si les deux appliions (MT4 sys externe) se trouvent sur le m?me PC. Votre syst?me externe doit placer un fichier dans le dossier MT4expertsfiles. Vous cr?ez un EA dans MT4 qui recherche ce fichier. S'il le trouve, lisez le fichier et traitez les commandes. Une fois termin?, l'EA supprime le fichier et balaye ? nouveau toutes les minutes pour un autre fichier. gl,

  3. #3
    Cela ? l'air d'un bon plan. Je suppose qu'il serait simplement plus facile de faire cr?er un fichier de test de 0 octet par trade.txt dans mon syst?me externe et quand l'EA verrait ce fichier, il commencerait une transaction. Y a-t-il des articles ou de la documentation qui montrent comment assigner une variable ? partir d'un fichier externe comme ?a?

  4. #4
    Je regarde les fonctions du fichier kernel32. Est-ce une d?claration valide: string ReadFile (chemin de cha?ne) {int handle = _lopen (chemin, OF_READ); if (handlelt; 0) {variable = 0/0 pour ne pas ?changer} else {variable = 1/1 pour le commerce}

  5. #5
    Donc, j'ai termin? un script qui fera ce que je cherche ? faire, sauf surveiller les changements. Comment ajouter l'?l?ment de temps, afin que ce script s'ex?cute continuellement? De plus, je ne veux pas qu'il soit n?goci? lorsqu'il y a actuellement un ?change en cours. Code ins?r? #include lt; stdlib.mqhgt; #include lt; WinUser32.mqhgt; int filetrade;/lopen #define OF_READ 0 #define OF_WRITE 1 #define OF_READWRITE 2 #define OF_SHARE_COMPAT 3 #define OF_SHARE_DENY_NONE 4 #define OF_SHARE_DENY_READ 5 #define OF_SHARE_DENY_WRITE 6 #define OF_SHARE_EXCLUSIVE 7 #import kernel32.dll int _lopen (chemin de cha?ne, int de); int _lcreat (chemin de cha?ne, int attrib); int _llseek (int handle, int offset, int origine); int _lread (int handle, tampon de cha?ne, int octets); int _lwrite (int handle, string buffer, int octets); int _lclose (int handle); #import/ --------------------------------------------- --------------------- /| fonction de d?marrage du programme de script |/ ----------------------------------------------- ------------------- cha?ne start (cha?ne de caract?res) {//---- int handle = _lopen (C: trade.txt, OF_READ); if (handlegt; 0) {if (MessageBox (Voulez-vous vraiment ACHETER 1.00 Symbol () au prix ASK?, Script, MB_YESNO | MB_ICONQUESTION)! = IDYES) return (1); ticket int = OrderSend (Symbol (), OP_BUY, 1.0, Ask, 3,0,0, commentaire d'expert, 255,0, CLR_NONE); if (ticketlt; 1) {int erreur = GetLastError (); Imprimer (Erreur =, ErrorDescription (erreur)); revenir; } OrderPrint (); } else {Imprimer (Erreur lors de l'ouverture du fichier, chemin); revenir (); } int r?sultat = _llseek (handle, 0,0); r?sultat = _lclose (handle); retour (0); }

  6. #6
    J'ai trouv? comment corriger le script ne fermant pas le fichier, bien que je ne comprenne pas compl?tement la logique. Avec le recul je suppose que cela a du sens car tant que le fichier peut ?tre ouvert, la valeur de handle ne serait pas 0. Je devais placer l'instruction close directement apr?s l'instruction open: Inserted Code int total = OrdersTotal (); int handle = _lopen (filetrade, OF_READ); int fclose = _lclose (handle); if (handlegt; 0) .....

  7. #7
    Je suspecte que si je cours ceci comme un EA qu'il v?rifierait continuellement le dossier (tant qu'il n'y a pas des m?tiers ouverts). est-ce une supposition correcte? En outre, pour une raison quelconque, le script ne ferme pas le fichier. Voici mon script mis ? jour: Code ins?r? #include lt; stdlib.mqhgt; #include lt; WinUser32.mqhgt; cha?ne externe filetrade = C: \ trade.txt;/lopen #define OF_READ 0 #import kernel32.dll int _lopen (chemin de cha?ne, int de); int _llseek (int handle, int offset, int origine); int _lclose (int handle); #import/ --------------------------------------------- --------------------- /| fonction de d?marrage du programme de script |/ ----------------------------------------------- ------------------- chaine start (chaine de chemin) {//---- int handle = _lopen (filetrade, OF_READ); int r?sultat = _llseek (handle, 0,0); int total = OrdersTotal (); if (handlegt; 0) {if (totallt; 1) {if (MessageBox (Voulez-vous vraiment ACHETER 1.00 Symbol () au prix ASK?, Script, MB_YESNO | MB_ICONQUESTION)! = IDYES) return (1); ticket int = OrderSend (Symbol (), OP_BUY, 1.0, Ask, 3,0,0, commentaire d'expert, 255,0, CLR_NONE); if (ticketlt; 1) {int erreur = GetLastError (); Imprimer (Erreur =, ErrorDescription (erreur)); revenir; } OrderPrint (); r?sultat = _lclose (handle); }} else {Imprimer (Erreur lors de l'ouverture du fichier, chemin); r?sultat = _lclose (handle); revenir (); } r?sultat = _lclose (handle); retour (0); }

Régles des messages

  • Vous ne pouvez pas cr?er de sujets
  • Vous ne pouvez pas r?pondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas ?diter vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé
Le site d'sundytrading utilise des cookies
Le site d'sundytrading utilise des cookies pour vous assurer la meilleure expérience sur notre site ; certains sont déjà effectifs. Vous pouvez consulter plus de détails sur leurs usages ici. Veuillez cliquer sur le bouton à droite pour accepter nos cookies. Si vous continuez à utiliser le site internet d???sundytrading, nous considérerons que vous acceptez nos cookies.