Erros, bugs, perguntas - página 725

 
Snaf: Eu próprio encontrei o erro no primeiro script, mas não tenho cérebro suficiente para o segundo .

Bild 630

Este exemplo é escrito utilizando a nova construção do compilador MQL5. Pedimos desculpa por não ter tido isto em conta. Mas sairá em breve. Por favor, aguarde um pouco e tudo se compilará.
 
MetaDriver: Sim, bem, foi também com a manipulação de cordas que fiz asneira. A minha função costumava montar uma corda longa a partir de pedaços devolvidos por outras funções (geração de programas OpenCL). No depurador é como um relógio - o edifício cai e diz "Violação de Acesso"... ;)

Estava prestes a escrever para o Service Desk, mas do nada resultou. :) Já não conseguia reproduzi-lo (embora tentasse fazê-lo honestamente), porque deveria enviá-lo para o Service Desk?

Sim, há um problema claro com CLProgramCreate(). Localizei especificamente onde no guião estava a primeira falha de execução, e foi nesta função. A função não devolve um valor.

O programa CL sob a forma de uma corda parece ser reproduzido correctamente. Mas o programa CL em si não é criado.

 
Ao testar em cruzamentos, há também uma modelação precisa de outras taxas para uma correcta conversão dos lucros e requisitos de margem.

Tente executar a visualização e compreenderá imediatamente o volume de cálculos com base no número de caracteres de fundo no relógio de mercado.
 
Por favor, diga-me como fundir o meu computador portátil e o meu PC, quando as estratégias de teste, os computadores estão a trabalhar através de um router, um via cabo, o outro via Wi-Fi, tentei criar no ficheiro mt5 do computador de secretária, atirei para o computador portátil, adicionei à secção remota, mas os nomes dos agentes são os mesmos de um computador portátil
 

do correio https://www.mql5.com/ru/forum/1111/page736#comment_185306

localizou o problema ao ponto :

- em função do CFastFile::Classe ReadInteger

Verificou-se que em 630/64 ou a atribuição de estrutura, ou a leitura de matriz em matriz foi estragada, embora a pior variante pareça ser a conversão de assinado (short/int/char) em não assinado (ushort/uint/uchar).

Em algum lugar há pedaços ou compensações extra. Como resultado, o programador lê um número bastante diferente do pretendido. Será mais fácil para si ordená-lo e verificar duas vezes a sua função.

Mas funciona de forma constante no mesmo código em 4 computadores (o código é grande, não consigo esticar a parcela).

 
lazarev-d-m:
Por favor, diga-me como fundir o meu computador portátil e o meu PC, quando as estratégias de teste, os computadores estão a trabalhar através de um router, um via cabo, o outro via Wi-Fi, tentou criar um ficheiro mt5 num computador de secretária, atirou-o para o computador portátil, adicionou-o à secção remota, mas os nomes dos agentes são os mesmos de um computador portátil
Isto não está a funcionar? Terminal do Cliente / Testador de Estratégia / Agentes
 
Yedelkin:
Não funciona assim? Terminal do Cliente / Testador de Estratégia / Agentes
Devo ter feito algo errado, agora criei novamente o ficheiro mt5, agora o portátil vê processadores para PC, mas nada vai mais longe no teste, qual pode ser o problema, e é necessário adicionar processadores de portáteis ao testador de PC, se não os vou usar no PC?
 

Desenvolvedores, conquistaram-me com este insecto! Como eles dizem, "Estou a chorar".

Funções do CFastFile ( ::ReadInteger)

        uint ReadArray(uchar &dst[], uint dst_start=0, int cnt=WHOLE_ARRAY) { int r=ArrayCopy(dst, m_data, dst_start, m_pos, cnt); if (r>0) m_pos+=r; return(r); }
        ushort ReadShort() { __2 b={0}; __short d={0}; ReadArray(b.v, 0, 2); d=b; return(d.v); }
        uint ReadInteger(int sz=INT_VALUE)
        {
                if (sz==SHORT_VALUE) { ushort s=ReadShort(); return(s); }
                return(ReadInt());
        }


Retorna um disparate ao ler SHORT_VALUE.


Comecei a escavar, envolvendo a minha cabeça em diferentes opções de leitura a partir de uma matriz.

Verificou-se que se em vez de ushort s=ReadShort() colocar o corpo da função ReadShort em si, todos os números são lidos normalmente.

Mas depois encontrei uma variante que realmente me fez chorar.

        uint ReadInteger(int sz=INT_VALUE)
        {
                if (sz==SHORT_VALUE) { ushort s=ReadShort(); if (s==426) Print(s); return(s); }
                return(ReadInt());
        }

Ou seja, a função de impressão transforma magicamente um número s errado num número correcto e devolve o valor correcto.


Caros programadores, caiam em si! Estás a fazer uma porcaria!!!

Como irá compensar as perdas no mercado resultantes da sua própria atitude em relação ao seu produto?

Afinal, o MT5 é apenas um enorme recurso de consumo, que é servido por programadores de terceiros.

E você, com as suas acções negligentes, questiona a competência deles e a qualidade dos seus programas!

 
sergeev:

Desenvolvedores, conquistaram-me com este insecto! Como eles dizem, "Estou a chorar".

Funções do CFastFile ( ::ReadInteger)

Espere, mas este é o seu código da classe CFastFile, não é? O que têm os criadores de plataformas a ver com isto?

//+------------------------------------------------------------------+
//|                                                         FastFile |
//|                                            Copyright © 2006-2012 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006-2012"
#property version "1.00"
#property library
 
Renat:

Espere, mas este é o seu código da classe CFastFile, não é? O que é que os criadores da plataforma têm a ver com isso?



Sim Renat, esse é o meu código.

Funcionou em construções anteriores. Mas deixou de funcionar no actual 630/64.

E continua a funcionar com sucesso em 630/32.


O insecto que encontrei é bastante estranho e francamente falando, assustador.