Questions d'un "mannequin - page 64

 
Europa:
Pouvez-vous me dire pourquoi l'alerte donne Orders_Total=1, alors qu'en fait il n'y a qu'une position et un ordre, c'est-à-dire qu'en théorie elle devrait donner 2, et non 1.

Essayez de faire le cycle à l'envers, en commençant par la fin.

string Symb="EURUSD";
  for(i=OrdersTotal()+PositionsTotal()-1;i>=0;i--)
     {
      if(Symb==PositionGetSymbol(i)) Orders_Total++;
     }
     Alert(Orders_Total);
 
tol64:

Essayez de faire le cycle à l'envers, en commençant par la fin.

Ça n'a pas aidé ;(
 
Europa:
Ça n'a pas marché ;(

Ah, vous avez seulement un contrôle de position :

if(Symb==PositionGetSymbol(i)) Orders_Total++;
C'est là que seules les positions sont comptées.
 
tol64:

Ah, vous avez seulement un contrôle de position :

C'est là que seules les positions comptent.
SO !!!! Merci beaucoup ! !!
 
tol64:

La référence dit cela :

Il est possible d'omettre soit la date (année, mois, jour), soit l'heure (heures, minutes, secondes), soit les deux à la fois. La fourchette de valeurs s'étend du 1er janvier 1970 au 31 décembre 3000.

Exemples :

D'2004.01.01 00:00'// Nouvel An
D'1980.07.19 12:30:27'
D'19.07.1980 12:30:27'
D'19.07.1980 12'//nouvelle année d'1980.07.19 12:00:00'
D'01.01.2004'//equivalent D'01.01.2004 00:00:00'
D'12:30:27' //équivalent à D'[date de compilation] 12:30:27'
D''//équivalent à D''[date de compilation] 00:00:00''".

...

Ou est-ce que je comprends mal ?

L'aide sera modifiée afin que de telles questions ne se posent plus à l'avenir. Merci.
 
Europa:
Ça n'a pas aidé ;(

Pourquoi additionner les mouches et les escalopes et déterminer ensuite combien d'escalopes il y a ?

Les commandes comptent séparément, les positions séparément. PositionGetSymbol() renvoie uniquement la présence d'une position par symbole, et ne dit rien sur les ordres. Comme il n'y a qu'une seule position, elle donne 1. Et vous avez encore de la chance, puisque le paramètre de la boucle va au-delà des valeurs acceptables (PositionsTotal), vous pouvez obtenir ce que vous voulez.

P.S. Vous avez déjà répondu, je suis en retard.

 
Je n'ai pas trouvé de fonction ou de propriété interne pour donner la propriété de sélection à un objet graphique (par défaut, l'objet est dessiné de manière programmatique sans possibilité de le sélectionner avec la souris). Évidemment, la question qui se pose est la suivante : est-il possible de donner à un objet graphique une telle propriété normalement, sans bibliothèques supplémentaires et autres artifices ?
 
x100intraday:
Je n'ai pas pu trouver de fonction interne ou de propriété pour donner la propriété de sélection à l'objet graphique (par défaut l'objet est dessiné de manière programmatique sans le sélectionner avec la souris), je l'ai trouvé seulement dans la bibliothèque graphique incluse. Évidemment, la question qui se pose est la suivante : est-il possible de donner à un objet graphique une telle propriété normalement, sans bibliothèques supplémentaires et autres artifices ?

ObjectSetInteger

avec prop_id=OBJPROP_SELECTABLE

 
Valmars:

ObjectSetInteger

avec prop_id=OBJPROP_SELECTABLE

Merci beaucoup.
 
bool ExtFunc (string str, int P, int i)
  {
   if (high[i] < high[i-1]) return(false);
   return(true);   
  }

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[])
  {
   int i=0;
   if ExtFunc("s",60,i) == 1)
     Buffer[i] = high[i];
  }

DansOnCalculate, je peux facilement utiliser des éléments de tableau comme high par index. Est-il également possible d'accéder aux éléments d'index de ce tableau dans ExtFunc ? Lorsque j'appelle ma fonction, dois-je passer l'argument tableau par référence, par pointeur ou autre chose ? Jusqu'à présent, j'ai réussi à réduire les messages d'erreur à : "'high' - la conversion des paramètres n'est pas autorisée" et "'high' - une variable constante ne peut être passée comme référence" concernant la même ligne de mon appel de fonction avec l'argument tableau de OnCalculate. Est-ce sans espoir ou existe-t-il une solution ?

Jusqu'à présent, dans OnCalculate, j'ai eu recours à la copie des valeurs élevées dans un autre tableau:

ArrayCopy(CopyOfHigh,high,0,0,WHOLE_ARRAY);
et ensuite utiliser CopyOfHigh dans ExtFunc au lieu d'utiliser directement high-array.