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

 
C'est parti. Bien.
 
Mon frère est ici.
 
void IndicatorBuffers( int count)

Alloue de la mémoire pour les tampons utilisés pour les calculs de l'indicateur personnalisé. Le nombre de tampons ne peut pas dépasser 8 et ne peut pas être inférieur à la valeur spécifiée dans la propriété indicator_buffers. Si l'indicateur personnalisé nécessite des tampons supplémentaires pour le comptage, vous devez utiliser cette fonction pour spécifier le nombre total de tampons.

Est-ce que c'est correct ?

#property indicator_buffers 9 double ind_buffer1[] ; // Tableau pour les calculs supplémentaires double ind_buffer2[] ; double ind_buffer3[] ; double ind_buffer4[] ; double ind_buffer5[] ; double ind_buffer6[] ; double ind_buffer7[] ; double ind_buffer8[] ;
double ind_buffer9[] ; SetIndexBuffer(0,ind_buffer2) ; SetIndexBuffer(1,ind_buffer3) ; SetIndexBuffer(2,ind_buffer4) ; SetIndexBuffer(3,ind_buffer5) ;
SetIndexBuffer(4,ind_buffer6) ; SetIndexBuffer(5,ind_buffer7) ; SetIndexBuffer(6,ind_buffer8) ; SetIndexBuffer(7,ind_buffer9) ;
 

Quelqu'un peut-il me conseiller en privé sur la façon d'écrire un EA? En particulier : comment attacher un lot double à un stop suiveur ?

 
Leo59:
void IndicatorBuffers( int count)

Alloue la mémoire pour les tampons utilisés pour les calculs de l'indicateur personnalisé. Le nombre de tampons ne peut pas dépasser 8 et ne peut pas être inférieur à la valeur spécifiée dans la propriété indicator_buffers. Si un indicateur personnalisé nécessite des tampons supplémentaires pour le comptage, vous devez utiliser cette fonction pour spécifier le nombre total de tampons.

C'est-à-dire que c'est autorisé.

Non.
#property indicator_buffers 9
"Le nombre de tampons ne peut pas dépasser 8" sont les mots clés pour #property indicator_buffers et IndicatorBuffers.
La #propriété indicator_buffers spécifie le nombre de tampons de dessin, alors IndicatorBuffers = #propriété indicator_buffers+nombre de tampons de non dessin à calculer. Si tous les tampons sont dessinés, alors IndicatorBuffers = #property indicator_buffers. Dans ce cas, l'utilisation des IndicatorBuffers est facultative.
 

Je demande l'aide d'experts. J'ai déjà posé cette question plusieurs fois ici, j'ai donné un emploi à mql5.com/fr/job, jusqu'à présent beaucoup de temps, d'argent et d'efforts ont été dépensés, mais aucun résultat... :(

Le but du problème est d'écrire une fonction qui vérifierait si une commande existe dans une plage de prix.

Encore plus simple : lorsqu'on vous demande s'il existe un ordre de baie dans l'intervalle de 0,9995 à 1,0005, par exemple.

Celui qui a posté ici a une solution qui fonctionne... Eh bien, par exemple, 15 $...

MT4...

 
granit77:
Non.
#property indicator_buffers 9
"Le nombre de tampons ne peut pas dépasser 8" sont des mots-clés à la fois pour #property indicator_buffers et IndicatorBuffers.
La #propriété indicator_buffers spécifie le nombre de tampons de dessin, alors IndicatorBuffers = #propriété indicator_buffers+nombre de tampons de non dessin à calculer. Si tous les tampons sont dessinés, alors IndicatorBuffers = #property indicator_buffers. Dans ce cas, l'utilisation des IndicatorBuffers est facultative.

Cher granit77! Si cela ne vous dérange pas, veuillez apporter des corrections directement dans le code, si quelque chose ne va pas. Il sera clair et compréhensible.

#property indicator_buffers 8 double ind_buffer1[] ; // tableau pour des calculs supplémentaires double ind_buffer2[] ; double ind_buffer3[] ; double ind_buffer4[] ; double ind_buffer5[] ; double ind_buffer6[] ; double ind_buffer7[] ; double ind_buffer8[] ; double ind_buffer9[] ;   

int init() { IndicatorBuffers(9) ; SetIndexBuffer(0,ind_buffer2) ; SetIndexBuffer(1,ind_buffer3) ; SetIndexBuffer(2,ind_buffer4) ; SetIndexBuffer(3,ind_buffer5) ;
SetIndexBuffer(4,ind_buffer6) ; SetIndexBuffer(5,ind_buffer7) ; SetIndexBuffer(6,ind_buffer8) ; SetIndexBuffer(7,ind_buffer9) ; return(0) ; }
 
w_ersoc:

Je demande l'aide d'un expert. J'ai déjà posé cette question plusieurs fois ici, j'ai donné un emploi à mql5.com/fr/job, jusqu'à présent beaucoup de temps, d'argent et d'efforts ont été dépensés, mais aucun résultat... :(

Le but de la tâche est d'écrire une fonction qui vérifierait si un ordre existe dans la gamme de prix.

Pour faire encore plus simple, lorsqu'on vous demande s'il existe un ordre de baie dans la plage de 0,9995 à 1,0005, par exemple.

Celui qui a posté une solution fonctionnelle ici... par exemple 15 $...

MT4...

Dans la boucle, on passe en revue toutes les positions ouvertes, si le type d'ordre sélectionné est égal à ce qui a été transmis à la fonction, si le symbole de l'ordre est égal à ce qui a été transmis à la fonction, si le prix d'ouverture de l'ordre est compris dans la fourchette spécifiée (supérieur ou égal à 0,9995 et inférieur ou égal à 1,0005), alors la fonction renvoie vrai, sinon elle renvoie faux.

Il s'agit d'une simple énumération de commandes avec un contrôle de coïncidence.

ZS. Pour 15 livres, une femme reçoit une glace, et les enfants des fleurs... Ou vice versa ... :)

 
artmedia70:

Dans la boucle, on passe en revue toutes les positions ouvertes ; si le type d'ordre sélectionné est égal à celui transmis à la fonction, si le numéro magique de l'ordre est égal à celui transmis à la fonction, si le prix d'ouverture de l'ordre est compris dans la fourchette spécifiée (supérieur ou égal à 0,9995 et inférieur ou égal à 1,0005), alors la fonction renvoie true, sinon elle renvoie false.

Il s'agit d'une simple énumération de commandes avec un contrôle de coïncidence.

ZS. Pour 15 livres, une femme reçoit une glace, et les enfants des fleurs... Ou vice versa ... :)

Mm-hmm. C'est élémentaire. Mais ça ne marche pas.

Vous pouvez argumenter, mais tant de gens ont dit que c'était des conneries, mais au final rien ((

 
w_ersoc:

Mm-hmm. C'est élémentaire. Mais ça ne marche pas.

Vous pouvez argumenter, mais tant de gens ont dit que c'était des conneries et au final rien ((


Voilà :

//+------------------------------------------------------------------+
//|          Function  : GetOrdersInThePrice(min,max,&tickets[])bool |
//|          Copyright © 2012, XrustSolution.  mail:xrustx@gmail.com |
//|          https://www.youtube.com/user/opmlv http://forexrust.info |
//+------------------------------------------------------------------+
//|   Description: Пишет в массив тикеты ордеров с ценою открытия    |
//| между максимальной и минимальной ценой, если ордеров нет = false |
//+------------------------------------------------------------------+
bool GetOrdersInThePrice(double pr1,double pr2,int &tickets[]){int i,ii;double min,max;
   min = MathMin(pr1,pr2);
   max = MathMax(pr1,pr2);
   ArrayResize(tickets,100);
   for(i=OrdersTotal()-1;i>=0;i--){
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
         if(OrderSymbol()!=Symbol()){continue;}
         if(OrderOpenPrice()>max){continue;}
         if(OrderOpenPrice()<min){continue;}
         tickets[ii] = OrderTicket();
         ii++;
      }
   }
   if(ii<1){return(false);}
   ArrayResize(tickets,ii);
   return(true);
}