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

 
ANDREY:

Tive a idéia geral...no que me diz respeito. Obrigado pela dica. Se você não se importa, poderia me dizer o que significa o sinal de dólar antes do nome da matriz $ array[] e antes do valor $var

Tenho a sensação de que não é de mql4 por alguma razão.

sim, não é demql, mas o significado é o mesmo

 
Aleksei Stepanenko:
No seu caso, a resposta à pergunta principal é interessante: Por que você precisa fazer a triagem a cada minuto? Como sua idéia pode ser implementada de uma maneira mais econômica?

O código que afixei é apenas um exemplo do problema que não consegui resolver. No código real, a ordenação terá que ser feita em cada tick em uma coluna de 20 a 30 elementos. Eu tenho um processador quad core e é por isso que não sinto nenhum atraso durante os testes. Além disso, o código real também não é muito grande. Mas eu ainda não representei completamente minha idéia na forma de código. Quando eu o tiver codificado completamente, então começarei a pensar em como melhorá-lo do ponto de vista do desempenho.

E eu acertei, que a busca de 1000 valores em mql leva menos tempo do que ordenar 1000 elementos de matriz ou qualquer outra operação com matrizes? A propósito, você poderia me dizer, por favor, 12 quais operações em mql4 demoram muito tempo?

Obrigado pela ajuda

 
Vitaly Muzichenko:

sim, não é demql, mas o significado é o mesmo

E que linguagem é essa e estou certo em entender que algumas construções dessa linguagem podem ser usadas em mql? Penso que para o futuro esta informação seria útil para mim
Obrigado por sua ajuda.

 
ANDREY:

Que linguagem é esta e eu entendo corretamente que algumas construções desta linguagem podem ser usadas em mql? Penso que para o futuro esta informação seria útil para mim
Obrigado por sua ajuda.

É php, mas acho que não é preciso investigar,também há respostassuficientes sobre omql neste fórum.

 
Vitaly Muzichenko:

É php, mas acho que não é preciso investigar,também há respostassuficientes sobre omql neste fórum.

Entendi. Obrigado.

 
ANDREY:

Entendi. Obrigado.

Você precisa pensar corretamente através da lógica do que você quer que a saída seja, e então começar a escrever. Há muitas coisas com as quais você não precisa contar a cada carrapato, mas somente quando a situação muda.

Você só precisa monitorar a mudança da situação e fazer os cálculos pesados depois disso, em vez de fazê-los em cada carrapato desnecessariamente.

 
Vitaly Muzichenko:

Você precisa pensar corretamente através da lógica do que você quer que a saída seja e depois começar a escrever. Há muitas coisas que não precisam ser calculadas em cada tique, mas somente quando a situação muda.

Para fazer isso, basta monitorar a mudança da situação e depois fazer cálculos pesados, em vez de fazê-los a cada tique sem nenhuma necessidade.

Já pensei sobre a lógica e entendo claramente o que quero obter com a produção. Entendo Mql4 (e um pouco de Mql5) na medida em que entendo muito (mas não tudo) do que eu preciso dos manuscritos. E o mais importante, compreendo quase tudo o que me é explicado neste fórum. Estou tentando agora codificar minha concepção, mas não de qualquer maneira, mas o código deve ser executado rapidamente, pois precisarei testá-lo em muitos instrumentos e em longos períodos de tempo. E de qualquer forma .... Isso é agora mesmo, estou tentando ao máximo codificar meu conceito por tentativa e erro (tenho muito pouca experiência em codificação) e ao mesmo tempo para aprender algo novo e útil para tentativas futuras.

 
ANDREY:

Mas não de forma aleatória, mas para que a execução do código leve o mínimo de tempo

Então, diga-nos para que classificação é necessária, talvez possamos ter uma idéia para outra implementação.

 
Aleksei Stepanenko:

Então me diga para que serve a classificação, talvez possamos chegar a uma idéia para outra implementação.

Obrigado por sua ajuda. Você me intrigou ..... Acho que em 1-2 dias terminarei uma parte do código real com a ordenação e depois a postarei aqui para aprender sua opinião profissional.

E eu tenho mais uma pergunta sobre informações, que Maxim Kuznetsov me deu neste post. Ele me visita aqui menos vezes do que você, então eu ficaria grato se você pudesse me explicar algo sobre seu código

void Convert_7x2_2x7 (const double &src[7][2],double &dst[2][7]) {

for(int i=0;i<7;i++)

for(int j=0;j<2;j++) {

dst[j][i]=src[i][j];

}

}

Estive estudando cuidadosamente e por muito tempo e foi isto que me veio à cabeça...

1.Esta é uma função definida pelo usuário

2. não há nenhuma referência a ele no código acima. Está implícito no código principal dentro de OnTick() vazio

3. somente os índices de matriz serão alterados neste código. O que acontece com os valores dos itens da matriz, só posso adivinhar.

O que eu não entendo é isto.

1. se a execução final desta função faz com que dst[j][i] obtenha novos valores de dst[7][2], qual foi o objetivo dos loops? Não poderia [j][i] ser atribuído imediatamente e explicitamente esses valores de índice?

2. fiz bem, que se eu mudar os valores dos índices neste código, os valores necessários dos elementos da matriz mudarão automaticamente para as novas células por si mesmos?

3. eu ficaria grato se você pudesse escrever uma descrição de como esta função personalizada é chamada.

O assunto das matrizes é bastante novo para mim, e embora esta informação não esteja relacionada ao meu código atual, tenho certeza de que será útil para mim no futuro. E eu gosto de fazer reservas para o futuro por natureza. :-)
Obrigado por sua ajuda.

 

Não, está muito longe de ser um profissional.

double LoY[31][2], Mirror[2][31];

//вызывается так:
ConvertArray(LoY,Mirror);

//все значения строк из массива LoY запишутся в столбцы Mirror,
//условно сказать, массив повернётся
void ConvertArray(const double &src[31][2],double &dst[2][31])
   {
   for(int i=0; i<31; i++) for(int j=0; j<2; j++) dst[j][i]=src[i][j];
   }

Razão: