Erros, bugs, perguntas - página 3039

 
Nikolai Semko:
Uma pequena dica - pode fechar todos menos os gráficos necessários, então o consumo será aproximadamente o mesmo como se a sua muleta tivesse sido implementada.
 
Andrei Trukhanovich:
uma pequena dica - pode fechar todos os gráficos excepto aquele de que necessita, então o consumo será aproximadamente o mesmo como se a sua muleta tivesse sido implementada.

lógica antiquada

Tenho-oem VPS, mas peço desculpa. Não quero ser limitado por nada.
 
Igor Makanu:

Se agora estamos a falar de consumo de memória, lembro-me que há uns meses atrás@fxsaber tinha o mesmo problema, mas quando carregava carraças - depois de libertar matrizes com carraças, o terminal não liberta a memória, mas armazena (durante 10 segundos?) estas carraças como uma cache

É altamente provável que o seu pedido tenha o mesmo problema - o consumo de memória não irá diminuir, mas pelo contrário irá aumentar ( em espadas)

Não compreendo porquê.
Eu sei como usar a função ArrayFree.
Especialmente vou utilizar a função que peço apenas uma vez. Mas, ao mesmo tempo, não preciso de ligar o Ilimitado.
A história completa de uma ferramenta cabe em cerca de 80-100 MB (tanto em RAM como em disco). Agora são cerca de 500 Mb no disco.
Eu ligo o terminal e carrego o conjunto de estruturas do ficheiro para a memória e trabalho em paz. Sem picos.
Utilizaria uma estrutura de dados regular. O inferno de ter muito espaço. Mas eu preciso de tempo para o Alto e o Baixo.
Já uso carraças ao máximo para moldar a minha estrutura de dados, mas elas não têm toda a profundidade da história e tendem a ter desajustes com as barras minúsculas. Tenho carraças e sem barras, ou tenho barras e sem carraças.


 
Nikolai Semko:

bem para se atirar no pé - há inúmeras opções como está.
Só por definir max_bars =Unlimited, o consumo de memória aumenta dramaticamente.
Aqui está um exemplo do terminal com max_bars = 5000

Agora mudar max_bars = Unlimited e recarregar o terminal.

Com as mesmas janelas abertas, o consumo de memória aumentou em mais de GB. No meu caso 11 vezes maior !!!!
Este é um normal ))
Pode verificá-lo você mesmo.
max_bars = Unlimited é um luxo muito duro.
Se

o meu pedido fosse concedido, nunca poderia usarmax_bars = Unlimited.
E para além de guardar memória na RAM, também reduziria grandemente esta pasta, que agora tenho cerca de 31GB. Penso cerca de 5 vezes isso. E seriam 6GB em vez de 30GB.

Então está a sugerir tornar todos Ilimitados!

Se um programa tem acesso a todos os bares, então todos o têm.

Porque deveriam os gráficos mostrar mil barras se o indicador tem acesso a um milhão?


Outra questão é permitir o acesso ao formato hcc e à pasta com ficheiros de histórico. Mas também aí nem tudo é simples - caches, reset económico, verificação da correcção, outra coisa...

 

2940

Havia um código indicador: tudo funcionava bem no gráfico e no testador.

Criei uma nova versão do indicador com as alterações feitas: funciona bem no gráfico, mas não no testador (não desenha nada, embora a janela de dados mostre buffers e estes estejam vazios).

Passei algumas horas a compreendê-lo, retrocedi a versão anterior do código, nada ajudou. Só a actualização no navegador terminal ajudou e o novo código também funciona no testador, não só na carta.

Penso que algo está quebrado na actualização automática dos compiladores que o testador vê, não vejo qualquer outra razão.

 
Nikolai Semko:

Eu utilizaria a estrutura de dados regular. Que se lixe, há muito espaço. Mas eu preciso de tempo para o Alto e o Baixo.
Já uso carraças ao máximo para moldar a minha estrutura de dados, mas elas não têm toda a profundidade da história e tendem a estar dessincronizadas com as barras minúsculas. Tenho carraças e sem barras, e depois tenho barras e sem carraças.

Se houvesse carraças durante 20 anos, utilizá-las-ia? Não posso perguntar porquê? )

Bem ok, pode estabelecer uma estratégia super inteligente de auto-adaptação, e, por interesse, executá-la uma vez num tick histórico de 20 anos. Fora de interesse. Uma vez.

Mas não para o trabalho, não como uma característica regular.


E se o timing está desligado, porque acredita nas barras? Isso é um disparate.

 
Andrey Khatimlianskii:

Portanto, está a sugerir que todos devem ser Ilimitados!

Se um programa tem acesso a todos os bares, então todos o têm.

Porque deveriam os gráficos mostrar mil barras se o indicador tem acesso a um milhão?


Outra questão é permitir o acesso ao formato hcc e à pasta com ficheiros de histórico. Mas nem tudo é simples aí - caches, reset económico, verificação da correcção, algo mais...

Não é necessário aceder ao formato hcc e à pasta com os ficheiros do histórico. Em primeiro lugar, a MQ nunca irá para isso, em segundo lugar, não é necessário. Basta obter a matriz M1 a partir destes ficheiros.

É isso mesmo, quero ser capaz de nunca permitirUnlimited. Porque tal inclusão começa a bombear dados para todos os instrumentos. Mas não preciso de todos eles, apenas de um em cada momento. Porque iria querer sobrecarregar o sistema descarregando centenas de Mb adicionais de dados históricos sem qualquer controlo.

 
Andrey Khatimlianskii:

Teria havido tiques em 20 anos, tê-los-ia usado? Não posso perguntar-me - porquê? )

Bem ok, poderia estabelecer uma estratégia super inteligente de auto-adaptação, e, por interesse, executá-la uma vez num tick histórico de 20 anos. Fora de interesse. Uma vez.

Mas não para o trabalho, não como uma característica regular.


E se o timing está desligado, porque acredita nas barras? Isso é um disparate.

Não se trata de uma estratégia, mas da correcta visualização de um calendário dinâmico, que é muito mais intuitivo e conveniente do que o sistema de calendário arcaico existente.
Também para a possibilidade de testes internos "on the fly".
Embora também possa afectar alguma precisão nas estratégias num sentido positivo.

Bem, aqui está pelo menos um pequeno exemplo:
Como construir um ZigZag regular, quando não se sabe que evento ocorreu primeiro, Alto ou Baixo?




ou



se estiver a tentar descobrir para barras diárias, não há garantia de que com max_bars = 50.000, possa carregar prazos mais baixos para um determinado tempo de barras, e carraças também.

 
Erro durante a execução:
void OnStart()
{
    uchar  array[];
    const string text = "All Files\0*.*\0\0";
    const int start = 0, count = StringLen( text );
    Print( StringToCharArray( text, array, start, count ), ":", count );
}

Resultado: 10:15

Previsto 15:15

Eu queria usar o resultado na função WinAPI GetSaveFileNameA, mas não posso por causa de um bug


 
A100:

É o caso há muito tempo. cordas mql não gostam realmente de caracteres nulos dentro de uma corda e, literalmente, também em funções.

A única forma normal é traduzir três cordas com um terminando nulo em uma matriz.

Ou seja, tal comportamento como é agora, foi feito intencionalmente há alguns anos atrás. Não sei porquê.