Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 896

 
ruslan:

há uma constante no OPENCL cl_ inline e é igual a #define CL_DBL_MAX 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.0, verificando o grau de dois em 1024 obtidos. 2^1024 = 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216 E então abaixo desse número está o número de pi

depois de

#define CL_M_PI 3.141592653589893115998

3.141592653589793238462643383279502884197169

explicar por que ????

https://ru.wikipedia.org/wiki/Число_двойной_точности

Число двойной точности — Википедия
  • ru.wikipedia.org
Числа с плавающей запятой (двойной/одинарной/четверной точности) поддерживаются сопроцессором (до 80486SX, включительно, выполнен как отдельный модуль-0х87/0х287/0х387/0х487, начиная с 80486DX является встроенным в главный процессор. Сопроцессор, хотя он сейчас и является частью главного процессора, принято называть FPU — Floating Point Unit...
 
É possível obter o valor de equilíbrio nas barras anteriores em mcl4? Como escrevo isto no código?
 
Meu indicador tem um atraso de +/- 1 segundo depois que o botão é pressionado. MQL5

Adicionei estes manipuladores de eventos para operação e atualização do painel:
- OnChartEvent para manipulação de cliques de botão
- OnTimer para atualização de dados do painel

O código inteiro é 750+ linhas, há apenas vários laços, um para atualizações na janela indicadora, os outros três têm um pequeno número de passes (máximo 10 * 4)

Esta parte do código após OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) é visivelmente lenta
if(go == "E")
     {
      if(ObjectGetInteger(ChartID(),no,OBJPROP_STATE) == true)
        {
         ObjectSetInteger(ChartID(),no,OBJPROP_COLOR,cpanel);
         ObjectSetInteger(ChartID(),no,OBJPROP_BGCOLOR,ctext);
        }
      else
        {
         ObjectSetInteger(ChartID(),no,OBJPROP_COLOR,ctext);
         ObjectSetInteger(ChartID(),no,OBJPROP_BGCOLOR,cpanel);
        };
      for(int i = 0; i < limit_x; i++)
        {
         vname = i + 1;
         if("MCC B№"+(string)vname != no)
           {
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_STATE,false);
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_COLOR,ctext);
            ObjectSetInteger(ChartID(),"MCC B№"+(string)vname,OBJPROP_BGCOLOR,cpanel);
           };
        };
     };
 
Alexandr Sokolov:
Meu indicador tem um atraso de +/- 1 segundo depois que o botão é pressionado. MQL5

Adicionei estes manipuladores de eventos para operação e atualização do painel:
- OnChartEvent para manipulação de cliques de botão
- OnTimer para atualização de dados do painel

O código inteiro é 750+ linhas, há apenas vários laços, um para atualizações na janela indicadora, os outros três têm um pequeno número de passes (máximo 10 * 4)

Esta parte do código após OnChartEvent if(id == CHARTEVENT_OBJECT_CLICK) é visivelmente lenta

ChartRedraw() é necessário após todas as mudanças terem sido feitas em todos os objetos cujas propriedades são alteradas pela ação do botão.

 
Artyom Trishkin:

ChartRedraw() é necessário após fazer todas as mudanças em todos os objetos cujas propriedades são alteradas com a ação de botões.

De fato! Eu não tinha pensado nisso. Muito obrigado!


Eu estava colocando alertas noOnChartEvent se(id ==CHARTEVENT_OBJECT_CLICK) - havia alertas, sem atualizações. E é por isso que eu não conseguia entender por que

 
novichok2018:
É possível obter o valor de equilíbrio nas barras anteriores em mcl4? Como escrevo no código?

Olá, especialistas! Será que ninguém sabe?! Eu não acredito nisso.

 
novichok2018:

Olá, especialistas! Será que ninguém sabe?! Eu não acredito nisso.

Aqui está o preço de um carrapato

SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE ) * volume

Em seguida, multiplique pela diferença em carrapatos entre o preço do pedido aberto e o preço Fechado (ou outro) da barra necessária. Mas leve em conta que você não pode saber, utilizando os métodos padrão, qual foi a propagação naquele momento

 
novichok2018:

Olá, especialistas! Será que ninguém sabe?! Eu não acredito nisso.

o saldo depende do fechamento das posições - se nada foi fechado, então o saldo não mudou

 
Não devo ter formulado a pergunta corretamente, uma vez que as respostas estão fora do tópico. Não me importa se as posições fecharam ou não, e certamente não estou interessado no valor do carrapato. Preciso saber qual era osaldo da conta no momento do fechamento de 1, 2, 3 barras de um certo símbolo para comparação. As posições nestas barras foram abertas e fechadas, incluindo posições sobre outros símbolos: em alguns casos as posições foram fechadas no positivo, em outros casos - no negativo, em outros casos - ainda não fechadas, isso significa que o saldo mudou. Eu preciso conhecer os valores específicos. Obrigado.
 
novichok2018:
Não devo ter formulado a pergunta corretamente, uma vez que as respostas estão fora do tópico. Não me interessa se as posições fecharam ou não, e não estou interessado no custo do carrapato. Preciso saber qual era o saldo da conta no momento de fechar 1, 2, 3 barras para comparação. As posições foram abertas e fechadas nestas barras e, portanto, o saldo estava mudando. Precisamos conhecer o valor específico. Obrigado.

- Olhamos para a época do último bar
- somar tudo o que foi fechado neste bar
- subtrair do saldo atual

e assim todas as barras, por sua vez