Erros, bugs, perguntas - página 2647

 

Agora no MetaEditor quando se trabalha num projecto para mover os ficheiros do projecto no separador "Projecto", por exemplo, para uma subpasta recentemente criada, tem de ser realizado todo um "ritual":

- certificar-se de que todas as alterações feitas aos ficheiros a mover foram guardadas, caso contrário, o trabalho feito pode perder-se;
- arrastar e largar os ficheiros no separador "Projecto" para o novo local;
- fechar quaisquer separadores nos ficheiros em migração, uma vez que podem estar a utilizar um caminho incorrecto;
- reabrir quaisquer separadores fechados, só que agora utilizando o novo caminho.
- reordenar as abas abertas pela mesma ordem que antes de serem fechadas.

Sugestão:
Ao mover ficheiros de projectos no separador Projecto, por exemplo, para uma subpasta recentemente criada:
- para ficheiros abertos mas inalterados, actualizam automaticamente o seu caminho de localização.
- para ficheiros modificados, pedir adicionalmente confirmação: "Transferência com gravação", "Transferência com perda de alterações", ou "Cancelar operação de transferência".


 
Igor Makanu :

Tenho 12GB de memória, Windows 10 , memória livre cerca de 8GB


Precisava deste teste para saber o comprimento máximo de linha permitido nos terminais MT4/MT5

Quero agora trocar entre terminais através da base de dados Redis

Redis é uma base de dados muito simples e funciona apenas com cordas (chave - valor --> corda - corda)

Ontem, eu serializei as estruturas POD na Base64 e aumenta o tamanho dos dados em cerca de 1/3

Penso que mesmo neste caso tenho a possibilidade de trocar estruturas com tamanho 400 Mb por transacção - isso é mais do que suficiente para qualquer propósito! ;)

Será que vou verificar este "Redis", não sei se isso é verdade?

Por isso verifiquei o seu código do meu lado, parei-o após 1 minuto, demasiado lento. Por isso, mudei-o um pouco ;-)

#define  STEP      1000000     // 1 million
#define  MILLION   1000000
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
  printf("m_physical = %i MB, m_total = %i MB, m_available = %i MB, m_used = %i MB, limit = %i MB, used = %i MB",
         TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL), TerminalInfoInteger(TERMINAL_MEMORY_TOTAL),
         TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE), TerminalInfoInteger(TERMINAL_MEMORY_USED),
         MQLInfoInteger(MQL_MEMORY_LIMIT),MQLInfoInteger(MQL_MEMORY_USED));

  string s = "";
  int size=INT_MAX;

  do
    {
    size-=STEP;
    }
  while(!StringInit(s,size,USHORT_MAX));

  long length = StringLen(s);
  printf("StringLen = %lli millions characters, m_used = %i MB, used = %i MB", length/MILLION, TerminalInfoInteger(TERMINAL_MEMORY_USED),MQLInfoInteger(MQL_MEMORY_USED));
  }

2020.02.13 15: 50: 51.199 1111R-2646 (EURUSD, M1) m_physical = 16230 MB, m_total = 32460 MB, m_disponível = 31786 MB, m_utilizado = 674 MB, limite = 8388608 MB, utilizado = 0 MB
2020.02.13 15: 50: 51.763 1111R-2646 (EURUSD, M1) StringLen = 1073 milhões de caracteres, m_utilizado = 2722 MB, utilizado = 2048 MB

Menos de 1 segundo. Finalmente, existe o limite de mql5, que é de 2GB ou cerca de 1,073 mil milhões de caracteres.

 

Explicar porque é que os ficheiros ico- não podem ser carregados para a base de códigos? São uma parte padrão do programa, ligados por ferramentas MQL. O facto de serem proibidos é obviamente errado. Mas vai mais longe do que isso.

Um ico devidamente preparado pode ser renomeado para png sem afectar a operação: ainda está devidamente ligado ao programa (usando o ícone #property "mql5pack.png") e exibido no diálogo de propriedades. Mas tudo isto só funciona localmente. Carreguei tal png na base de código e recebi um erro ao verificar a fonte:

mql5pack.mq5(27,11) : error 341: cannot open icon file 'mql5pack.png'
main file not found

Por favor, administração mql5 para fixar o carregamento ou/e pelo menos verificar os ícones.

PS. Correcção, parece que o site come silenciosamente o ficheiro png, ou seja, dá-lhe para carregar, mas depois não está na lista de ficheiros compilados. Tentei MQL5\Images, MQL5\Files - nada é carregado no servidor, mas silenciosamente, sem quaisquer erros. Dá um erro durante a verificação.

 
Pode dizer-me como contornar um erro de compilação?
struct STRUCT
{
  static const int Array[];
  int Array2[sizeof(STRUCT::Array)]; // unresolved static variable 'STRUCT::Array'
};

static const int STRUCT::Array[] = {1, 2};

void OnStart()
{
  static const int Array[] = {1, 2};
  
  int Array2[sizeof(Array)]; // OK
}
 

Pessoal, como me certifico de que no mt5 as encomendas abertas não trocam de lugar?

 
Сергей Проценко:

Pessoal, como é que se certificam de que as encomendas abertas não trocam de lugar?

Desculpe, como é que eles trocam de lugar?

 
Сергей Таболин:

Desculpe, como é que eles trocam de lugar?

Dependendo do lucro, se o lucro for maior, move-se para baixo, a outra ordem tem maior lucro, troca de lugares. Se o lucro do euro se tornar maior do que o lucro do ouro, a ordem do euro será menor e a ordem do ouro será maior do que esta.
 
Сергей Проценко:
Dependendo do lucro, se o lucro for mais elevado, desce, a outra ordem tem um lucro mais elevado, troca de lugares.

Clique num dos cabeçalhos das colunas: Símbolo, Bilhete, Tempo

 
Vladimir Karputov:

Clique num dos cabeçalhos das colunas: Símbolo, Bilhete, Tempo

Este é o único resultado.
 
Сергей Проценко:
Este é o único resultado.

Clique no cabeçalho de uma das colunas: Símbolo, Bilhete, Tempo.

Clique na CHAVE ESQUERDA. Clique no TÍTULO.