Questions des débutants MQL5 MT5 MetaTrader 5 - page 1141

 
Vladimir Karputov:

Oui. Maintenant, essayez de commencer en haut du graphique et de faire glisser le réticule vers le bas ...

(1250,761-1193,590)/1250,761*100 = 4,570897237762


 
Igor Zakharov:

(1250,761-1193,590)/1250,761*100 = 4,570897237762

Seulement maintenant, il y a une nuance : puisque nous avons commencé à tirer vers le haut, et terminé vers le bas - les pourcentages sur le graphique sont indiqués avec un signe "-". Pour moi, c'est plus informatif.

 
Vladimir Karputov:

Je suppose que vous n'avez pas oublié qu'il y a une calculatrice, n'est-ce pas ? Ne pouvez-vous pas au moins calculer quelque chose vous-même ?


Ajouté : Si la calculatrice est trop lourde, je peux refaire un devis :

Terminal : L'outil Crosshair affiche désormais la distance entre les niveaux de prix non seulement en pips, mais aussi en pourcentage:

Il n'y a aucun problème avec la calculatrice et il n'y en a jamais eu.

Cependant, le "pourcentage" est une fraction de quelque chose par rapport à une valeur totale prédéterminée = 100%.

Donc, la distance entre les niveaux de prix en pourcentage par rapport à quoi ?

https://ru.wikipedia.org/wiki/Процент

 
Anzhela Sityaeva:

Donc, la distance entre les niveaux de prix en pourcentage de quoi ?

Par rapport au prix initial (d'où vous faites glisser le réticule).

 
Igor Zakharov:

par rapport au prix de départ (d'où vous faites glisser le réticule). cela a fonctionné pour moi, voir ci-dessus.

Si l'endroit d'où vous partez = 100% et celui où vous vous arrêtez 0%, alors le résultat = 100%.
 
Anzhela Sityaeva:
Si l'endroit d'où vous partez = 100% et celui où vous vous arrêtez 0%, alors le résultat = 100%.

J'espère que vos clients ne lisent pas ceci...

0% où 0 est absolu
 
Igor Zakharov:

J'espère que vos clients ne lisent pas ceci...

Le 0% est là où le 0 est absolu.

Oui... Vendredi, c'est une bonne chose que je ne sois pas seul. Bien que la façon la plus simple de le dire soit de dire que 100% est considéré comme la valeur du prix à partir duquel la mesure commence.

 

Aidez-nous à finaliser l'EA sur MT5)))).

Ajout de la sélection du lot fixe et du lot à risque... Dans le testeur, tout fonctionne bien, mais dans le terminal, lorsque vous sélectionnez un lot à risque, l'EA sort du graphique...

   double dfg, ifg;
   dfg = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
   ifg = InpVolumeLotOrRisk;
   switch(IntLotOrRisk)
     {
      case MY_FIXLOT:
         InpLots= InpLotsfix;
         break;

      case MY_RISKLOT:
         InpLots= dfg*ifg/25000;    // FreeMargin * %риска) / 100 * 250(средняя цена лота)
         break;

     }

Qu'est-ce qui ne va pas avec ce bout de code ?))

P.S. Ne commencez pas à critiquer la formule de risque pendant quelques pages - je suis tout à fait satisfait d'une telle variante) L'essentiel est que le lot lui-même s'élève derrière la balance)

 
Vlad Svetlov:

Aidez-nous à finaliser l'EA sur MT5)))).

Ajout de la sélection du lot fixe et du lot à risque... Dans le testeur, tout fonctionne bien, mais dans le terminal, lorsque vous sélectionnez un lot à risque, l'EA sort du graphique...

Qu'est-ce qui ne va pas avec ce bout de code ?))

P.S. Ne commencez pas à critiquer la formule de risque pour quelques pages - je suis tout à fait heureux avec une telle variante) L'essentiel que le lot lui-même se lève derrière la balance)

obtenus à la suite de lots de calculs mathématiques doivent être vérifiés et arrondis si nécessaire.

J'utilise une fonction :

//+------------------------------------------------------------------+
//| Lot Check                                                        |
//+------------------------------------------------------------------+
double LotCheck(double lots,CSymbolInfo &symbol)
  {
//--- calculate maximum volume
   double volume=NormalizeDouble(lots,2);
   double stepvol=symbol.LotsStep();
   if(stepvol>0.0)
      volume=stepvol*MathFloor(volume/stepvol);
//---
   double minvol=symbol.LotsMin();
   if(volume<minvol)
      volume=0.0;
//---
   double maxvol=symbol.LotsMax();
   if(volume>maxvol)
      volume=maxvol;
   return(volume);
  }

après l'avoir appelé, vous devriez vérifier ce qu'il retourne - si "0.0" -> cela signifie que le lot calculé est très petit.

 

Salud à tous.

J'ai remarqué cette anomalie en dessinant le zigzag standard du dossier Exemples.

La seule différence est la date de début du test. Peut-être quelqu'un connaît-il la cause de cette distorsion et sait-il comment la réparer ?