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

 
999666:

Voici la fonction

Le conseiller lui-même est joint


Noms de variables étranges, le décompilateur fait cela))))
 
artmedia70:

Merde, Boris. Je l'ai déjà écrit. Eh bien, faites un spread flottant simulé directement dans votre EA. Qu'est-ce qui vous empêche d'ajouter un nombre aléatoire dans la fourchette de spreads flottants à l'offre et d'ouvrir avec des ordres stop. Et fermez par la valeur, pas par des ordres d'arrêt. C'est plus compliqué que de définir un écart statique plus important, mais si vous en avez vraiment besoin, vous pouvez le faire. Dans le même temps, dans le testeur, définissez l'écart minimum.

C'est juste... C'est juste une façon de penser.

Je l'ai vérifié, et malheureusement, ce n'est pas la solution ! Erreur 138 ! Il est tout à fait clair que maintenant le testeur et le conseiller expert ont un Ask différent ! C'est pour ça qu'il ratisse les votes ! Ajuster l'algorithme à l'écart n'a aucun sens !

Je vais utiliser l'écart constant accru pour l'instant. Peut-être les développeurs imiteront-ils le changement de spread et les retards dans l'exécution des ordres!

Si j'étais à Moscou, je vous inviterais à manger des crêpes ! :))

Mais ici, je n'ai que des crêpes. Mais je t'aurais quand même invité !

 

Salutations aux utilisateurs du forum !

Pouvez-vous conseiller un débutant sur la raison pour laquelle le code ci-dessus supprime tous les autres objets ? Il en reste la moitié. Qu'est-ce qu'il y a de mal à ça ?

int deinit()
  {
  int    obj_total=ObjectsTotal();
  
  for(int i=0;i<obj_total;i++)
      {
      ObjectDelete(ObjectName(i)); 
      }
   return(0);
  }
 
Parkhom:

Salutations aux utilisateurs du forum !

Pouvez-vous conseiller un débutant sur la raison pour laquelle le code ci-dessus supprime tous les autres objets ? Il en reste la moitié. Qu'est-ce qu'il y a de mal à ça ?

Et donc :

int deinit()
  {
  ObjectsDeleteAll();
  return(0);
  } 
 
r772ra:

Et donc :


OK, mettez-le en réserve :) Si vous ne pouvez pas le faire autrement.

ObjectsDeleteAll() - supprime tout. Je veux qu'il soit beau et qu'il supprime les objets dessinés par l'indicateur.

 
Parkhom:


Je l'ai laissé en veille :) S'il n'y a pas d'autre moyen.

ObjectsDeleteAll() - supprime tout. Mais je veux qu'il soit gentil et supprime les objets dessinés par l'indicateur.

int deinit() {
// -------- Блок удаления всех объектов, построенных на графике --------
   string Name_Del[1]; 
   int Quant_Del=0;                    
   int Quant_Objects=ObjectsTotal();   
   int LenPref=StringLen(Prefix);
   ArrayResize(Name_Del,Quant_Objects);
   for(int k=0; k<Quant_Objects; k++) {
      string Obj_Name=ObjectName(k);   
      string Head=StringSubstr(Obj_Name,0,LenPref);
      if (Head==Prefix) {                              
         Quant_Del+=1;        
         Name_Del[Quant_Del-1]=Obj_Name;
         }
     }
   for(int i=0; i<Quant_Del; i++) ObjectDelete(Name_Del[i]); 
// ----- Конец блока удаления всех объектов, построенных на графике -----
   return(0);
}

Dans init(), vous devez également initialiser la variable Prefix déclarée globalement

Par exemple :

int init() {
   IndicatorShortName("IB_"+Symbol());
   Prefix="IB_"+Symbol();
//-----------------------------
   SetIndexBuffer(0, isbup);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,181);
   SetIndexEmptyValue(0,0.0);
   SetIndexLabel(0,"Long Signal");
//-----------------------------
   SetIndexBuffer(1, isbdn);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,181);
   SetIndexEmptyValue(1,0.0);
   SetIndexLabel(1,"Short Signal");
//-----------------------------
   SetIndexBuffer(2, arrup);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexArrow(2,159);
   SetIndexEmptyValue(2,EMPTY_VALUE);
   SetIndexLabel(2,"Long Level");
//-----------------------------
   SetIndexBuffer(3, arrdn);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexArrow(3,159);
   SetIndexEmptyValue(3,EMPTY_VALUE);
   SetIndexLabel(3,"Short Level");
//-----------------------------
   return(INIT_SUCCEEDED);
}
 
borilunad:

Je l'ai vérifié, et malheureusement, ce n'est pas la réponse ! L'erreur 138 apparaît ! Il est tout à fait compréhensible que le testeur et l'expert aient maintenant des demandes différentes ! C'est pour ça qu'il ratisse les votes ! Ajuster l'algorithme à l'écart n'a aucun sens !

Je vais utiliser l'écart constant accru pour l'instant. Peut-être les développeurs feront-ils une imitation de l'écart variable et des retards dans l'exécution des ordres !

Si j'étais à Moscou, je vous inviterais à manger des crêpes ! :))

Et ici, je n'ai que des crêpes. Mais je t'aurais quand même invité !

Je vous ai dit de ne pas ouvrir sur le marché, mais d'utiliser des ordres stop. Je te l'ai dit tout de suite.

Et merci pour les crêpes. Vous pouvez me les envoyer par Skype. ;)

 
Parkhom:


Je l'ai mis en attente :) S'il n'y a pas d'autre moyen.

ObjectsDeleteAll() - supprime tout. Mais je veux avoir un bel effet et supprimer les objets dessinés par l'indicateur.


Voulez-vous les rechercher et les supprimer par leur nom ? Ou peut-être, vous avez un demi-millier d'objets là ?


Et si vous êtes dans une boucle, cela vaut la peine d'essayer la séquence inverse dans une boucle

 for(int i=obj_total-1;i>=0;i--)
      {
      ObjectDelete(ObjectName(i)); 
      }
 
J'ai commencé à tester mon Expert Advisor, j'ai commencé à avoir des problèmes avec le testeur, je voudrais demander aux testeurs expérimentés combien le testeur peut aggraver ? Je ne suis pas sûr de l'ampleur du problème que rencontre le testeur, mais j'aimerais savoir à quel point le testeur en a.
 
Burger:
J'ai commencé à tester mon Expert Advisor, j'ai commencé à avoir des problèmes avec le testeur, je voudrais demander aux testeurs expérimentés combien le testeur peut aggraver ? Je ne sais pas, j'ai commencé à tester mon testeur, il a commencé à avoir des problèmes avec lui, je voudrais demander aux "testeurs" expérimentés à quel point le testeur peut empirer.
Qu'est-ce que le testeur a à voir là-dedans ?
Raison: