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

 
evillive:
Essayez
Merci.
 
evillive:
Non, il a ensuite réfléchi et décidé que 140,15 ou 140,35 est également un prix élevé et qu'il pourrait être nécessaire. Le client n'a pas encore décidé de ce dont il a besoin : )))).

artmedia70:
Eh bien... Quand il aura enfin décidé ce qu'il veut, laissez-le commencer à réfléchir...


Bonne journée !

Vous êtes très polis, messieurs, étant donné le titre de ce fil.

J'ai commencé à réfléchir. Et réalisé que ce que vous avez conseillé ne résout pas le problème.

Il n'y a pas de client))), j'écris pour moi-même. La tâche consistait fondamentalement à expliquer le prix du conseiller après la virgule, auquel l'action est effectuée.

Le prix peut être XXX.01 ou XXX.34 - cela n'a pas d'importance. XXX.00 que j'ai indiqué à titre d'exemple.

Il s'est avéré que c'était simple.

int start()                                   // Спец. функция start
  {
//----
   double Price, Level, Level_2;                 // Текущая цена и уровень для расчета
   Price=Bid;                                    // Запрашиваем цену
   Level=MathFloor(Bid);                         // Задаем уровень XXX.00
   Level_2 = MathFloor(Bid)+50*Point;            // Задаем уровень ХХХ.50
                              
//----
   if (Price==Level)                                      // Если цена на уровне ХХХ.00
     {
      Comment("Курс был равен  заданному уровню ", Level);    // Сообщение трейдеру
     }
     
   if (Price==Level_2)                                    // Если цена на уровне ХХХ.50
     {
      Comment("Курс был равен  заданному уровню ", Level_2);   // Сообщение трейдеру
     }
   
   return;// Выход из start()

"Level2" = 50 peut être sorti dans les variables externes et fixer n'importe quel niveau qui est intéressant à ce moment.

La question est supprimée.

P.S. L'exemple concerne les paires de yens (deux décimales). Pour 4 chiffres, il faut l'écrire un peu différemment (!Débutants, si vous êtes intéressés, demandez à un pro comment)). ).

Je n'écris que très rarement dans les forums. L'envie de changer les habitudes n'est pas apparue.


Bonne journée à vous tous et bonne chance.

 
Les alertes et les impressions dans le code affectent-elles le temps d'optimisation ?
En d'autres termes, l'optimisation sait-elle comment les contourner ou cela doit-il être fait au niveau de l'utilisateur ?
 
chief2000:
Les alertes et les impressions dans le code affectent-elles le temps d'optimisation ?
En d'autres termes, l'optimisation sait-elle comment les contourner ou cela doit-il être fait au niveau de l'utilisateur ?


Affect, surtout si vous produisez le résultat d'un calcul gourmand en temps. Mieux vaut insérer la vérification IsOptimization() avant les alertes.
 
evillive:

C'est le cas, surtout si vous produisez le résultat d'un calcul gourmand en temps. Il est préférable d'insérer la vérification IsOptimization() avant les alertes.

Je parlais des commandes Alert et Print elles-mêmes plutôt que des calculs pour la sortie. Ils ne sont d'aucune utilité pendant l'optimisation, mais peuvent-ils être automatiquement désactivés par l'optimiseur ou non ? (Chaque contrôle supplémentaire affecte également la vitesse d'optimisation).
 
chief2000:

Je ne faisais pas référence aux calculs de sortie, mais aux commandes Alert et Print elles-mêmes. Ils ne sont d'aucune utilité pendant l'optimisation, mais sont-ils automatiquement désactivés par l'optimiseur ou non ? (chaque vérification supplémentaire affecte également la vitesse d'optimisation)


L'alerte, l'impression et le contrôle ont tous deux un effet. Mais la vérification prend moins de temps.
 
evillive:

Tant l'alerte que l'impression et le contrôle sont concernés. Mais la vérification est moins chronophage.

Pour autant que je sache, l'alerte et l'impression en mode optimisation (pas de test) sont simplement ignorées par le testeur, ce qui n'affecte donc rien... MarketInfo a un impact beaucoup plus important sur la vitesse, il peut vraiment ralentir le processus. Il est vraiment utile si(IsTesting()) et si(IsOptimization()) ; par exemple, si le programme surveille constamment l'écart actuel, ce n'est pas nécessaire dans le testeur.

 
alsu:

Pour autant que je sache, l'alerte et l'impression en mode optimisation (pas de test) sont simplement ignorées par le testeur, ce qui n'affecte donc rien... MarketInfo a un impact beaucoup plus important sur la vitesse, il peut ralentir considérablement le processus. Il est vraiment utile ici if(IsTesting()) et if(IsOptimization()) ; par exemple, si le programme contrôle constamment la propagation actuelle, il n'y a pas besoin de testeur.


Si cela n'est pas corrigé, les commentaires peuvent vraiment ralentir la MT.
À propos de MarketInfo - voulez-vous dire la commande elle-même ? Et par exemple l'utilisation de Bid/Ask (dans sa forme pure, pour le symbole courant) ?
 
chief2000:

Si ce problème n'est pas réglé, les commentaires peuvent vraiment ralentir MT.
À propos de MarketInfo - faites-vous référence directement à la commande elle-même ? Et par exemple en utilisant Bid/Ask (dans sa forme pure, pour le symbole actuel) ?

Dans le testeur, MarketInfo() ne fonctionne pas, et les Bid et Ask sont lents et déformés. Donc, sur les conseils de Xrust, je les récupère à partir de iClose(NULL,0,0) :

  if(IsOptimization() || IsTesting() || IsVisualMode())
  {
    Spread = 21; 
    spr = NormalizeDouble(Spread*Point,Digits);
    bid = NormalizeDouble(iClose(Symbol(),0,0),Digits);
    ask = NormalizeDouble(iClose(Symbol(),0,0)+spr,Digits);
  }
  else
  {
    Spread = MarketInfo(Symbol(),MODE_SPREAD);
    spr = NormalizeDouble(Spread*Point,Digits);
    bid = MarketInfo(Symbol(),MODE_BID);
    ask = MarketInfo(Symbol(),MODE_ASK);
  }
 
borilunad:

Dans le testeur, MarketInfo() ne fonctionne pas, et les Bid et Ask sont lents et déformés. Par conséquent, sur les conseils de Xrust, je les obtiens de iClose(NULL,0,0) :


Des béquilles, imho.
Raison: