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

 

Bonjour à tous.

Pour tester la stratégie sur H1, je dois obtenir la clôture du jour précédent.

Dans l'indicateur, j'écris ce qui suit (après avoir déclaré "CloseLine" dans OnInit()) :


int OnCalculate(const int rates_total, const int prev_calculated,

const datetime &time[], const double &open[],

const double &high[], const double &low[],

const double &close[], const long &tick_volume[],

const long &volume[], const int &spread[])

{

Close_Day=iClose("EURUSD",PERIOD_D1,1) ;

ObjectSet("CloseLine",OBJPROP_PRICE1,Close_Day) ;

retour(taux_total) ;

}

Par conséquent, le prix du jour TF n'est pas modifié et la ligne n'est pas réarrangée.

Aidez-moi, s'il vous plaît.

Merci.

 

Bonjour, voici une question sur un foursome écrite sur un fivesome. Qui sait comment me dire...

Ecriture et lecture des ticks par un indicateur.

https://www.mql5.com/ru/forum/6343/page400#comment_1768141

Commencé à la page précédente - on ne peut pas battre iMAOnArray.

 
Pokrov:
Bonjour à tous, est-il préférable d'utiliser un seul cycle pour tous les usages ou plusieurs cycles en blocs ? Est-ce une question de performance de l'EA ou n'y a-t-il pas de différence ?

Le cycle est le plus rapide. Et à l'intérieur du cycle, vous pouvez faire des blocs, par exemple l'analyse en bloc des ordres en attente, l'analyse en bloc des ordres au marché, le mouvement en bloc des b/o.

for(int i=OrdersTotal()-1; i>=0; i--)
   {
      if(!OrderSelect(i,SELECT_BY_POS)) 
      {
         Print("OrderSelect( ",i," ) - Error #",GetLastError());
         continue;
      }
      if(OrderSymbol() != SymbolsArray[symNo])          continue;
      if(OrderMagicNumber() != Expert_ID) continue;
      if(OrderType()>3){  } //StopOrder
      if(OrderType()<2){  } //MarketOrder
   }
 
Rattnik:

Bonjour à tous.

Pour tester la stratégie sur H1, je dois obtenir la clôture du jour précédent.

Dans l'indicateur, j'écris ce qui suit (après avoir déclaré "CloseLine" dans OnInit()) :


int OnCalculate(const int rates_total, const int prev_calculated,

const datetime &time[], const double &open[],

const double &high[], const double &low[],

const double &close[], const long &tick_volume[],

const long &volume[], const int &spread[])

{

Close_Day=iClose("EURUSD",PERIOD_D1,1) ;

ObjectSet("CloseLine",OBJPROP_PRICE1,Close_Day) ;

retour(taux_total) ;

}

Par conséquent, le prix du jour TF n'est pas modifié et la ligne n'est pas réarrangée.

Aidez-moi, s'il vous plaît.

Merci.

Peut-être est-il préférable de déterminer si la valeur a changé, et seulement si c'est le cas, puis d'appeler ObjectSet et de gérer les échecs ?
 
Bonsoir si quelqu'un a un indicateur qui calcule le nombre de ticks dans une bougie est que dans les chiffres au-dessus ou en dessous des bougies. ne peut pas trouver un tel indicateur nulle part.
 
roma1984:
Bonsoir, avez-vous un indicateur qui calcule le nombre de ticks dans un chandelier, notamment en nombre au-dessus ou au-dessous du chandelier ?
L'indicateur ne montre pas le nombre de ticks dans une bougie, il n'a pas de chiffres, vous pouvez le voir en appuyant sur ctrl+D et en survolant la bougie.
 
danik:
Dans MT4, il y a des volumes. ils ne proviennent pas de la bourse, ce sont des volumes en ticks, c'est-à-dire qu'ils montrent le nombre de ticks dans une bougie. cependant, il n'y a pas de chiffres, vous pouvez voir les chiffres en appuyant sur ctrl+D et en passant la souris sur la bougie.
Merci pour l'astuce, mais c'est un peu gênant.
 
tatianati:

Bonjour, je peux vous aider.

Recherche de l'égalité, du bas de la première barre avec un prix maximum pour 20 barres à partir de la 5ème barre.

J'ai mis la flèche sur la première barre.

J'essaie comme ça:

Ça n'arrange pas les choses.

Que pensez-vous de ça ?

if(MathAbs(iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,K_Bars,i+5))-lowr) < n*Point) //примерно равно)))

Les variables doivent également être initialisées.

 
tatianati:

vous avez besoin d'exactement E, c'est une gamme - environ

Je me demande si pour l'indicateur, je regarde de la 5ème barre à la 20ème.

La recherche est correcte, mais la portée ne l'est pas. Il est préférable de comparer le module de la différence à un certain nombre défini.

C'est à peu près ça :

if(MathAbs(iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH,K_Bars,i+5))-lowr) < n*Point) // разница меньше п пунктов
 
Et si la barre de zéro n'est nulle part impliquée, il est logique de commencer la boucle à 1, alors il n'y aura pas besoin d'écrire [i+1].
Raison: