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

 
AlexeyVik:

Eh bien, alors vous devez déterminer ce que vous voulez écrire en premier, un EA ou un indicateur...

J'ai peut-être raté quelque chose, mais je crois comprendre que ce sera un indicateur...

J'ai déjà un indicateur. EA aussi, mais je ne suis pas satisfait de la vitesse d'optimisation.

J'ai changé quelques cordes et il semble que la vitesse soit devenue meilleure. Je ne sais pas si c'est correct ?

int counted_bars=IndicatorCounted(),
   i,limit1,limit2,limit3,limit4; 
limit1=Bars-counted_bars-1;
   limit2=limit1;
   limit3=limit2;
   limit4=limit3;
   if(limit1>0) 
     {
      limit1=limit1-Period_MA_1-1;
      limit2=limit1-p2;
      limit3=limit2-p3;
      limit4=limit3-p4;
     }

J'ai remplacé Bars dans l'opérateur conditionnel par limit1.

Si je comprends bien

limit1=Bars-counted_bars;//расчитываем количество непосчитанных баров

puis on soustrait la période et on calcule le reste des variables.

Une chose que je ne comprends pas, si Bars est le nombre de barres dans la fenêtre, on lui soustrait les barres non comptées.

Plus il y a d'unités non comptées, moins le nombre obtenu après soustraction est élevé et donc moins il y a d'itérations dans la boucle.

Mais c'est l'inverse. Ainsi, IndicatorCounted(), en termes simples, indique combien de barres plus anciennes que la première ?

Le code original se trouve à la p. 560. Seulement sans ces lignes :

double impuls;
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
 

comme ceci

int start()
  {
   int counted_bars=IndicatorCounted(),
   i,limit1,limit2,limit3,limit4;
   double impuls;
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
 
   limit1=Bars-counted_bars-1;
   for(i=limit1;i>=0;i--) ExtMapBuffer1[i]=Close[i]-Close[i+Period_MA_1];
   for(i=limit1;i>=0;i--) ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer1, 0, p2, 0, MODE_EMA,i);
   for(i=limit1;i>=0;i--) ExtMapBuffer3[i]=iMAOnArray(ExtMapBuffer2, 0, p3, 0, MODE_EMA,i);
   for(i=limit1;i>=0;i--) ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer3, 0, p4, 0, MODE_EMA,i);
   return(0);
  }
 
alxm:

L'étiquette ne suit pas le graphique...

J'ai maintenant essayé lapropriété OBJPROP_XSIZE de l'objet LABEL, mais cela ne fonctionne pas non plus. C'est-à-dire qu'il renvoie 0. N'est-il pas mis en œuvre ?
 
alxm:

J'ai maintenant essayé d'utiliser la propriété OBJPROP_XSIZE de l'objet LABEL mais cela ne fonctionne pas non plus. Il renvoie 0. N'est-il pas mis en œuvre ?

Je n'ai pas vérifié avec OBJ_LABEL, mais cela fonctionne avec OBJ_EDIT. À propos, vous pouvez également l'utiliser à la place de OBJ_LABEL, ce qui est encore plus intéressant et vous permet de définir la couleur de l'arrière-plan et du cadre. Si nous définissons OBJPROP_READONLY = true, vousne pourrez pas le distinguer de OBJ_LABEL.


Ça ressemble à ça. SPREAD 30 est OBJ_LABELet le reste est OBJ_EDIT .

Oui, je l'ai vérifié, cela ne fonctionne pas avec OBJ_LABEL.

 
AlexeyVik:

Je n'ai pas vérifié avec OBJ_LABEL, mais cela fonctionne avec OBJ_EDIT. À propos, vous pouvez égalementutiliser OBJ_LABEL à la place de OBJ_LABEL, ce qui est encore plus intéressant et permet de définir la couleur de fond et la couleur du cadre. Si vous définissez OBJPROP_READONLY = true, vousne pourrez pas le distinguer de OBJ_LABEL.


Ça ressemble à ça. SPREAD 30 est OBJ_LABELet le reste est OBJ_EDIT .

Oui, je l'ai vérifié, cela ne fonctionne pas avec OBJ_LABEL.


Merci ! Pouvez-vous me dire comment utiliser TextOut pour afficher une ligne de texte à l'écran. Je n'ai pas réussi à comprendre avec l'aide de
 
alxm:

Merci ! Pouvez-vous me dire comment utiliser TextOut pour afficher une ligne de texte à l'écran. Je n'ai pas pu le comprendre grâce à l'aide.
Je n'ai pas essayé de le découvrir. Peut-être que quelqu'un de MQ pourra me renseigner.Peut-on aussiexpliquer OBJPROP_XSIZE de l'objet OBJ_LABEL ?
 
AlexeyVik:
Je n'ai pas essayé de le comprendre. Peut-être que quelqu'un de MQ pourra me renseigner.Ils peuvent égalementexpliquer OBJPROP_XSIZE de l'objet OBJ_LABEL ...


A quelle branche dois-je poser une question ?
 
Dites-moi le nom du script - il montre l'historique des transactions dans un compte de démonstration.
 
Veuillez me conseiller comment expliquer à l'EA de tout fermer lorsque la bollinger est touchée.
 
Bonjour à tous .... pouvez-vous me dire comment fixer la valeur d'une variable dans un script ?
Raison: