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

 

Bon après-midi. Je ne peux pas lire les données d'un fichier et les réécrire immédiatement. Si je décommente un fragment de code avec des boucles et MathRand(), le fichier est mis en bouillie comme il se doit. Mais si les lignes sont laissées commentées (il y a déjà du désordre dans le fichier), alors la prochaine fois que j'activerai/désactiverai le Conseiller Expert, le fichier contiendra des zéros. Les tableaux de lecture-écriture sont le double ROM1[128][128] et le double ROM2[3][128]. Les tableaux ne sont modifiés nulle part ailleurs dans le code, ils sont seulement lus. Voici un morceau de code :

int init()                                     
   {
   Print ("Сработала ф-ия init"); // Сообщение
   Handle=FileOpen("Neuro",FILE_BIN|FILE_READ|FILE_WRITE);// Открытие файла на чтение и запись   
   FileSeek(Handle, 0, SEEK_SET); //указатель на начало файла
   FileReadArray(Handle, ROM1);
   FileSeek(Handle, 131073, SEEK_SET); //указатель на конец первого массива
   FileReadArray(Handle, ROM2);

/*
   for(i=0; i<128; i++) //заполнение памяти первого слоя кашей
      {
      for(k=0; k<128; k++)
         {
         ROM1[i][k] = (MathRand()-16383)/3200;
         }
      }
   for(i=0; i<3; i++) //заполнение памяти второго слоя кашей
      {
      for(k=0; k<128; k++)
         {
         ROM1[i][k] = (MathRand()-16383)/3200;
         }
      }
*/         
   return(0);                                       
   }   
//--------------------------------------------------------------------
int deinit()                                   
   {
   FileSeek(Handle, 0, SEEK_SET);
   FileWriteArray(Handle, ROM1);
   FileSeek(Handle, 131073, SEEK_SET);
   FileWriteArray(Handle, ROM2);
   FileClose(Handle);
   return(0);                                     
   }

Veuillez m'aider à comprendre. Merci.
 
Bonjour, pourriez-vous me dire comment écrire dans le code EA
condition pour rechercher un signal

Par exemple :
Il y a un ordre sur le marché avec le magique 565 ouvert à 13:00
Dans l'EA, il y a une condition pour que l'ordre soit ouvert.
dans le marché un ordre avec un numéro magique de 565, comment puis-je dans mon Expert Advisor retarder la recherche du signal d'une unité.
La recherche d'un signal doit commencer à 14 heures.

Je vois actuellement une situation où à 13h00, un ordre avec Magic 565 est ouvert.
et la chouette ouvre sa commande à 13:00:02.

deux ordres identiques.


Merci.

 
var58:
Bonjour, pourriez-vous me dire comment écrire dans le code de l'EA
condition pour rechercher un signal

Par exemple :
Il y a un ordre sur le marché avec le magique 565 ouvert à 13:00
Dans l'EA, il y a une condition pour que l'ordre soit ouvert.
dans le marché un ordre avec un numéro magique de 565, comment puis-je dans mon Expert Advisor retarder la recherche du signal d'une unité.
La recherche d'un signal doit commencer à 14 heures.

Je vois actuellement une situation où à 13h00, un ordre avec Magic 565 est ouvert.
et la chouette ouvre sa commande à 13:00:02.

deux ordres identiques.


Merci.

Vous pouvez rechercher un signal quand vous le souhaitez, mais l'ouverture d'une position doit être programmée.

Regardez le temps d'ouverture d'une position avec magic 565 et regardez le temps actuel. Si l'heure actuelle est plus longue que l'heure d'ouverture d'une position avec magic 565 du nombre de minutes spécifié, vous pouvez alors ouvrir une position.

 
Artyom Trishkin:

Vous pouvez rechercher un signal quand vous le souhaitez, mais vous devez permettre l'ouverture d'une position dans le temps.

Voir le temps d'ouverture d'une position avec magic 565 et voir le temps actuel. Si l'heure actuelle est supérieure d'un certain nombre de minutes à l'heure d'ouverture de Magik 565, alors la position peut être ouverte.


Merci beaucoup. A quoi cela ressemble-t-il dans le code ?
 
