Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1858

 

Mihail Matkovskij, Andrey Sokolov, obrigado amigos, pela resposta clara e rápida!

Houve realmente um erro com OP_SELL, OP_BUY (misturado devido a desatenção). Eu normalizei tudo por nDigits, acrescentei uma verificação por OrderSend para erros. Espero que tudo funcione. Não posso verificá-lo agora, o mercado está fechado )). Agora até segunda-feira

 
Mihail Matkovskij #:

Se você comparar 2 matrizes muito grandes, estáticas e dinâmicas, pode ou não haver diferença... Em uso normal, não há quase nenhuma diferença.

Infelizmente, há...

A diferença no uso das duas funções :

double foo(someargs..) {
   double tmpdata[];
   ArrayResize(tmpdata,100);
   ...
}
static double tmpdatabar[100];
double bar(someargs..) {
   ...
}

será significativo.

Se você sabe com antecedência o tamanho máximo da matriz e não é muito grande 🚲

é melhor espalhá-lo de antemão

 
Владимир Казаков #:
Existe uma diferença na velocidade de processamento entre uma matriz estática e uma dinâmica?

O que se entende por tratamento?

Em qualquer caso, a existência de uma diferença e seu tamanho para um caso particular pode ser aprendida através da definição de perfis.

 
Maxim Kuznetsov #:

historicamente tem havido situações em que o Ask Bid tem vindo em situações não normalizadas

eles chegaram com mais caracteres do que no símbolo?

 

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

Qualquer pergunta de novatos sobre MQL4 e MQL5, dicas e discussão sobre algoritmos e códigos

Maxim Kuznetsov, 2022.01.15 11:29

há, infelizmente...

a diferença no uso das duas funções :

double foo(someargs..) {
   double tmpdata[];
   ArrayResize(tmpdata,100);
   ...
}
static double tmpdatabar[100];
double bar(someargs..) {
   ...
}

seria significativo.

se você souber de antemão o volume máximo de uma matriz e não for muito grande 🚲

é melhor distribuí-lo com antecedência.

E quem faz isso quando você precisa de velocidade, tenho vergonha de perguntar?

É assim que se faz:

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

Qualquer pergunta de iniciantes sobre MQL4 e MQL5, ajuda e discussão de algoritmos e códigos

Mihail Matkovskij, 2022.01.15 10:24

input int     trendSlowCountBar=9;

double  MAslowTrend[];

int OnInit() {
  ArrayResize(MAslowTrend, trendSlowCountBar, 0);
  ...
  return(INIT_SUCCEEDED);
}

Você pode usá-lo como qualquer matriz e não importa que tipo de matriz seja.

Estas são coisas simples! Mas não. Explicarei em cem páginas o que já é óbvio...

 
Andrey Sokolov #:

esses vieram com mais marcas do que no símbolo?

????

que tipo de sinais?

 
Maxim Kuznetsov #:

????

Que sinais?

Agora ainda vai provar o que o Ask e o Bid entram. E na nova construção haverá um fracasso e o preço não virá normalizado. Ou talvez os desenvolvedores decidam mudar o conceito (já que SL e TP devem ser normalizados, é possível fazer os preços de entrada com base no mesmo princípio). E eles escreverão que agora o Ask and Bid deve ser normalizado. E então ele começará a correr. Ele vai começar a reescrever todas as suas aplicações. E aqueles para os quais ele escreveu pedidos freelance não serão satisfeitos (porque os pedidos não serão mais abertos normalmente) e exigirão melhorias.

 
Andrey Sokolov #:

esses vieram com mais marcas do que no símbolo?

Sim, foi o que aconteceu. Em geral, qualquer número de ponto flutuante que vai para o servidor - deve ser normalizado - é um axioma de bom tom e operação estável (independentemente do que foi ou não dito por quem, ou o que está escrito na documentação ... (Hoje diz uma coisa, amanhã outra)).

Se você precisa construir um objeto gráfico no terminal, você não precisa normalizá-lo, mas se você o solicitar no servidor, você precisa

 
Coloque sua cabeça no jogo... Se o servidor não aceita preços não normalizados ou valores de tamanho de lote, ele também não pode ter valores não normalizados.
 

Recentemente notei esta característica

int array[];
Print(array.Size());

Dinamicamente, uma matriz tem todos os atributos de um objeto (como nos idiomas de super alto nível). O que é então uma matriz estática?

P.S. Não seria ótimo se o tamanho pudesse ser ajustado desta forma

array.Size(size);

ou

array.Size(size, reserve);

bem como

array.Reserve(reserve);
Razão: