Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 769

 
evillive:
lembrar o antigo número de byes e compará-lo com o número atual, de que outra forma?
Isso é exatamente o que não está funcionando.
 
Leonid123456:
É exatamente isso que eu não posso fazer.
criar uma variável inteira, atribuir-lhe o número de compras e depois contar novamente as compras e comparar com o valor dessa variável não é possível?
 
evillive:
criar uma variável inteira, atribuir-lhe o número de compras e depois, mais uma vez, contar as compras e comparar com o valor dessa variável não funciona?
Obrigado!
 
tuner:

Não há nada de errado com estes valores, todos eles estão corretos, mas não é disso que estamos falando.

O problema com a sexta-feira em particular não é relevante se sua hora local for X horas a mais do que a do seu corretor.

Mas imagine se em seu computador local não houvesse +1, mas -1 hora de diferença com o corretor.

E há esta simples condição:

Neste caso:

1. o corretor terá o primeiro tique da sexta-feira, por exemplo, o tique de hoje, que tem um horário de 2014.11.07 00:00

2. o número de segundos decorridos de01.01.1970 00:00 até o tick em questão, ou seja,2014.11.07 00: 00

3. levamos o número de segundos decorridos de 01.01.1970 00:00 até06.11.2014 21:30 (é a data de ontem, porque tomamos o horário do PC local, que no momento do tick não é sexta-feira, mas quinta-feira, que é o 6º dia, ou, para ser mais preciso, 2014.11.06 23:00, a diferença de 1 hora)

Voila, o número de segundos no ponto 2 é maior do que no ponto 3.

Isto significa que o primeiro tick de sexta-feira executará a impressão especificada no código, embora se a funçãoStringToTime() tirar a data do servidor do corretor, então tudo funcionaria como planejado, a impressão só apareceria na sexta-feira após o horário passar das21h30min.

Sim... Eu não entendi imediatamente o problema. Eu sempre tenho o local maior que o servidor e não me deparei com este problema. A única saída é levar o dia em conta e não utilizar a representação de tempo reduzido.
 
AlexeyVik:
Sim... Não entendi o problema de imediato. Meu local é sempre maior que o servidor e eu não encontrei tal problema. A única saída é levar o dia em conta e não utilizar representação de tempo reduzido.

Bem, sim, como opção para alimentar a função com a hora certa, juntamente com a data extraída da TimeCurrent(), neste caso o problema não deve parecer ser

A propósito, meu horário local é sempre maior do que o do corretor, mas mesmo assim este problema da forma descrita acima apareceu na sexta-feira passada ao mesmo tempo em dois corretores diferentes (um demo, o segundo real). O motivo pelo qual isso aconteceu ainda é um mistério. Entretanto, o código já foi substituído por outro, portanto este problema não deve acontecer novamente

 
tuner:

Bem, sim, como opção para alimentar a função com a hora certa, juntamente com a data extraída da TimeCurrent(), neste caso o problema não deve parecer ser

A propósito, meu horário local é sempre maior do que o do corretor, mas mesmo assim este problema da maneira descrita acima apareceu na sexta-feira passada ao mesmo tempo em dois corretores diferentes (um demo, o segundo real). O motivo pelo qual isso aconteceu ainda é um mistério. Entretanto, o código já foi substituído por outro, portanto este problema não deve acontecer novamente

Sim, há várias variantes. Por exemplo, você pode verificar a hora local na sexta-feira à noite em vez da hora do servidor. Mas nesse caso, se você estragar o tempo do computador, você pode se meter em muitos problemas.
 
evillive:
criar uma variável inteira, atribuir a ela o número de compras e depois, mais uma vez, contar as compras e comparar com o valor dessa variável não é possível?

Você pode me dar um exemplo do código?

Após a comparação, a variável deve ser reescrita, caso contrário, o mesmo código será executado infinitamente. (digamos que era 6 e se tornou 7, preciso escrever na variável que se tornou 7 após a comparação)

 
Leonid123456:

Você poderia nos dar um exemplo do código?

Após a comparação, a variável deve ser reescrita, caso contrário, o mesmo código será executado infinitamente. (digamos que eram 6 e agora são 7, devemos escrever na variável que são 7 após a comparação).


Não se preocupe, aqui está a função de Kim que estou usando e ela funciona em todas as construções:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает количество позиций.                                 |
//+----------------------------------------------------------------------------+
int NumberOfPositions(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), kp=0;
  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) kp++;
  } } } } }
  return(kp);
}
//+----------------------------------------------------------------------------+

E isto é mais:

  int BuyPos = NumberOfPositions(Symbol(),OP_BUY, Magic);
  int SellPos = NumberOfPositions(Symbol(),OP_SELL,Magic);

Tudo o que você precisa fazer é verificar de acordo com seus objetivos:

if(BuyPos >= n) 
 
borilunad:

Não se preocupe, aqui está uma função Kim que eu uso e que funciona em todas as construções:

E isso além disso:

Tudo o que você precisa fazer é verificar de acordo com seus objetivos:

Muito obrigado!
 
borilunad:

Não se preocupe, aqui está um recurso Kim que eu uso e que funciona em todas as construções:

E isso além disso:

Tudo o que você precisa fazer é verificar de acordo com seus objetivos:

Conectado. Funciona indefinidamente...

Foi capaz de resolver o problema utilizando o último método deste artigo https://www.mql5.com/ru/articles/1399