Erros, bugs, perguntas - página 2477

 
secret:
Estranho, tem sido recusado há alguns anos e eles ainda fazem publicidade para comprar...

Recebeu esta carta do terminal do corretor, tanto quanto sei. Fazer-lhe uma pergunta ou pedir-lhe que contacte o apoio se ele próprio não o conseguir resolver.

 

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Insectos, insectos, perguntas

Sergey Dzyublik, 2019.05.23 13:52


Como é que sei que devo esperar pela sua correcção?

#(não fixado em MT5(build 2069))"Bug com fila de registo no terminal MT, supostamente, quando o número de mensagens na fila atinge o limite, ocorre a realocação da memória com recopiadora, mas perde-se uma mensagem 395º".
#(fixado em MT5(build 2069))"Erro de compilação ao passar (vazio*)(NULL) parâmetro para a função modelo".
(corrigido em MT5(build 2059))"Strategy Tester: 2 passes planeados, mas na prática um número infinito de passes > 900pcs devido ao erro "OnInit critical error"".
#(não fixo em MT5(build 2069))"Valor inválido do campo de tamanho de matriz dentro do operador de atribuição padrão para estruturas com matrizes dinâmicas".
#(não fixado em MT5(build 2069))"O compilador não vê o construtor de cópia de classe padrão quando devolve um objecto de classe por valor de uma função".
(fixado em MT5(build 2059))"Compiler fails to see the type cast "in itself" for pattern classes e estruturas "complexas"".
(não fixo em MT5(build 2069))"Quando se trabalha com typedef, a utilização de uma função modelo com especialização explícita não gera código para esta função modelo".
#(não corrigido em MT5(build 2069))"Erro de compilação ao reutilizar a mesma assinatura de função dentro do typedef".
#(não fixo em MT5(build 2069))"Uma parte significativa de funções para o manuseamento de cordas não funciona com caracteres NULL numa corda (por exemplo: ShortArrayToString, StringInit, StringFill)".
#(não fixo em MT5(build 2069))"A função StringSetLength apenas funciona para "aparar" o comprimento da corda, não para o aumentar.
#(fixado em MT5(build 2057))"Strategy Tester: 750 processos "metatester64.exe" estão em curso".
"Fórum www.mql5.com, ao editar uma mensagem com uma imagem, a imagem anterior não é substituída pela nova".


Sugestões:
"Permitir ao utilizador forçar a geração/apagamento de código para operador de atribuição por defeito (copy constructor)".
"Allow ArrayCopy to copy classes e estruturas "complexas", semelhantes à forma como as estruturas fornecem uma funcionalidade de cópia profunda para qualquer tipo de objecto".
"Fornecer funcionalidade para o utilizador ler/definir valor de capacidade ao trabalhar com arrays dinâmicos".
"Alterações para melhorar a infografia do serviço de Sinais"

 
Estas constantes

Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial

Serviços. Já está a funcionar?

fxsaber, 2019.06.07 06:37

#include <WinAPI\fileapi.mqh>
#include <WinAPI\handleapi.mqh>

#define  GENERIC_WRITE                    0x40000000
#define  CREATE_ALWAYS                    2
#define  FILE_ATTRIBUTE_NORMAL            0x00000080
#define  FILE_FLAG_OVERLAPPED             0x40000000

bool FileIsInvalid_WinAPI( const string FileName )
{
  const HANDLE hFile = CreateFileW(FileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL);

E muitos outros estão em falta no SB.

 

Mais uma vez, peço-vos que desactivem as ordens de limite e que tomem deslizes no testador em símbolos personalizados em carraças reais.

Agora todos os que conduzem no Testador de Estratégia por carraças reais, onde são aplicadas ordens de limite ou ordens de tomada, pertencem a uma das três categorias

  • Não acredite que são enganados pelo provador.
  • Os pseudo-físicos.
  • fxsaber.

Um grande pedido para parar esta prática, pelo menos nos símbolos personalizados. Isto é necessário não só para que o Testador não minta, mas também para que possa trabalhar mais rapidamente.

Ну а как еще обратить внимание на эту проблему?

 

A função CopyTicks não funciona solicitando o histórico de tick a partir de uma determinada data. Por conseguinte, ou deve ser solicitado um grande número de carraças, ou o histórico de carraças exigido não pode ser obtido utilizando o código.

O terminal MT5 fica pendurado permanentemente se o espaço em disco estiver a esgotar-se quando são feitos grandes pedidos de histórico de carraças. Uma falha do terminal pode causar a eliminação de todas as definições de conta.

 
Gelium:

A função CopyTicks não funciona solicitando o histórico de tick a partir de uma determinada data. Por conseguinte, ou deve ser solicitado um grande número de carraças, ou o histórico das carraças não pode ser obtido com o código.

O terminal MT5 fica permanentemente pendurado se grandes pedidos de histórico de tick ficarem sem espaço em disco. Uma falha de terminal pode causar a falha de todas as definições de conta.

Os milissegundos estão na entrada, não os segundos.

 
fxsaber:

Os milissegundos estão lá nas entradas, não nos segundos.

Leia a ajuda:

a partir de

[em] Data a partir da qual as carraças são solicitadas. Especificado em milissegundos a partir de 01.01.1970. Se o parâmetro de=0, é dada a última contagem de carraças.

A seguir é um simples teste de código:

int tm_ms = 10000000;
int recebido=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL, tm_ms);

Este pedido devolve sempre 2000 ticks com qualquer alteração do parâmetro tm_ms. É suposto ser assim ou estou a fazer algo de errado?

 
Gelium:

Leia a ajuda:

a partir de

[em] Data a partir da qual as carraças são solicitadas. Especificado em milissegundos a partir de 01.01.1970. Se de=0, é dada a última contagem de carraças.

Além disso, é um simples teste de código:

int tm_ms = 10000000;
int recebido=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL, tm_ms);

Este pedido devolve sempre 2000 ticks com qualquer alteração do parâmetro tm_ms. É suposto ser assim ou estou a fazer algo de errado?

long tm_ms = (long)D'2019.06.01' * 1000;
estabelecer a contagem correcta de modo a que não seja 2000.
 

fxsaber:

long tm_ms = (long)D'2019.06.01' * 1000;


Estabelecer a contagem certa para que não seja 2000.

Obrigado, está a funcionar! O meu erro com a int. :)

 
Cada compilação dá um valor diferente em Advertência
void OnStart()
{
  int i = 0;

  {
    int i = 0; // declaration of 'i' hides local declaration at line 482781488
  }
}