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

 
Roman Sharanov:

lesdonnées historiques ne disent rien ?

Je vous remercie de votre réponse.

 
Igor Makanu:

Le testeur semble vous dire qu'il n'y a pas de données historiques. Appuyez sur F2 et téléchargez l'historique, puis rechargez le terminal.

C'est fait, merci beaucoup, ça marche.

 
Salut les gars ! J'ai encore besoin de votre aide ! Pouvez-vous me dire comment faire une suite de nombres N() à partir de 1 ?
int N() {   int n;                      
       n=N();
       return(n+1);}
//+------------------------------------------------------------------+  
void OpenBS() { ....       
    if( ((OpenB-Ask)/ma+TimeB/60) > N() ) { 
        if( OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,0,NULL,123,0,1)>0 ) {N()} }}
Que changer en int pour faire tourner N() à partir de void OpenBS() ?
 
Rustam Bikbulatov:
Salut les gars ! J'ai encore besoin de votre aide ! Pouvez-vous me dire comment faire une séquence de nombres N() à partir de 1 ? Comment changer int pour faire tourner N() à partir de void OpenBS() ?

Peut-être comme ceci

int N()
  {
   static int n=0;                      
   n++;
   return n;
  }
 
Konstantin Nikitin:

Que pensez-vous de ça ?

Merci beaucoup ! !! Pouvez-vous me dire comment remettre à zéro ? Par exemple, s'il y a des commandes, elle est calculée. S'il n'y a pas de commande, il est mis à zéro.

int N()
  {  static int n;
        {if((fMarketOrdersBuy(OP_BUY)==0)) { 
        n=0;}}
        {if((fMarketOrdersBuy(OP_BUY)>=1)) {                       
        n++;}}
   return n;
  }
Pourquoi cette méthode ne fonctionne-t-elle pas ?
 
Rustam Bikbulatov:

Merci beaucoup ! !! Pouvez-vous me dire comment remettre à zéro ? Par exemple, s'il y a des commandes, elle est calculée. S'il n'y a pas de commande, il est remis à zéro.

int N(const int r=0)
  {
   static int n=0;                      
   n = (r==0 ? n : r==1 ? n+1 : 0); // 0-просто возвращаем n, 1-прибавляем 1, в любом другом случае обнуляем
/*
   n = (r>0 ? n+1 : r<0 ? 0 : n); // 0-просто возвращаем n, больше 0 прибавляем 1, меньше 0 обнуляем
*/
   return n;
  }
 
Konstantin Nikitin:

Il n'y a pas de calcul du tout. C'est zéro. Merci. (gloussements) Je vais m'en occuper).

 
Rustam Bikbulatov:

Il n'y a pas de calcul du tout. C'est zéro. Merci. (gloussements) Je vais m'en occuper).

Eh bien, vous devez le demander.

N(1);  // прибавит 1, и вернет новый результат.
N(-1); // обнулит и вернет 0
N();   // вернет тот результат который есть без изменений
 
Konstantin Nikitin:

C'est comme ça que tu le demandes

mais comment le faire sous la forme de ?

        if((fMarketOrdersBuy(OP_BUY)==0)) { 
        ...}
        if((fMarketOrdersBuy(OP_BUY)>=1)) {                       
        ...}
 
Konstantin Nikitin:

C'est comme ça qu'on l'appelle.

Je viens de remarquer que int fonctionne tout seul indépendamment de l'appel à cette fonction. Est-il possible de le remplacer par le type void?

Raison: