Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 624

 
Leo59:
Può dirmi perché questo potrebbe accadere?

doppio 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:
Grazie Vladimir!

Questa è una caratteristica interessante. Vai a cercare nel motore di ricerca ma non trovi niente. Quando fai una domanda nel forum e aspetti una risposta, la trovi da solo ))


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

Peculiarità del lavoro con i numeri doppi in MQL4

Особенности работы с числами типа double в MQL4
Особенности работы с числами типа double в MQL4
  • 2009.11.02
  • MetaQuotes Software Corp.
  • www.mql5.com
В данной заметке собраны советы по решению наиболее часто возникающих ошибок при работе с числами типа double в программах на MQL4.
 
Leo59:
Per favore ditemi, cosa può causare questo?

doppio A;
int x, y;

x=100; y=3; A=x/y=33.000

come regola, credo:

Le variabili che sono utilizzate nei calcoli matematici, è meglio dichiararle come doppie

Se questi calcoli usano una variabile incrementale del ciclo, possiamo usare doppio y=y+1 o doppio y=y-1;

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

come regola, credo:

Le variabili che sono usate nei calcoli matematici sono meglio dichiarate come doppie.

o doppio y=y+1 o doppio y=y-1;

C'è anche una conversione esplicita del tipo:

double A;
int x, y;

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

Salve.

Per favore, ditemi come trovare una posizione con un certo lotto tra le posizioni aperte.

Il simbolo e il numero magico sono sconosciuti. Ho bisogno della seguente condizione: if ( position's lot== 0.1) then {some action;}

 
mila.com:

Salve.

Per favore, ditemi come trovare una posizione con un certo lotto tra le posizioni aperte.

Il simbolo e il numero magico sono sconosciuti. Ho bisogno della seguente condizione: if ( position's lot== 0.1) then {some action;}

Ecco un esempio di uno script che passa attraverso tutte le posizioni aperte e confronta il loro volume con uno dato (variabile"lotto"):

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

Ecco un esempio di uno script che passa attraverso tutte le posizioni aperte e confronta il loro volume con uno dato (variabile"lotto"):

Grazie, mi dispiace, non ho specificato, c'è qualcosa di simile per MQL4?

 
mila.com:

Grazie, mi dispiace, non ho specificato, c'è qualcosa di simile per MQL4?

No, no. E perché, quando c'è MetaTrader 5 con netting e hedging e si può fare trading su borse reali?

 
Karputov Vladimir:

Ecco un esempio di uno script che passa attraverso tutte le posizioni aperte e confronta il loro volume con uno dato (variabile"lotto"):

Vladimir, posso chiederti come consideri una posizione con un volume di 0,0 in questo codice?

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

Vladimir, posso chiederti come pensi che sia la posizione 0.0 in questo codice?

Questo è un controllo per restituire la funzione PositionGetDouble. Se fallisce, restituisce 0 - cioè è un errore.