[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 345

 
alsu >> :

OrderSelect (0,SELECT_BY_POS, MODE_HISTORY) - sélectionne la dernière commande dans l'historique.

OrderSelect (1,SELECT_BY_POS, MODE_HISTORY) - l'avant-dernière commande

Par conséquent, vous pouvez trouver OrderProfit() pour chacun d'entre eux.


de nombreux remerciements

 
En fait le dernier est OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)
 
vademur писал(а) >>

Veuillez indiquer ce qui a causé l'erreur et comment y remédier, se trouve dans le journal du testeur :

19:20:11 TestGenerator : erreur de données non concordantes (valeur basse 1.3676 au 2009.05.13 00:00 et prix 1.3676 non concordants)
19:20:11 TestGenerator : erreur de données non concordantes (valeur élevée 1.3696 au 2009.05.13 01:00 et prix 1.3696 non concordants)
19:20:11 TestGenerator : erreur de données non concordantes (valeur élevée 1.3700 à 2009.05.13 02:30 et prix 1.3700 non concordants)
19:20:11 TestGenerator : erreur de données non concordantes (valeur élevée 1.3700 au 2009.05.13 03:30 et prix 1.3700 non concordants)

J'ai essayé de supprimer les prix et de les télécharger à nouveau, peut-être que je fais quelque chose de mal, tout semble correct dans le code.

Laissez-moi reformuler la question. Où puis-je obtenir un bon historique ou où puis-je lire sur le sujet ?

 
alsu >> :
Silen a écrit (a) >>

Tout d'abord, apprenez à répondre correctement. Les commentaires comme les vôtres ne sont d'aucune utilité pour qui que ce soit.

L'erreur a été renvoyée par GetLastError() après l'exécution de iTime(). Voici un exemple de code...

//+------------------------------------------------------------------+
//|                                                   test_iTime.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
    
    for(int i = 20; i > 0; i--)
    {    
      CheckTF(PERIOD_M5, i);    
      CheckTF(PERIOD_M15, i);
      CheckTF(PERIOD_M30, i);
    }
   return(0);
  }  
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   
//----
   return(0);
  }
//--------------------------------------------------------------------  
int CheckTF(int TF, int Index)
  {
    int count = 5;   
    int err;     
    int xBars;
   
   xBars = iBars(Symbol(), TF);
   err = GetLastError();
   while ( err == 4066)
   {
      Sleep(200);
      xBars = iBars(Symbol(), TF);
      err = GetLastError();
   } 
    err = GetLastError();
    datetime t0 = iTime(NULL, TF, Index);
    err = GetLastError();
    
    if( err > 0 && count >0)
    {
      Print("Error: ", err," TF: ", TF," Index: ", Index , " count: ", count);
      Sleep(200);
      count--;
      
      t0 = iTime(NULL, TF, Index);
      err = GetLastError();      
    }
   return(0);
  }  
//+------------------------------------------------------------------+
 
Roger >> :
En fait le dernier est OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS, MODE_HISTORY)

Oui, c'est vrai, j'y ai déjà répondu moi-même dans le même fil :)))) https://www.mql5.com/ru/forum/111497/page227#204964

 
Silen >> :

L'erreur a été renvoyée par GetLastError() après l'exécution de iTime(). Voici un exemple de code...


Testé.

Lors de l'exécution de la fonction init(), les nouvelles données de symbole peuvent être (et sont évidemment) pas encore disponibles. D'où l'erreur. Il n'y a qu'un seul moyen de lutter contre ce problème : n'essayez pas d'analyser les données dans la fonction init().

 
alsu >> :

Testé.

Pendant l'exécution de init(), les nouvelles données du symbole peuvent être (et sont évidemment) pas encore disponibles. D'où l'erreur. Il n'y a qu'un seul moyen de lutter contre ce problème : n'essayez pas d'analyser les données dans la fonction init().

Merci, mais y a-t-il une garantie que les données seront disponibles dans start() ?

 

Je cherche un script ou un indicateur pour voir la distribution du volume en tick directement sur la barre.

comme dans cette photo de la branche Avez-vous vu cette photo ?


 

Bonjour, pourriez-vous me dire

si(OrderSelect(0, SELECT_BY_POS,MODE_HISTORY)==true)
{
double x=OrderProfit() ;
Print("last ",x) ;

}

J'ai besoin du profit du dernier ordre fermé, mais c'est le tout premier.

 
vik-777 >> :

Bonjour, veuillez me conseiller

si(OrderSelect(0, SELECT_BY_POS,MODE_HISTORY)==true)
{
double x=OrderProfit() ;
Print("dernier ",x) ;

}

J'ai besoin du profit du dernier ordre clôturé mais c'est le tout premier, qu'est-ce qui ne va pas dans le code ?

Ci-dessus...

https://www.mql5.com/ru/forum/111497/page345#245944