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

 
trader781:

1) le compilateur se plaindra si la deuxième dimension n'est pas définie, le message "spécifier le type de classe, paramètres inconnus" apparaîtra immédiatement.

2) alors le bot mourra immédiatement au démarrage avec "critical error array out of range".

3) définirint count1=-1; puis parcourir la boucle. Qu'est-ce qui ne va pas ici ?

Regardez les réponses de temps en temps : 1 et 2 et 3 et ...

Vous faites la même chose depuis plus d'une semaine et cela empire à chaque fois, bien qu'on vous ait déjà donné une réponse et signalé l'erreur. Dans le premier code, le compilateur ne s'est pas plaint que la deuxième dimension n'est pas présente, mais dans les suivants, il commence à se plaindre ? Le compilateur est défectueux ? Vous pouvez également ouvrir n'importe quel code avec des tableaux et voir comment ils sont créés et faire la même chose.

 
Artyom Trishkin:

Il n'y a rien de tel. Les MA ont déjà été tellement étudiées, par tant de personnes, qu'il ne reste plus qu'à attendre une nouvelle pensée d'un trader fraîchement ambitieux. Je plaisante.

La vérité, c'est que j'en ai assez de me promener avec une bouteille de MA pendant tant d'années. Ils sont à la traîne. Ils devraient probablement être utilisés dans un autre domaine, mais pas pour capter les flux de tendance.

Il y a toutes sortes de mashkas.

En gros, il n'y a que des pousseurs partout.

 
Victor Nikolaev:

Il y a toutes sortes de mash-ups.

En gros, ce sont tous les champignons qui sont utilisés partout.

Alors, qu'est-ce que je dis ? C'est ce que je dis - sous une forme différente, pas de manière frontale.
 
Vitaly Muzichenko:


Pas encore fait. Je n'aurais pas écrit ici si j'en avais trouvé un semblable chez d'autres. Je pense que vous comprenez vous-même qu'une séquence numérique et une liste de structures ne sont pas identiques, sinon il y aura une autre équation avec un nombre infini d'inconnues.

Artyom Trishkin:

Que pensez-vous de ça ?



#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=0;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1);
         orders[count1-1].Ticket=OrderTicket();
         orders[count1-1].lot=OrderLots();
         orders[count1-1].orderopenprice=OrderOpenPrice();
         orders[count1-1].ordertype=OrderType();
         orders[count1-1].profit=OrderProfit();
         orders[count1-1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
Et pour ce qui est de jeter le code ici - ça m'énerve quand quelqu'un le poste et doit ensuite faire défiler des pages. C'est plus compact comme ça.
 
trader781:
jusqu'à ce que je le fasse. Je n'écrirais pas ici si je n'en avais pas trouvé un semblable chez d'autres.
Veuillez coller le code non pas comme un fichier mais dans un message. C'est ainsi qu'il faut regarder depuis un téléphone portable ?
 
trader781:
jusqu'à ce que je le fasse. Je n'aurais pas écrit ici si j'avais constaté la même chose chez les autres. Je pense que vous comprenez vous-même que les séries de nombres et les listes de structures ne sont pas les mêmes, sinon vous obtiendrez une autre équation avec un nombre infini d'inconnues.
#property strict




struct myorder
{
int    Ticket;
double orderopenprice;
int   ordertype;
double profit;
double stoploss;
double  lot;
};
myorder orders[];




int    i;  
int    Magic=444;    



//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
  
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
CalcOrders();
  
  }
//+------------------------------------------------------------------+
void CalcOrders()
{
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         orders[count1].lot=OrderLots();
         orders[count1].orderopenprice=OrderOpenPrice();
         orders[count1].ordertype=OrderType();
         orders[count1].profit=OrderProfit();
         orders[count1].stoploss=OrderStopLoss();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
Et pour ce qui est de jeter le code ici - ça m'énerve quand quelqu'un le poste et doit ensuite faire défiler des pages. C'est plus compact comme ça.

Faux. Tracez à partir de votre code la taille de votre tableau.

Vous devez réfléchir, au moins un peu. Vous n'avez pas à deviner. Réfléchissez. Chaque étape du programme. Ou attendez-vous que quelqu'un l'écrive pour vous ? Il s'agit d'un service indépendant - ils vous demandent parfois d'écrire des fonctions.

 
Artyom Trishkin:

Faux. Tracez à partir de votre code la taille de votre tableau.

Tu devrais y réfléchir au moins un peu. Vous ne devez pas essayer de deviner. Réfléchissez. Chaque étape du programme. Ou attendez-vous que quelqu'un l'écrive pour vous ? Il s'agit d'un service indépendant - ils vous demandent parfois d'écrire des fonctions.

La façon dont je vois les choses

1) ajouter à zéro si l'ordre est trouvé

2) changer la taille à 0, réserve 10

3) Écrire 0 comme le premier numéro d'ordre, 1 comme le second, etc.

Quant au freelancing, je ne conteste pas qu'ils écrivent n'importe quoi, mais il faut quand même réécrire soi-même. Tu n'as pas besoin d'y aller sans arrêt.
 
trader781:
jusqu'à ce que je le fasse. Je n'aurais pas écrit ici si j'avais constaté la même chose chez les autres. Je pense que vous comprenez vous-même que la séquence numérique et la liste des structures ne sont pas les mêmes, sinon ce sera une autre équation avec un nombre infini d'inconnues.
int count1=-1;

for(i=OrdersTotal()-1; i>=0; i--)
     {
      if((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) && (OrderSymbol()==Symbol())
         && (OrderMagicNumber()==Magic) && (OrderType()<2))
         {
         count1++;
         ArrayResize(orders,count1,10);
         orders[count1].Ticket=OrderTicket();
         }    
     }
     ArraySort(orders,WHOLE_ARRAY,0,MODE_ASCEND);
    
}
  
Et pour ce qui est de jeter le code ici - ça m'énerve quand quelqu'un le poste et doit ensuite faire défiler des pages. La raison en est que le codage n'a aucun effet sur la qualité du projet.

Je n'ai pas trop écrit, j'ai juste enregistré une petite réponse vidéo.

Artem m'aide certainement autant qu'il le peut, mais il ne me donne pas un poisson, juste une canne à pêche).

trader781, regardez parfois la documentation, elle est maintenant pleine à craquer.
 
trader781:

la façon dont je vois les choses

1) ajouter à zéro si un ordre est trouvé

2) changer la taille à 0, réserve 10

3) Inscrivez 0 comme premier numéro d'ordre, 1 comme deuxième numéro d'ordre, etc.

Quant à l'agence de freelance, je ne conteste pas qu'elle puisse écrire n'importe quoi, mais vous devez quand même le réécrire vous-même. N'y allez pas sans arrêt.

Et comment voulez-vous écrire quelque chose dans un tableau dont la taille est nulle ?

Mettre de l'argent dans un portefeuille que vous n'avez pas...

 
Artyom Trishkin:

Et comment voulez-vous écrire quelque chose dans un tableau dont la taille est nulle ?

Mettre de l'argent dans un porte-monnaie qui n'existe pas...

révisé le post 844, pour que je n'aie pas à écrire du code ici à nouveau.

En ce qui concerne le tableau de taille zéro - 0 peut être un entier, il peut être l'équivalent d'un booléen fals, il peut être un vide, et il peut être un point de départ.

Raison: