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

 
001:

Le code rendra l'EA "silencieuse" à certains moments.

collez ce code dans votre EA :

extern HourStart=0 ; // L'heure du début de la session à sauter

///

extern HourEnd=0 ; // Fin de la session qui doit être sautée
//+------------------------------------------------------------------+
int start()
{
si(Hour()>=HourStart)
{
{si(Hour()<=HourEnd)
{
retour(0) ;

}

//Collez ce code (ci-dessus) devant votre EA.

}
// votre corps EA
}
//+------------------------------------------------------------------+

Merci beaucoup !

Il fermerait également les commandes...

 
Vinin:
Que voulais-tu obtenir ?
En général, le résultat est un indicateur qui montre, de manière cumulative, le nombre de hauls et de lowes par heure. Par exemple, pour l'année 20 hauls à 03:00, 30 lowes à 05:00 Quelque chose comme un profil de marché, mais des pics par heure. L'indicateur se trouve dans une fenêtre séparée.
 
SAnd7:

Merci beaucoup !

Je souhaite que les mandats ferment aussi...

Si par le temps, nous devrions trouver une fonction

OrderClose()

et le mettre en face de lui.

if(Hour()>=HourClose)

En résumé :

extern int    HourClose=0;          // Вставить там где вставили extern int    HourStart=0;  Это час закрытия

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



//+------------------------------------------------------------------+
if(Hour()>=HourClose) OrderClose(...............);// Найти функцию OrderClose и поставить передней if(Hour()>=HourClose)


 

Merci ! !!

Je pense que je l'ai.

 
SAnd7:

Merci ! !!

Je crois que je l'ai.

Nous pouvons encore jouer avec les minutes.

  Minute()
 
SAnd7:

Bonjour !

J'ai trouvé un bon EA (du testeur) et l'ai exécuté sur la démo et il perd de l'argent dans la session japonaise.

Si vous connaissez le code, comment faire pour qu'il s'exécute à une certaine heure et à une certaine heure pour fermer tous mes ordres et ensuite sortir.

Egalement un endroit où insérer ce code.

Merci d'avance !

Faites 2 variables au début :

extern int    Start    = 2,
              End      = 8;
//-----------------------------------
  int hour = TimeHour(TimeCurrent()); // в начале основной части советника

Et ensuite dans les conditions d'ouverture et de fermeture au cas où il resterait une position !

     if(hour >= Start && hour < End) // можно открывать
//-----------------------------------------------------
     if(hour < Start || hour >= End) // закрыть, если есть
 

Bonjour !

Actuellement, la fonction est liée au graphique actuel (double High[]). Comment puis-je modifier la fonction afin d'obtenir les prix de différents horizons temporels High_Lim(PERIOD_H4,10,1) High_Lim(PERIOD_M15,10,1) ?

double High_Lim(ENUM_TIMEFRAMES GrafPeriod, int Bari_atp, int Bari_shift)
{
double HighLim=0; 
       HighLim = (High[iHighest(NULL,GrafPeriod,MODE_HIGH,Bari_atp,Bari_shift)]);
          
return(HighLim);
}

void OnTick()
  {
//---
Print("::::::::::::::::::::::::: High_Lim(PERIOD_M15,10,1) = ", High_Lim(PERIOD_M15,10,1));  
Print("::::::::::::::::::::::::: High_Lim(PERIOD_H4,10,1) = ", High_Lim(PERIOD_H4,10,1));     
  }
 
abeiks:

Bonjour !

Actuellement, la fonction est liée au graphique actuel (double High[]). Comment puis-je modifier la fonction afin d'obtenir les prix de différents horizons temporels High_Lim(PERIOD_H4,10,1) High_Lim(PERIOD_M15,10,1) ?

Pour trouver la valeur du prix le plus élevé d'un autre symbole, utilisez iHighest. Là, à la place de 1 argument, écrivez le nom du symbole, par exemple. "EURUSD". Dans votre fonction, vous avez écrit NULL, c'est-à-dire qu'elle recherche le graphique actuel.
 
paladin80:
Pour trouver la valeur du prix le plus élevé d'un autre symbole, utilisez iHighest. Là, à la place de 1 argument, écrivez le nom du symbole, par ex. "EURUSD". Dans votre fonction, vous avez écrit NULL, c'est-à-dire qu'elle recherche le graphique actuel.
"...obtenir les prix de différentes échéances..."
 
abeiks:
"...obtenir les prix de différentes échéances..."

Dans iHighest, le 2ème paramètre est le délai.

   double val;
//--- расчет максимального значения цены на 20 последовательных барах
//--- с индекса 4 по индекс 23 включительно на графике  EURUSD на М30 
   int val_index=iHighest("EURUSD",PERIOD_M30,MODE_HIGH,20,4);
   if(val_index!=-1) val=High[val_index];
   else PrintFormat("Ошибка вызова iHighest. Код ошибки=%d",GetLastError());