Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 624

 
Leo59:
Pode dizer-me porque é que isto pode acontecer?

duplo 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:
Obrigado Vladimir!

Esta é uma característica interessante. Vai-se pesquisar no motor de busca, mas não se encontra nada. Quando faz uma pergunta no fórum e espera por uma resposta, encontra-a por si próprio ))


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

Peculiaridades de trabalhar com números duplos em MQL4

Особенности работы с числами типа double в MQL4
Особенности работы с числами типа double в MQL4
  • 2009.11.02
  • MetaQuotes Software Corp.
  • www.mql5.com
В данной заметке собраны советы по решению наиболее часто возникающих ошибок при работе с числами типа double в программах на MQL4.
 
Leo59:
Por favor, diga-me, o que pode causar isto?

duplo A;
int x, y;

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

como regra, penso eu:

Variáveis que são utilizadas em cálculos matemáticos, é melhor declará-las como duplas

Se estes cálculos utilizarem uma variável de laço incremental, podemos utilizar o dobro y=y+1 ou o dobro y=y-1;

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

como regra, penso eu:

As variáveis que são utilizadas nos cálculos matemáticos são melhor declaradas como duplas.

ou duplo y=y+1 ou duplo y=y-1;

Há também uma conversão de tipo explícita:

double A;
int x, y;

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

Olá.

Por favor, diga-me como encontrar uma posição com um determinado lote entre as posições em aberto.

O símbolo e o número mágico são desconhecidos. Preciso da seguinte condição: se ( lote da posição== 0,1) então {alguma acção;}

 
mila.com:

Olá.

Pode dizer-me como encontrar entre as posições em aberto uma posição com um determinado lote.

O símbolo e o número mágico são desconhecidos. Preciso da seguinte condição: se ( lote da posição== 0,1) então {some ação;}

Aqui está um exemplo de um guião que passa por todas as posições abertas e compara o seu volume com um determinado (variável"lote"):

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

Aqui está um exemplo de um guião que passa por todas as posições abertas e compara o seu volume com um determinado (variável"lote"):

Obrigado, desculpe, não especifiquei, existe algo semelhante para a MQL4?

 
mila.com:

Obrigado, desculpe, não especifiquei, existe algo semelhante para a MQL4?

Não, não. E porquê, quando existe o MetaTrader 5 com rede e cobertura e se pode negociar em trocas reais?

 
Karputov Vladimir:

Aqui está um exemplo de um guião que passa por todas as posições abertas e compara o seu volume com um determinado (variável"lote"):

Vladimir, posso perguntar-lhe como prevê uma posição com um volume de 0,0 neste código?

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

Vladimir, posso perguntar-lhe como prevê a posição 0.0 neste código?

Esta é uma verificação para devolver a função PositionGetDouble. Se falhar, devolve 0 - ou seja, é um erro.