Erros, bugs, perguntas - página 1145

 
Renat:

Assim, dê os seus números, certifique-se de começar com contadores zero, medindo 5 minutos por exemplo no EURUSD e iniciando ambos os programas ao mesmo tempo.

ps: o facto de ler o contador no inite é uma boa maneira de se enganar a si próprio se for desleixado. comece o contador a partir do zero se quiser fazer uma experiência limpa.

Hmmm... Obrigado. Olhado para o EURUSD no CD - está tudo bem. Estou a contar uniformemente a partir do zero.

Não posso repetir esta experiência agora (a Bolsa de Moscovo está fechada). Mas foi assim durante o dia no mercado activo:

ExpCount (Si-6.14,M1) OnTick_count=697
TicksCount (Si-6.14,M1) OnCalculateCount=1326

Literalmente, um par de minutos. Há algo de errado com o corretor?

 
Fry:

Um... Obrigado. Olhado para o EURUSD no CD - não há problema. Estou a contar uniformemente a partir do zero.

Não posso repetir esta experiência agora (A Bolsa de Moscovo está fechada), mas foi assim no mercado activo durante o dia:

ExpCount (Si-6.14,M1) OnTick_count=697
TicksCount (Si-6.14,M1) OnCalculateCount=1326

Literalmente, um par de minutos. Há algo de errado com o corretor?

Não, não depende do corretor. O terminal recebe um fluxo de carraças que é dado tanto a indicadores como a Conselheiros Peritos.

Geralmente significa que o indicador funciona rapidamente e recebe todas as carraças. No entanto, é provável que o perito demore nos seus cálculos e não possa deixar o manipulador antes da chegada do próximo tick. Citou um código simples como exemplo, mas na realidade calculou carraças num Expert Advisor que efectuou muitos cálculos. No mínimo, não estava tão vazio como no exemplo.

Como resultado, o Expert Advisor salta carraças que entraram mais depressa do que o seu manipulador. Se não saltar as carraças neste caso, pode facilmente colocar o perito a trabalhar num passado difícil. Por exemplo, devido aos seus custos, o Consultor Especialista receberá cotações desactualizadas durante vários segundos/minutos da fila de carraças e lerá um perfil de mercado completamente desactualizado.

 
Renat:

Não.

Geralmente significa que o indicador funciona rapidamente e recebe todas as carraças. O Conselheiro Especialista, por outro lado, é muito provavelmente lento nos cálculos e não pode deixar o manipulador antes da chegada do próximo tick.

Como resultado, o perito saltará as carraças mais depressa do que o seu manipulador. Se não saltar carraças neste caso, pode facilmente colocar o perito a trabalhar num passado difícil. Por exemplo, devido aos seus custos, o Consultor Especialista receberá cotações desactualizadas durante vários segundos/minutos da fila de carraças e lerá um perfil de mercado completamente desactualizado.

Obrigado. Já está. Suspeitei tanto por causa da fila. Não podia acreditar que esta fila vazia estivesse a abrandar tanto que quase metade do fluxo passava a voar.
 
Renat:

Não temos nenhum erro.

Tentou inserir um URL não documentado na página do clip a partir do seu browser em vez de um URL de inserção documentado e suportado. Não podemos acompanhar cada pequena mudança no motor de página do YouTube e hackear o URL partilhável com base no URL da página.

Pode explicar por que razão https://www.youtube.com/watch?v=XXXXXX é considerado "documentado" e https://www.youtube.com/watch?v=XXXXXX "indocumentado"?

Esta é a linha regular a verificar: ^https?:^https?:^youtube\\/(wwww.)?youtube\/watch\?v=S+$

 
Roffild:

Pode explicar porque é que https://www.youtube.com/watch?v=XXXXXX está "documentado" e https://www.youtube.com/watch?v=XXXXXX está "indocumentado"?

Esta é a linha regular a verificar: https?:\/(wwww.)?youtube\.com/watch\?v=S+.

Se estamos a falar de reconhecimento do URL de fundo no corpo da mensagem, não se trata de regularidade, apenas não estamos a subir pelos recursos HTTPS à procura de dados estruturados.

Se estamos a falar da funcionalidade regular de incorporação de clips do YouTube que está no painel do editor, ele ainda produz ligações HTTP do YouTube para partilhadores como http://youtu.be/ZI67sr0RXzU, mesmo que entrem através de HTTPS.


Quando estou a falar de URL documentado, estou apenas a falar do que está inserido no botão especial "Vídeo", onde só aceitamos URLs especiais para escoras do YouTube. Mas se utilizar ligações dentro do texto de um post, estamos a tentar reconhecer dados estruturados dentro dessa página para fazer uma pré-visualização.

Este é o aspecto dos dados estruturados para o vídeo:

        <meta property="og:site_name" content="YouTube">
    <meta property="og:url" content="https://www.youtube.com/watch?v=ZI67sr0RXzU">
    <meta property="og:title" content="MetaTrader 5 Strategy Tester 3D Visualization">
    <meta property="og:image" content="http://i1.ytimg.com/vi/ZI67sr0RXzU/maxresdefault.jpg">

      <meta property="og:description" content="MetaTrader 5 Strategy Tester 3D Visualization">

      <meta property="og:type" content="video">
          <meta property="og:video" content="https://www.youtube.com/v/ZI67sr0RXzU?version=3&amp;amp;autohide=1">
        <meta property="og:video:type" content="application/x-shockwave-flash">
        <meta property="og:video:width" content="960">
        <meta property="og:video:height" content="720">
e é assim que é exibido:
MetaTrader 5 Strategy Tester 3D Visualization
MetaTrader 5 Strategy Tester 3D Visualization
  • www.youtube.com
MetaTrader 5 Strategy Tester 3D Visualization
 

Saudações, senhores desenvolvedores. Que tal fazer a possibilidade de inicializar as constantes estáticas directamente na estrutura/corpo da classe, tal como é implementado em C++:

struct TStruct {   static const int a = 10; };

Isto é normalmente muito mais conveniente e claro, em vez de remover a inicialização fora da classe, desperdiçando linhas extra de código.

Agora o compilador gera um erro: '=' - utilização de cessão ilegal

 
Fry:
Obrigado. Já está. Suspeitei que era a fila de espera. Não conseguia acreditar como isto era lento, com quase metade do fluxo a passar.
Talvez não sejam os travões, mas o fluxo de carraças do servidor comercial. Se as carraças vêm do servidor "em pacote", então OnTick() do Consultor Especialista é chamado uma vez por "pacote" e não por cada carraça nele.
 
meat:

Saudações, senhores desenvolvedores. Que tal fazer a possibilidade de inicializar as constantes estáticas directamente na estrutura/corpo da classe, tal como é implementado em C++:

Isto é normalmente muito mais conveniente e claro, em vez de remover a inicialização fora da classe, desperdiçando linhas extra de código.

Agora o compilador gera um erro: '=' - utilização de cessão ilegal

Existem construtores para este fim que trabalham também para estruturas.
 
Renat:
Existem construtores para isto, que trabalham também para estruturas.

Os construtores são concebidos para inicializar os membros locais de um objecto. E estamos a falar de variáveis de classe estáticas. São inicializados ou fora do organismo de classe, ou no organismo de classe no local de declaração (se forem constantes) - este é o segundo caso de que falo, funciona em C++, e em MQL produz um erro.

 
meat:

Saudações, senhores desenvolvedores. Que tal tornar possível inicializar as constantes estáticas directamente na estrutura/corpo da classe, tal como implementado em C++:

Na verdade, apenas na inicialização em plenos termos de membros estáticos é levada para fora da classe. Apenas as constantes de tipos integrais podem ser inicializadas internamente.