Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1012

 
Alexey Viktorov:

Notez dans ce post les mots "Tous les terminaux ont des dossiers partagés".


Cherchez des informations sur la manière de procéder et c'est parti... C'est ce qu'on appelle la liaison par dossier.

Donc tu peux faire ça. Ecrivez une bibliothèque et accédez à cette bibliothèque à partir de différents terminaux et ils peuvent échanger des données ou connecter un robot à 2m de terminaux. J'ai lu un peu sur les liens jusqu'à ce que je comprenne. Peut-être y a-t-il un sujet où vous pouvez demander plus à ce sujet ?

 
Seric29:

Donc tu peux faire ça. Ecrivez une bibliothèque et accédez à cette bibliothèque à partir de différents terminaux et ils peuvent échanger des données ou connecter un robot à 2 terminaux. J'ai lu un peu sur les liens jusqu'à ce que je comprenne. Peut-être y a-t-il un sujet où vous pouvez demander plus à ce sujet ?

Je n'ai pas vu le sujet sur le forum, mais après avoir regardé quelques instructions, je trouve celle-ci plus compréhensible. Je l'ai essayé, ça a marché, mais je ne vois pas la nécessité de l'utiliser pour le moment. Bien que je pense que ce serait une bonne idée de combiner l'historique de tous les terminaux dans un seul dossier.

 
Alexey Viktorov:

Je n'ai pas rencontré ce fil sur le forum, mais après avoir regardé quelques instructions, je trouve celle-ci plus compréhensible. Je l'ai essayé et ça marche, mais je n'en vois pas encore la nécessité. Bien que je pense que réunir l'historique de tous les terminaux dans un seul dossier serait bien.

Merci pour le conseil. J'ai utilisé un lien dur



pour cela, les terminaux doivent être installés dans le même volume.

j'ai stupidement ajouté une unité puis j'ai fusionné les fichiers ex4 et mq4, comme résultat tout fonctionne des deux côtés maintenant vous pouvez écrire des bibliothèques partagées et les utiliser. Je ne sais pas si c'est fiable, mais j'ai lancé le robot sur les comptes des graphiques. Quand je compile le code les fichiers changent de 2 côtés, mais mettent à jour les calculs d'un côté, si je laisse le robot travailler en mode online j'ai besoin que le programme soit le même et complété et compilé comme il fonctionnera inconnu, peut-être quelqu'un a la possibilité de vérifier, je ne peux pas encore vérifier.

 
Seric29:

Merci pour le conseil. J'ai utilisé un lien dur



pour cela, les terminaux doivent être installés dans le même volume.

j'ai stupidement ajouté une unité puis j'ai fusionné les fichiers ex4 et mq4, au final tout fonctionne des deux côtés maintenant vous pouvez écrire des bibliothèques partagées et les utiliser. Je ne sais pas si c'est fiable, mais j'ai lancé le robot sur les comptes des graphiques. Lorsque je compile les fichiers de code changer sur 2 côtés, mais mettre à jour les calculs d'un côté, si je laisse le robot à travailler en mode en ligne j'ai besoin du programme pour être le même et complété et compilé comme va travailler est inconnu, peut-être quelqu'un a la possibilité de vérifier, je ne peux pas tester encore.

Il y a donc un dossier magique directement dans le compilateur, ou pas adapté ?


 
Seric29:

Merci pour le conseil. J'ai utilisé un lien dur

Pourquoi créer des liens vers des fichiers spécifiques ? Ne serait-il pas préférable de créer des liens symboliques vers des dossiers et tous les fichiers de ce dossier seront disponibles dans les terminaux où ces liens sont créés ?

C'est une bonne idée :

Dans l'image 00.png, à gauche se trouve le dossier lui-même, et à droite un lien depuis un terminal.

Dans l'image 11.png également, un lien d'un autre terminal

Et sur le contenu de l'image 22.png, à gauche se trouve un dossier lui-même, et à droite le contenu d'un lien.

Dossiers :
00.png  102 kb
11.png  103 kb
22.png  118 kb
 
Vitaly Muzichenko:

Alors, y a-t-il un dossier magique dans le compilateur, ou n'est-il pas adapté ?


Je demande s'il est possible de le faire et si cela fonctionnera de manière fiable. La réponse était non. On m'a conseillé un programme et, bien sûr, j'ai essayé, mais ça n'a pas marché. Puis a donné le conseil de la ligne de commande, j'ai passé 3 heures à jouer autour et obtenu quelque chose, mais je ne sais pas comment il n'est pas fiable d'abord met à jour la date du fichier et le contenu, et puis a commencé à changer seulement le contenu et la date n'a pas changé, c'est un peu étrange. Où puis-je lire des informations sur votre méthode ? Quelle est sa fiabilité ? Les robots seront-ils capables de communiquer entre eux en ligne ?

 
Alexey Viktorov:

Pourquoi créer des liens vers des fichiers spécifiques ? Ne serait-il pas mieux de faire des liens symboliques vers des dossiers et tous les fichiers de ce dossier seront disponibles dans les terminaux où ces liens sont faits ?

C'est remarquable comme ça :

Dans la capture d'écran 00.png, à gauche se trouve le dossier lui-même et à droite un lien depuis un terminal.

L'image 11.png comporte également un lien depuis un autre terminal

Et sur l'image 22.png il y a un contenu, sur le côté gauche un dossier lui-même, et sur le côté droit un lien vers le contenu.

Je l'ai vu, la synchronisation via TotalComander, mais si je comprends bien, cela ne transfère que des fichiers (par exemple des photos), et si nous parlons du fait qu'il y a un fichier texte et qu'il change, changera-t-il si j'ajoute quelque chose au fichier ? Quelle est la fiabilité de la communication de TotalComander et les robots peuvent-ils communiquer entre eux en ligne ou est-ce seulement pour écrire du code ?

 
Seric29:

J'ai vu cela, la synchronisation via TotalComander, mais si je comprends bien, cela ne transfère que des fichiers (comme des images), mais si nous parlons d'un fichier texte et qu'il est modifié, sera-t-il modifié si j'ajoute quelque chose au fichier ? Quelle est la fiabilité de la communication via TotalComander ? Les robots pourront-ils communiquer entre eux en ligne ou cela ne servira-t-il qu'à écrire du code ?

TotalComander permet uniquement d'afficher le contenu de deux dossiers. Il m'est plus familier que l'Explorateur Windows. J'ai aussi fait tous les liens symboliques sur la ligne de commande. Seulement j'ai utilisé /D au lieu de /H et pas un fichier, mais un dossier. Et ce lien provenant de différents endroits a accès au même fichier.

Bien que, je me demandais juste si le fichier sera disponible lorsqu'il sera utilisé par un terminal... Mieux vaut contacter Segei Tarbolin en personne. D'après ce que je comprends, il l'utilise et le sait probablement très bien.

 
Alexey Viktorov:

TotalComander sert uniquement à afficher le contenu de deux dossiers. Il m'est également plus familier que l'Explorateur Windows. Et j'ai fait tous les liens symboliques de la même manière à partir de la ligne de commande. Seulement j'ai utilisé /D au lieu de /H et pas un fichier, mais un dossier. Et ce lien provenant de différents endroits a accès au même fichier.

Bien que, je viens de penser, mais si le fichier sera disponible quand il est utilisé par un terminal ... Mieux vaut écrire dans le Segei Tarbolin personnel. D'après ce que je comprends, il l'utilise et le sait probablement très bien.

J'ai joué avec le Total Commander, en général, comme je le comprends, puis il n'y a que la synchronisation au moment d'appuyer sur le bouton se produit et par la touche console H contenu du fichier change en temps réel, mais quand vous cliquez sur compiler sur les calculs d'origine que le robot a fait par référence ne sont pas modifiés, je dois appuyer sur le bouton de compilation et le lien, mais si le robot est le même et ne pas toucher le code fonctionne, ne sais pas si elle fonctionnera en ligne, pas encore possible de tester peut apporter des paramètres inachevés programme. Mais puisque les fichiers changent la propriété, je pense que cela devrait fonctionner. En général, ici ou par la console ou le gars a suggéré quelque chose ci-dessus, mais je n'ai pas trouvé l'information normale. Je vais écrire à l'homme que vous avez conseillé.

 

Bonjour à tous, pourriez-vous me dire comment réécrire correctement la fonction de MQL4 à MQL5 :

//+------------------------------------------------------------------+
//Nombre de Sell_Order fermés sur la dernière barre.
int Anz_g_Sell_Order()
{
int count = 0 ;
for(int i=OrdersHistoryTotal()-1 ; i>=0 ; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) == true
&& OrderSymbol() == Symbol() && OrderType() == OP_SELL
&& OrderMagicNumber() == Magic_Nr
&& OrderCloseTime() > iTime(NULL,PERIOD_M15,0))
{
compte++ ;
}
}
return(count) ;
}
//+---------------------------------------------------------------------+

Je l'ai réécrit, mais il ne fonctionne pas pour une raison quelconque, où est l'erreur ? :

//+------------------------------------------------------------------+
//Nombre de Sell_Order fermés sur la dernière mesure
int Anzahl_g_Sell_Order()
{
int count = 0 ;
if(HistorySelect(0,INT_MAX))
{
for(int i=HistoryDealsTotal()-1;i>=0;i--)
{
ulong ticket = HistoryDealGetTicket(i) ;
si(HistoryDealGetString(ticket,DEAL_SYMBOL) == _Symbol
&& HistoryDealGetInteger(ticket,DEAL_TYPE) == DEAL_TYPE_SELL
&& HistoryDealGetInteger(ticket,DEAL_ENTRY ) == DEAL_ENTRY_OUT
&& DEAL_ENTRY_OUT > iTime(NULL,PERIOD_M15,0))
{
compte++ ;
}
}
}
return(count) ;
}
//+---------------------------------------------------------------------+