Questions des débutants MQL5 MT5 MetaTrader 5 - page 439

 
Leanid Aladzyeu:
...
Comment puis-je obtenir les valeurs des tableaux sans appeler la fonction ? Ou comment faire en sorte qu'un tableau se souvienne des dernières valeurs qui ont été écrites ?
...


Afin de récupérer quelque chose dans un tableau, vous devez d'abord écrire ce "quelque chose" dans le tableau.

Leanid Aladzyeu:
...
Ou comment faire en sorte qu'un tableau se souvienne des dernières valeurs qui ont été écrites ?
...
Pour quelles conditions : le tableau doit-il être sauvegardé lors du changement d'horizon temporel ou après le rechargement du terminal ?
 
Karputov Vladimir:


Si je veux prendre quelque chose dans un tableau, je dois d'abord l'écrire dans le tableau.

Dans quelles conditions : le tableau doit-il être sauvegardé lors du changement d'horizon temporel du graphique ou après le rechargement du terminal ?

pas pendant les travaux de l'EA

Si je définis le retour dans la fonction, lorsqu'il y a un ordre sur le marché, cela me donne des tableaux nuls (j'ai défini le retour avant d'annuler les tableaux),

 
Leanid Aladzyeu:

Si un ordre est sur le marché, cela me donne des tableaux nuls (j'ai défini le destinataire avant que les tableaux ne soient mis à zéro),

Quels sont les tableaux que l'ordre "donne" ? Où sont-elles déclarées et où sont-elles remplies ? Veuillez également insérer le code correctement.
 
Karputov Vladimir:

Les paramètres de la fonction doivent être ramenés à la version originale, sinon ils ne seront tout simplement pas appelés :

Voici le code du fichier SignalAC standard

//+------------------------------------------------------------------+

//| "Voter" que le prix va augmenter. |

//+------------------------------------------------------------------+

int CSignalAC::LongCondition(void)

Je le comprends ainsi : le code envoie un signal et les paramètresdouble& price,double& sl,double& tp,datetime& expiration sont nécessaires pour passer un ordre,

ceci est géré par un autre bloc EA ?

 

a corrigé le code en une variante :

int CSampleSignal::ShortCondition(void)

L'expert a commencé à faire quelque chose, merci pour le conseil !

 
pr0gre5:

a corrigé le code en une variante :

int CSampleSignal::ShortCondition(void)

L'expert a commencé à faire quelque chose, merci pour le conseil !

Vous êtes les bienvenus. Demandez, demandez quand et où vous en avez besoin :)
 

Ce code sert-il à limiter le calcul - en ne comptant qu'une fois sur une nouvelle barre?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

 
-Aleks-:

Une telle question, ce code sert-il à limiter le calcul - compter seulement une fois sur une nouvelle barre?

static datetime TimeN=0;
   datetime TimeC=iTime(NULL,TF,0);
   if(TimeN==0)TimeN=TimeC;
   if(TimeN==TimeC) return(0);

Si la nouvelle barre se trouve sur une échelle de temps M1, nous imprimons un message :

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   static datetime TimeN;
   datetime TimeC=iTime(NULL,PERIOD_M1,0);
   if(TimeN==TimeC)
      return;
   TimeN=TimeC;
// новый бар, выполняем код
   Print("New bar");
   return;
  }
 
Karputov Vladimir:

Si la nouvelle barre se trouve sur l'échelle de temps M1, imprimez un message :

Donc j'ai raison, c'est un chèque pour un nouveau bar?
 
-Aleks-:
Donc j'ai raison, c'est un nouveau contrôle de barre?
Si vous voulez dire mon code - alors oui, mon code est un nouveau contrôle à barres.