Sugestões para melhorar o MetaEditor - página 10

 
Yedelkin:

Pedi para vos dar um exemplo.

Está a dizer que se um indicador tiver 10 amortecedores, pode obter, por exemplo, os valores do sétimo amortecedor do indicador anteontem com uma linha em MQL4?

Uh-huh,https://docs.mql4.com/ru/indicators/icustom
iCustom - Документация на MQL4
  • docs.mql4.com
iCustom - Документация на MQL4
 
Renat:
Cavalheiros, o sistema de acesso a amortecedores indicadores em MQL5 é muitas vezes mais eficaz e rápido do que em MQL4.

Não estou a falar de eficiência, estou a falar de usabilidade.

Não posso fazer um invólucro universal para chamar qualquer indicador, sempre que tenho de corrigir a cópia e depois tropeço em código incómodo.

Se fosse diferente em 4, não estaríamos de modo algum a discuti-lo.

 

O trabalho do programador é resolver os problemas de forma eficiente, não para obter uma solução de uma linha que seja de facto lenta, mas barata para o programador. Na MQL4 não houve oportunidade de obter um rápido acesso em massa aos dados indicadores, e na MQL5 existe tal acesso.

O Compositor deve deixar de publicar disparates. De facto, o homem não se apercebe que as chamadas N em MQL4 são chamadas N sincronizadas e caras em MQL5 em comparação com o pedido único de buffer em MQL5 seguido de acesso instantâneo à matriz local sem sincronização. Pense pelo menos no custo da sincronização através de secções críticas em cada chamada histórica em MQL4 e passando por um ciclo completo de acesso numa função complexa do sistema.

Se oferecer uma solução que seja várias vezes mais eficaz do que os métodos antigos, ela será definitivamente mais rentável para o resultado final. A eficiência é mais importante.

 

Já percebi. Ainda sem exemplo claro :) Ok, vamos em frente. Como utilizar a sua ligação para obter um conjunto de valores de uma linha do décimo tampão indicador de anteontem?

Palavras-chave: a) matriz, b) décimo tampão indicador :)

 
Renat:

O compositor precisa de deixar de publicar disparates. Na verdade, o homem não compreende que...

A Renate deve aprender a ler. De facto, ele não compreende nem o que está a ser escrito nem a posição que os escritores tomam.

Se eu explicar a essência de uma posição que compreendo a outro membro do fórum, isso não significa que eu adira a essa posição. Além disso, esclareci especificamente para os confusos que"é apenas uma questão de hábito" e quenão há qualquer problema.

 
Yedelkin:

Já percebi. Ainda sem exemplo claro :) Ok, vamos em frente. Como utilizar a sua ligação para obter um conjunto de valores de uma linha do décimo tampão indicador de anteontem?

Palavras-chave: a) matriz, b) décimo tampão indicador).

Deseja que eu o copie aqui? Aqui está:

double val=iCustom( NULL, PERIOD_D1, "SampleInd", 9, 2 );

9 é o índice de tampão (o décimo), 2 é o índice de barras.

O valor da variável é atribuído ao valor do amortecedor do 10º indicador anteontem.

Acabei de ver amatriz na sua pergunta. Poder-se-ia ter assinalado explicitamente a necessidade de obter múltiplos valores.

Neste caso, a resposta é não, não se pode devolver uma matriz por um fio. Mas pode escrever uma função simples que o faça. Contudo, neste caso quase não haverá diferenças em relação à MQL5 - para cada indicador terá de escrever a sua própria função.

 
Vejo a vossa posição como "uma linha é óptima e três é muito má".

Não responde a explicações técnicas, não conhece a arquitectura interna de ambos os terminais, não sabe o custo das chamadas, mas critica as soluções daqueles que não só criaram métodos de acesso eficazes, mas também explica as razões.
 

komposter:

Yedelkin:

komposter:

Yedelkin : Quer dizer que se um indicador tiver 10 amortecedores, pode obter, por exemplo, osvalores do sétimo amortecedor do indicador anteontem com uma linha em MQL4?

Uh-huh...


...Ok, vamos mais longe. Como posso utilizar a vossa ligação para obter uma matriz dos valores do décimo tampão indicador de anteontem numa só linha?

Palavras-chave: a) matriz, b) décimo tampão indicador).


Acabei de veruma série na sua pergunta. Poder-se-ia ter apontado explicitamente a necessidade de obter vários valores. Neste caso, a resposta é não, não se pode devolver uma matriz por uma linha.

Estou a ver. A leitura desatenta da minha pergunta sobre"valores de anteontem" levou a uma resposta errada. Por isso tive de usar uma tautologia como "matrizde valores" em vez de"valores". A resposta correcta é finalmente dada: não se pode devolver osvalores de anteontem pela MQL4 com uma única linha.

komposter:

Devo copiá-lo aqui? Aqui está:

double val=iCustom( NULL, PERIOD_D1, "SampleInd", 9, 2 );

9 é o índice tampão (10º), 2 é o índice de barras.

O valor variável é atribuído aovalor do amortecedor do 10º indicador desde anteontem.

Como já entendeu, a questão era sobre a pluralidade dos "valores de anteontem", e não foi dito em lado nenhum que osvalores de anteontem deveriam ser procurados para PERÍODO_D1 (especialmente se considerar que um período diário por definição não pode conter vários valores de anteontem para um buffer). Continuando. Claro que não sou especialista em MQL4, mas a linha acima citada não pode ser formalmente considerada correcta. Para a ligação que citou diz que "O índice da linha indicadora. Pode ser de 0 a 7". Mas por alguma razão, sem qualquer outra explicação, cita o índice tampão == 9.

 
komposter:
Obrigado por ter revelado o assunto!
 
Renat:
Posso ver a vossa posição...

...não reage... não sabe... critica...
Renat, encontra outro espelho para o teu diálogo. Adeus.