Erros, bugs, perguntas - página 1667

 
Encontrei um número de telefone antigo no meu perfil, que há muito desapareceu, queria mudá-lo, mas precisa de uma confirmação por sms para o número antigo, o que devo fazer?
 
BlackTomcat:
Claro que não compreendo muito, mas penso, por alguma razão, que as cópias do indicador criadas por diferentes "mestres", mesmo com os mesmos parâmetros e aplicadas a um e mesmo gráfico, terão pegas diferentes. Em princípio, não sabem da cópia já existente do indicador, e não devem saber. Ao desenhar, eles simplesmente sobrepor-se-ão uns aos outros.
Posso estar enganado. Mas a lógica sugere que deve ser assim, como escrito no parágrafo anterior.

Não sou certamente um programador MQ, mas até onde este processo me foi explicado, Cinco tem feito um cache eficaz de índices, pelo que haverá sempre apenas um "mesmo" travessão, e vários "anfitriões" terão uma ligação a ele. Talvez as pegas sejam diferentes - ainda não verifiquei - mas dentro dela será a mesma entidade. Ninguém disse nada sobre "devem saber sobre a cópia que já existe" - por favor não especulem. Absolutamente, ninguém além do "anfitrião" conhece os seus indicadores, e para um indicador é mantida uma contagem de referência para ele de diferentes "anfitriões", mas não conhece os anfitriões.

Como a prática demonstra, a lógica varia de pessoa para pessoa. Por exemplo, muitas vezes a minha lógica não coincide com a da MQ, mas aqui estou apenas a contar o que ouvi deles.

 
Stanislav Korotky:

Não sou certamente um programador MQ, mas até onde este processo me foi explicado, Cinco tem feito um cache eficaz de índices, pelo que haverá sempre apenas um "mesmo" travessão, e vários "mestres" terão uma ligação a ele. Talvez as pegas sejam diferentes - ainda não verifiquei - mas dentro dela será a mesma entidade. Ninguém disse nada sobre "devem saber sobre a cópia que já existe" - por favor não especulem. Absolutamente, ninguém além do "anfitrião" conhece os seus indicadores, e para um indicador é mantida uma contagem de referência para ele de diferentes "anfitriões", mas não conhece os anfitriões.

Como a prática demonstra, a lógica varia de pessoa para pessoa. Por exemplo, muitas vezes a minha lógica não coincide com a da MQ, mas aqui estou apenas a contar o que ouvi deles.

De facto, o que escreveu está escrito directamente na Documentação:

Todas as funções como iMA, iAC, iMACD, iIchimoku, etc., criam uma cópia do indicador técnico apropriado no cache global do terminal do cliente. Se já existir uma cópia do indicador com estes parâmetros, não é criada uma nova cópia, mas o contador de referências a esta cópia é aumentado.
Só me pergunto se a "cache global do terminal do cliente" inclui, por exemplo, o Testador? Porque posso gerir um e o mesmo Expert Advisor com os mesmos indicadores no terminal (numa conta) e no Strategy Tester (no histórico) ao mesmo tempo, e não tenho a certeza de que os seus buffers de cálculo sejam idênticos. Embora, se calcular a profundidade do histórico armazenado no terminal do cliente, eles podem.
 
A100:

Consegui fazer um script de teste próximo do programa fonte com um erro durante a execução

Resultado: chamada de apontador de funções inválido em 'Script2.mq5'.

construir 1405. O erro em si permanece - transferido para outra parte do programa - tratarei dele mais tarde

Mas apareceram novas que não existiam antes

typedef int (*fn)();
class A {
public:
        A() { a = &this; ::ArrayResize( f, 1 ); f[ 0 ] = f0; }
        virtual int g0() { return 0; }
        static  int f0() { return a.g0(); }
        static A* a;
        fn f[];
};
A* A::a;
void OnStart() { A b; }
Resultado: ficheiro EX5 inválido (8)
 
Como faço para tornar visíveis os elementos da matriz Shift+F9 na depuração?
 
fxsaber:
Como posso tornar visíveis os elementos da matriz Shift+F9 na depuração?
A apresentação de elementos de matriz ainda não é suportada
 
Renat Fatkhullin:

De facto, 99% das vezes, chamar IndicatorRelease é um erro lógico de programador.

A criação de indicadores é uma das operações mais dispendiosas que inicia mecanismos muito profundos de cálculo dos mesmos. Tentar fechar um cabo indicador é também uma operação muito dispendiosa, se pensarmos nos verdadeiros processos subjacentes à sua implementação. A frequente criação e encerramento de indicadores mostra que o programador não compreende de todo a essência das operações.

É muito fácil de compreender.

Compreendo correctamente que ao utilizar o iCustom em vez do IndicatorCreate, o utilizador transfere a responsabilidade pelo IndicatorRelease para a solução universal (portanto, não óptima) dos programadores?

Em que os indicadores criados são armazenados durante algum tempo, enquanto são chamados com uma certa frequência. Se não forem chamados durante algum tempo, então há um IndicatorRelease forçado. Certo?

Isto é, o iCustom deve ser utilizado da melhor forma, tendo em conta a média dourada entre a complexidade da implementação e o desempenho. Mas se quiser a velocidade máxima, é melhor tentar fazer tudo através de IndicatorCreate, criando o seu próprio algoritmo de indicadores mais rápido (não universal), conhecendo as especificidades da sua própria utilização de indicadores.

Será que percebi bem?

 
fxsaber:

Compreendo correctamente que ao utilizar o iCustom em vez do IndicatorCreate, o utilizador transfere a responsabilidade pelo IndicatorRelease para a solução universal (portanto, não óptima) dos programadores?

Em que os indicadores criados são armazenados durante algum tempo, enquanto são chamados com uma certa frequência. Se não forem chamados durante algum tempo, então há um IndicatorRelease forçado. Certo?

Isto é, o iCustom deve ser utilizado da melhor forma, tendo em conta a média dourada entre a complexidade da implementação e o desempenho. Mas se quiser a velocidade máxima, é melhor tentar fazer tudo através de IndicatorCreate, criando o seu próprio algoritmo de indicadores mais rápido (não universal), conhecendo as peculiaridades da sua utilização.

Será que percebi bem?

Não, não está.

As duas funções são absolutamente iguais. Ambas as funções devolvem o manípulo indicador

 
Slawa:

Não, errado.

Ambas as funções são absolutamente iguais. Ambas as funções devolvem o manípulo indicador

IndicatorRelease deve ser feito após o iCustom?

Basicamente, acontece que é bastante possível executar o MT4 EAs em MT5. Para aqueles que não utilizam outros indicadores internamente - muito fácil. Quem os utiliza - criar um análogo do armazenamento MT4-iCustom. A questão do despreparo dos dados é também bastante possível.

Escreva tal adaptador e qualquer indicador MT4 será executado com sucesso em MT5. Mas neste caso Nikolay Kositsyn vai perder o seu emprego. não, melhor não.

 
fxsaber:

IndicatorRelease deve ser feito após o iCustom?

Basicamente, acontece que é bastante possível executar o MT4 EAs em MT5. Para aqueles que não utilizam outros indicadores internamente - muito fácil. Quem os utiliza - criar um análogo do armazenamento MT4-iCustom. A questão do despreparo dos dados é também bastante possível.

Escreva tal adaptador e qualquer indicador MT4 será executado com sucesso em MT5. Mas neste caso Nikolay Kositsyn vai perder o seu emprego. Não, prefiro não o fazer.

Lembro-me, a documentação diz que a forma mais correcta de inicializar (criar) os indicadores é através da função OnInit, e executar o IndicatorRelease na função OnDeinit. Isto significa que, enquanto o Expert Advisor estiver em funcionamento, os indicadores continuam a ser relevantes.
Razão: