[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 336

 
Elenn:
.... La question est de savoir comment organiser les tableaux. Si nous déclarons tous les tableaux au niveau global, cela prendra trop de place en mémoire. De plus, cette EA sera installée sur chacune des 12 paires, ce qui représente un gaspillage de mémoire très improductif. Si seulement il était possible de supprimer les tableaux une fois qu'ils ne sont plus nécessaires, mais comment le faire, surtout à partir du niveau global ?


Si vous disposez du code source, vous pouvez fusionner les trois fonctions en une seule et y déclarer des tableaux.

Après avoir quitté cette fonction, la mémoire sera libérée automatiquement.

 

Je n'arrive pas à comprendre pourquoi le code ne fonctionne pas correctement sur la 4.

La tâche consiste à fermer toutes les positions à une certaine heure de la journée et à supprimer les ordres en attente placés par l'EA. Le problème est qu'une commande sur deux n'est pas touchée. Il n'y a pas de modèle. Je ne comprends pas quel est le problème. S'il vous plaît, dites-moi, qu'est-ce que je fais mal ? Merci d'avance pour la réponse !

   if (!ClosedByTime)
      if (CurrentHour==CloseTradesTime-1 && TimeMinute(TimeCurrent())>55)
            {
            ClosedByTime=true;
            for (n=0;n<=OrdersTotal()-1;n++)
               {
               OrderSelect(n,SELECT_BY_POS);
               if (OrderMagicNumber()==Magic)
                  { 
                  if (OrderType()==0 || OrderType()==1){
                     if (OrderType()==0)
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),1);
                        Alert("BUY position has been closed due to tradetime timeout!");
                        }
                       else
                        {
                        OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),1);
                        Alert("SELL position has been closed due to tradetime timeout!");
                        }}
                     else {OrderDelete(OrderTicket());Alert("Pending order (type "+OrderType()+") has been canceled due to tradetime timeout!");}
                  }
               
               }
            }

P.S. S'il vous plaît, ne répondez pas par un "vous êtes un tel conteur..." :)

 
for(n=OrdersTotal()-1;n>=0;n--)
 

Bonjour à tous, comment puis-je gérer les propriétés de la fenêtre depuis un indicateur, je suis intéressé par les paramètres marqués par des flèches, quelles fonctions utiliser pour cela ?

 
sanches83:

Désolé d'être si pressant, je voulais juste savoir si ce n'est vraiment pas réel ou si c'est juste un sujet perdu.
Je ne l'ai pas utilisé, mais il y a un fichier "DDE-Sample.xls" inclus avec le terminal, il suffit d'activer le serveur dans le terminal. Essayez, ça marchera peut-être. Ou peut-être la tâche sera-t-elle formulée différemment. Ou peut-être la tâche sera-t-elle formulée différemment ? Par l'API ? Expérimentez avec la DDE.
 
FAQ:

Ahhhhhhhh je vais tomber de ma chaise maintenant... Je n'aurais pas dû être aussi stupide.) Je devrais travailler moins la nuit...

Merci.

 
Si votre conseiller expert est très gourmand en code... La vitesse de traitement du code - la vitesse de prise de décision dépend-elle des performances de l'ordinateur ou même malgré un ordinateur très puissant, la vitesse de traitement sera limitée par "la limite de vitesse du langage MKL4" (je ne sais pas comment le formuler correctement).
 

Voici le code

int handle=FileOpen("1all.txt",FILE_WRITE|FILE_CSV,"\t");
  if(handle<0) {Print("FAQ"); return(0);}

  FileWrite(handle,"OrderTicket","OrderOpenPrice","OrderOpenTime","OrderSymbol","OrderLots");
  int total=OrdersHistoryTotal();

  for(int pos=0;pos<total;pos++)
    {
     if(OrderSelect(pos,SELECT_BY_POS,MODE_HISTORY)==false) continue;
     FileWrite(handle,OrderTicket(),OrderOpenPrice(),OrderOpenTime(),OrderSymbol(),OrderLots());
    }
  FileClose(handle);
  Print("done");

Il ne donne pas d'erreur. Il semble tout écrire, mais je ne sais pas où il enregistre. J'ai cherché le fichier 1all.txt sur mon ordinateur, mais je ne l'ai pas trouvé. Où va-t-il ?

 
Shniperson:
Si votre conseiller expert est très exigeant en termes de code... La vitesse de traitement du code - la vitesse de prise de décision dépend-elle des performances de l'ordinateur ou même malgré un ordinateur très puissant, la vitesse de traitement sera limitée par "la limite de vitesse du langage MKL4" (je ne sais pas comment le formuler correctement).

Il n'y a pas de problèmes particuliers pour le code optimal. Une courbe peut être longue de 10 lignes et accrocher le système.
 
Alp:

Voici le code

Il ne donne pas d'erreur. Il semble tout écrire, mais je ne sais pas où il enregistre. J'ai cherché le fichier 1all.txt sur mon ordinateur, mais je ne l'ai pas trouvé. Où va-t-il ?


Quel système d'exploitation ? Sur quel lecteur se trouve le terminal ?

Par défaut.

\Les experts \NFiles

\tester\files