CopyTicksRange () não funciona corretamente na MQL5. a - página 2

 
Alexey Viktorov #:

Destaquei as palavras-chave.

NÃO solicite carrapatos que ainda não existem por definição. Se você solicitar carrapatos mesmo um milissegundo além do tempo atual em milissegundos, você receberá a própria g.........y na forma dos problemas que você listou.


Portanto, no seu entendimento, devo verificar primeiro, se esses carrapatos estão disponíveis? por exemplo, como? posso verificar também, se a faixa solicitada está de férias? deve ser feita pela função CopyTicksRange() . Meu trabalho é dar-lhe os parâmetros de entrada de acordo com a documentação. E pode verificá-los e, se houver alguma coisa, devolver um erro, mas não algum lixo na resposta.

Você pode pensar em uma maneira de verificar se uma barra existente contém carrapatos do segundo ao terceiro segundo, para evitar que esta função caia?


Acima escrevi um exemplo de código onde tudo está lá, mas a resposta ainda está errada.

 
RusPro #:


Então, no seu entendimento, eu deveria verificar primeiro se estes carrapatos estão disponíveis? Como, por exemplo? Devo verificar também se a faixa solicitada está no dia de folga? Isto deve ser feito pela função CopyTicksRange(). Meu trabalho é dar-lhe os parâmetros de entrada de acordo com a documentação. E pode verificá-los e, se algo acontecer, devolverá um erro, mas não algum lixo em resposta.


Acima escrevi uma amostra de código onde tudo está presente, mas a resposta ainda está errada.

SymbolInfoTick

Retorna os preços atuais para um símbolo especificado em uma variável do tipo MqlTick.

bool  SymbolInfoTick(
   string    symbol,     // символ
   MqlTick&  tick        // ссылка на структуру
   );
struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;           // Текущая цена Bid
   double       ask;           // Текущая цена Ask
   double       last;          // Текущая цена последней сделки (Last)
   ulong        volume;        // Объем для текущей цены Last
   long         time_msc;      // Время последнего обновления цен в миллисекундах
   uint         flags;         // Флаги тиков
   double       volume_real;   // Объем для текущей цены Last c повышенной точностью
  };

Você não precisa consultar mais que o tempo_msc

 

1)No meu exemplo acima existe a faixa solicitada.

2) mas o que impede de fazer essa verificação no próprioCopyTicksRange e refleti-la também na documentação? por que os desenvolvedores me pedem para fazer muletas em vez de simples correções de seus erros?


Por falar emSymbolInfoTick - também funciona mal, pelo menos para caracteressintéticos:)

Como eu me lembro, ele sempre retorna o tempo do primeiro tick em vez do último.

 
RusPro SymbolInfoTick - também funciona mal, pelo menos para caracteressintéticos:)

Tanto quanto me lembro, ele sempre retorna o tempo do primeiro tique em vez do último.

Eu não participo mais deste diálogo.

 
Alexey Viktorov #:

Não estou mais participando deste diálogo.

Você também não é um desenvolvedor Metatrader, por que você assumiu o papel de advogado deles?

Em essência, os pontos levantados são corretos, a função deve funcionar corretamente.
 
Sergey Gridnev #:
Você também não é um desenvolvedor Metatrader, por que você assumiu o papel de advogado deles?

Essencialmente os pontos levantados estão corretos, a função deve funcionar corretamente.

Uma linha de volta para o diálogo:

A função deve funcionar da maneira que os desenvolvedores pretendiam, não da maneira que os usuários querem que funcione. Um quer uma coisa, outro quer outra, e o outro quer tolices.

Esta é a razão pela qual os desenvolvedores não respondem a você. E eu não sou advogado, estou tentando trazer-lhe uma simples verdade, não enojar os outros se você mesmo não puder fazer isso. Você, por outro lado, ligou o "não......... cede..." e está inventando mitos sobre as muletas.

Isso é realmente TUDO... não tenha esperanças.

 
RusPro #:

E aqui está o bicho:

ou seja, a função utilizada por milhares de programadores, me devolveu pessoalmente todos os carrapatos desde o início da barra atual, mas não incluídos na faixa solicitada

Isto é de fato um bug. Fornecer os dados completos para reprodução. Se confirmado, os desenvolvedores farão uma correção nas próximas construções.

Talvez o problema esteja na matriz estática MqlTick.
 

Alexey Viktorov #:

Não há necessidade de solicitar carrapatos além do tempo_msc

O último tick histórico pode ser mais recente que SymbolInfoTick (chamado depois de CopyTicks). Deparo com isto diariamente.

A situação oposta pode ocorrer. Fluxos que não são sincronizados.
 
fxsaber #:

Isto é de fato um erro. Fornecer dados completos para repetição. Se confirmado, os desenvolvedores farão uma correção nas próximas construções.

Talvez, o problema esteja na matriz estática MqlTick.

Ok, vou tentar reduzir o código ao mínimo e afixá-lo. CopyTicks também contém tais falhas, mas elas ocorreram lá de forma menos previsível, o que me levou a muletas somente para o CopyTicksRange. Provavelmente, é um erro de alguma função interna comum.

Também lhe darei um exemplo para SymbolInfoTick.

 
RusPro #:

função utilizada por milhares de programadores

Unidades.