Bon après-midi. Je ne peux pas lire les données d'un fichier et les réécrire immédiatement. Si je décommente un fragment de code avec des boucles et MathRand(), le fichier est mis en bouillie comme il se doit. Mais si les lignes sont laissées commentées (il y a déjà du désordre dans le fichier), alors la prochaine fois que j'activerai/désactiverai le conseiller expert, le fichier contiendra des zéros. Les tableaux de lecture-écriture sont le double ROM1[128][128] et le double ROM2[3][128]. Les tableaux ne sont modifiés nulle part ailleurs dans le code, ils sont seulement lus. Voici un peu de code :

Un peu de tout ça. La fonction ne lira pas un tableau bidimensionnel double, mais l'écrira correctement.

J'ai fait une boucle pour la lecture élément par élément. Peut-être que ça peut être utile à quelqu'un.

{
FileSeek(Handle, n,  SEEK_SET); //изменение позиции файлового курсора        
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}
 
var58:

Merci beaucoup. A quoi cela ressemble-t-il en code ?

Et il ne s'agit pas d'écriture de code libre, mais d'une aide pour ceux qui essaient de les écrire eux-mêmes, mais n'y arrivent pas.

Montrez-nous ce que vous ne pouvez pas faire dans votre code - nous vous aiderons.

 
Tamul:

J'y ai travaillé un peu. La fonction double du tableau à deux dimensions ne veut pas lire, alors qu'elle écrit bien.

J'ai fait une lecture boucle par boucle. Peut-être que quelqu'un en aura besoin.

{
FileSeek(Handle, n,  SEEK_SET); //изменение позиции файлового курсора        
Neuron[k][i].rom[l] = FileReadDouble(Handle, DOUBLE_VALUE); //загрузка из файла
n=n+8;
}

Pourquoi devrais-je offrir de telles béquilles aux gens, juste parce que je n'ai pas réussi à faire face à la tâche moi-même ?

Pour lire un tableau bidimensionnel à partir d'un fichier, il faut que ce dernier soit un tableau bidimensionnel préparé pour cela.

Si je me souviens bien de cet exemple de code, je n'ai pas vu que le fichier est fermé après avoir été écrit. Un fichier vide est créé et des données y sont écrites, mais ce fichier rempli est stocké dans la mémoire principale et les données du fichier ne peuvent être lues que sur le disque. En conséquence, le fichier semble avoir été écrit mais physiquement il n'est pas sur le disque... Pour enregistrer les données sur le disque, il faut soit fermer le fichier, soit l'enregistrer de force sur le disque.

 
Artyom Trishkin:

Et il ne s'agit pas d'écriture de code libre, mais d'une aide pour ceux qui essaient de les écrire eux-mêmes, mais n'y arrivent pas.

Montrez-nous ce que vous ne pouvez pas faire dans votre code et nous vous aiderons.


merci
 

Bonjour, veuillez écrire un exemple simple (très simple) en mql4. Je suis un débutant complet.

1) ouvrir un ordre en attente lorsqu'il atteint une valeur quelconque (c'est-à-dire si le prix est de 0,7777, alors ouvrir un ordre en attente)

2) Fermez un ordre (au marché) lorsqu'il a atteint une valeur quelconque (c'est-à-dire que si le prix est de 0,6666, alors fermez l'ordre).

Je ne peux même pas fermer une commande en utilisant un numéro de commande unique. Je veux essayer de modifier l'état actuel de mon robot de trading, mais je n'y comprends rien.

J'ai essayé de lire un tutoriel sur ce site, mais sans résultat (je suis peut-être trop bête), et les exemples élémentaires ne sont pas sur Internet. Merci d'avance

 
maxon777:

Bonjour, veuillez écrire un exemple simple (très simple) en mql4. Je suis un débutant complet.

1) ouvrir un ordre en attente lorsqu'il atteint une valeur quelconque (c'est-à-dire si le prix est de 0,7777, alors ouvrir un ordre en attente)

2) Fermez un ordre (au marché) lorsqu'il a atteint une valeur quelconque (c'est-à-dire que si le prix est de 0,6666, alors fermez l'ordre).

Je ne peux même pas fermer une commande en utilisant un numéro de commande unique. Je veux essayer de modifier l'état actuel de mon robot de trading, mais je n'y comprends rien.

J'ai essayé de lire un tutoriel sur ce site, mais sans résultat (je suis peut-être trop bête), et les exemples élémentaires ne sont pas sur Internet. Merci d'avance


Vous devriez rechercher les Expert Advisors à ordre suspendu dans CodeBase et voir comment le code est écrit.
Raison: