Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 928

 
TarasBY:
if (iBarShift (_Symbol, PERIOD_D1, OrderOpenTime()) == 0) continue;

Je suis choqué ! !! Une ligne ! !! Merci ! !! J'ai déjà commencé à décomposer le temps en heures, minutes, secondes pour obtenir les secondes du début de la journée et comparer...

Je n'y aurais pas pensé moi-même.

 
abeiks:
Bonjour !
Comment puis-je obtenir tous les tick d'autres paires de devises dans l'Expert Advisor (MQL4) ?
Pouvez-vous me dire comment obtenir toutes les 10 ms des informations sur les ticks d'autres paires de devises ?
 
OnTimer() vous aidera.
 
AlexeyVik:
OnTimer() est votre aide.
Merci !
 
AlexeyVik:
OnTimer() vous aidera.
La périodicité spécifiée de EventSetTimer( int seconds ) est utilisée ici. Cela signifie-t-il que je peux obtenir des informations sur les ticks toutes les 1 seconde ? J'ai besoin de plus de rapidité - 10-20ms.
 

L'indicateur doit obtenir l'indice à l'heure d'ouverture de la barre quotidienne, sur une plus petite échelle de temps.

Il ne fonctionne correctement que sur la barre de zéro. Qu'est-ce qui ne va pas ?

#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 Magenta
//--- input parameters
//--- buffers
double I[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorBuffers(1);
   SetIndexBuffer(0,I);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),limit, i,index;
    datetime DAY;
    bool exact=true;
   if(counted_bars>0)
      counted_bars--;  
   limit=Bars-counted_bars-1;
   for(i=limit;i>=0;i--)
   {
      DAY=iTime(NULL,PERIOD_D1,i);
      index=iBarShift(NULL,PERIOD_CURRENT,DAY);
      I[i]=index;
   }
   return(0);
  }
//+------------------------------------------------------------------+
 
abeiks:
La périodicité spécifiée de EventSetTimer( int seconds ) est utilisée ici. Cela signifie-t-il que je peux obtenir des informations sur les tics toutes les 1 seconde ? J'ai besoin de plus de rapidité - 10-20ms.
Non seulement EventSetTimer( int seconds ) mais aussi EventSetMillisecondTimer, pourquoi êtes-vous si inattentif ? C'est écrit à côté.
 
AlexeyVik:
Non seulement EventSetTimer( int seconds ) mais aussi EventSetMillisecondTimer, pourquoi êtes-vous si inattentif ? Il est écrit à côté.
Merci ! J'ai regardé dans le livre de référence OnTimer et il ne mentionne que EventSetTimer.
 
Pouvez-vous me dire comment écrire un simple EA comme celui-ci ? Il ouvre un ordre à un moment donné de la journée, puis si l'ordre se ferme à un stop loss, il ouvre le même ordre dans la direction opposée. Le jour suivant, tout se répète. J'aimerais tester ce type d'EA et voir si son bénéfice sera stable. S'il vous plaît, aidez-moi à l'écrire.
 

Aidez-moi, s'il vous plaît, comment puis-je écrire"si le prix provient d'une certaine fourchette" ?

Exemple de l'image : pour ouvrir une transaction, le prix doit provenir d'une certaine fourchette 1.1100 et 1.1100 doit provenir d'une certaine fourchette 1.1200.

La variante avec iHighest et iLowest ne convient pas car cette condition n'est pas dépendante du temps.