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

 
Leo59:
Pouvez-vous me dire pourquoi cela peut arriver ?

double A ;
int x, y ;

x=100 ; y=3 ; A=x/y=33 000
Целый тип int x=100 / Целый тип int y=3 => Целое число 33.
Так как "А" - это вещественное число, то Целое число "33" преобразовывается к вещественному и получаем 33.0
 
Karputov Vladimir:
Merci Vladimir !

Il s'agit d'une fonctionnalité intéressante. Vous allez chercher dans le moteur de recherche mais vous ne trouvez rien. Lorsque vous posez une question dans le forum et que vous attendez une réponse, vous la trouvez par vous-même ;))


https://www.mql5.com/ru/articles/1561

Particularités du travail avec des nombres doubles dans MQL4

Особенности работы с числами типа double в MQL4
Особенности работы с числами типа double в MQL4
  • 2009.11.02
  • MetaQuotes Software Corp.
  • www.mql5.com
В данной заметке собраны советы по решению наиболее часто возникающих ошибок при работе с числами типа double в программах на MQL4.
 
Leo59:
Dites-moi, s'il vous plaît, ce qui peut causer cela ?

double A ;
int x, y ;

x=100 ; y=3 ; A=x/y=33,000

en règle générale, je suppose :

Les variables qui sont utilisées dans les calculs mathématiques, il est préférable de les déclarer comme doubles.

Si ces calculs utilisent une variable de boucle incrémentielle, nous pouvons utiliser double y=y+1 ou double y=y-1 ;

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
new-rena:

en règle générale, je suppose :

Les variables qui sont utilisées dans les calculs mathématiques sont mieux déclarées comme doubles.

ou double y=y+1 ou double y=y-1 ;

Il existe également une conversion de type explicite:

double A;
int x, y;

x=100; y=3; 
A=(double)x/y; // в операциях умножения и деления достаточно привести к double только одно
 

Bonjour.

Veuillez me dire comment trouver un poste avec un certain lot parmi les postes ouverts.

Le symbole et le nombre magique sont inconnus. J'ai besoin de la condition suivante : if ( position's lot== 0.1) then {some action;}

 
mila.com:

Bonjour.

Veuillez me dire comment trouver un poste avec un certain lot parmi les postes ouverts.

Le symbole et le nombre magique sont inconnus. J'ai besoin de la condition suivante : if ( position's lot== 0.1) then {quelque action;}

Voici un exemple de script qui passe en revue toutes les positions ouvertes et compare leur volume à un volume donné (variable"lot") :

//+------------------------------------------------------------------+
//|                                               PositionsTotal.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property  script_show_inputs
//--- input parameter
input double lot=0.01; // искомый лот
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int count_positions=PositionsTotal(); // количество открытых позиций
   for(int i=0;i<count_positions;i++)
     {
      ResetLastError();
      //--- возвращает символ соответствующей открытой позиции и автоматически выбирает позицию для дальнейшей работы с ней 
      string name=PositionGetSymbol(i);
      if(name==NULL)
        {
         Print("PositionGetSymbol Error# ",GetLastError());
         return;
        }

      double position_lot=PositionGetDouble(POSITION_VOLUME); // получаем объем позиции
      if(position_lot!=0)
        {
         if(position_lot==lot)
           {
            // найдена позиция с заданным объёмом 
           }
        }
     }
  }
//+------------------------------------------------------------------+
Dossiers :
 
Karputov Vladimir:

Voici un exemple de script qui passe en revue toutes les positions ouvertes et compare leur volume à un volume donné (variable"lot") :

Merci, je suis désolé, je n'ai pas précisé, existe-t-il quelque chose de similaire pour MQL4?

 
mila.com:

Merci, je suis désolé, je n'ai pas précisé, existe-t-il quelque chose de similaire pour MQL4?

Non, non. Et pourquoi, alors qu'il existe MetaTrader 5 avec compensation et couverture et que vous pouvez négocier sur des bourses réelles ?

 
Karputov Vladimir:

Voici un exemple de script qui passe en revue toutes les positions ouvertes et compare leur volume à un volume donné (variable"lot") :

Vladimir, puis-je vous demander comment vous envisagez une position avec un volume de 0.0 dans ce code ?

      double position_lot=PositionGetDouble(POSITION_VOLUME); // получаем объем позиции
      if(position_lot!=0)
 
Alexey Viktorov:

Vladimir, puis-je vous demander comment vous envisagez la position 0.0 dans ce code ?

Il s'agit d'un contrôle pour retourner la fonction PositionGetDouble. Si elle échoue, elle renvoie 0 - c'est-à-dire qu'il s'agit d'une erreur.
Raison: