Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 624

 
Leo59:
Können Sie mir sagen, warum das passieren könnte?

Doppel-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:
Danke, Wladimir!

Dies ist eine interessante Funktion. Sie suchen in der Suchmaschine, aber Sie finden nichts. Wenn Sie eine Frage im Forum stellen und auf eine Antwort warten, finden Sie sie selbst ))


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

Besonderheiten bei der Arbeit mit doppelten Zahlen in MQL4

Особенности работы с числами типа double в MQL4
Особенности работы с числами типа double в MQL4
  • 2009.11.02
  • MetaQuotes Software Corp.
  • www.mql5.com
В данной заметке собраны советы по решению наиболее часто возникающих ошибок при работе с числами типа double в программах на MQL4.
 
Leo59:
Bitte sagen Sie mir, was dies verursachen kann?

Doppel-A;
int x, y;

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

in der Regel, denke ich:

Variablen, die in mathematischen Berechnungen verwendet werden, deklariert man am besten als double

Wenn diese Berechnungen eine inkrementelle Schleifenvariable verwenden, können wir double y=y+1 oder double y=y-1 verwenden;

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

in der Regel, denke ich:

Variablen, die in mathematischen Berechnungen verwendet werden, deklariert man am besten als double

oder double y=y+1 oder double y=y-1;

Es gibt auch eine explizite Typkonvertierung:

double A;
int x, y;

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

Hallo.

Bitte sagen Sie mir, wie ich eine Position mit einem bestimmten Los unter den offenen Positionen finden kann.

Das Symbol und die magische Zahl sind unbekannt. Ich brauche die folgende Bedingung: if ( position's lot== 0.1) then {some action;}

 
mila.com:

Hallo.

Bitte sagen Sie mir, wie ich eine Position mit einem bestimmten Los unter den offenen Positionen finden kann.

Das Symbol und die magische Zahl sind unbekannt. Ich brauche ungefähr die folgende Bedingung: if ( position's lot== 0.1) then {some action;}

Hier ein Beispiel für ein Skript, das alle offenen Positionen durchläuft und ihr Volumen mit einem vorgegebenen Wert (Variable"lot") vergleicht:

//+------------------------------------------------------------------+
//|                                               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)
           {
            // найдена позиция с заданным объёмом 
           }
        }
     }
  }
//+------------------------------------------------------------------+
Dateien:
 
Karputov Vladimir:

Hier ein Beispiel für ein Skript, das alle offenen Positionen durchgeht und ihr Volumen mit einem bestimmten Wert vergleicht (Variable"lot"):

Danke, es tut mir leid, ich habe nicht angegeben, gibt es etwas ähnliches für MQL4?

 
mila.com:

Danke, es tut mir leid, ich habe nicht angegeben, gibt es etwas ähnliches für MQL4?

Nein, nein. Und warum, wenn es MetaTrader 5 mit Netting und Hedging gibt und Sie an echten Börsen handeln können?

 
Karputov Vladimir:

Hier ein Beispiel für ein Skript, das alle offenen Positionen durchgeht und ihr Volumen mit einem bestimmten Wert vergleicht (Variable"lot"):

Vladimir, darf ich fragen, wie Sie sich eine Position mit einem Volumen von 0,0 in diesem Code vorstellen?

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

Vladimir, darf ich fragen, wie Sie sich die Position 0,0 in diesem Code vorstellen?

Dies ist eine Prüfung, um die Funktion PositionGetDouble zurückzugeben. Schlägt es fehl, wird 0 zurückgegeben, d.h. es ist ein Fehler.