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

 
Roman Sharanov:

Preciso armazenar conjuntos de citações em uma matriz

Para copiar uma vez em loop e depois realizar cálculos usando o ArrayCopy, não CloseCopy

É claro, todos são livres para fazer o que quiserem. Mas por que devemos copiar uma matriz elemento por elemento em outra matriz bidimensional e depois trabalhar com essa matriz bidimensional? Não podemos fazer os mesmos cálculos em vez de copiar?

Ou está me faltando algo? Uma matriz unidimensional pode ser copiada para a segunda dimensão de uma matriz bidimensional?
 
Alexey Viktorov:

É claro, todos são livres para fazer o que quiserem. Mas por que copiar uma matriz elemento por elemento em outra matriz bidimensional e depois trabalhar com esta matriz bidimensional? Não podemos fazer os mesmos cálculos em vez de copiar?

Ou está me faltando algo? É possível copiar uma matriz unidimensional para a segunda dimensão de uma matriz bidimensional?

Tenho dois loops aninhados, o externo tem CopyClose, e o interno

E todos eles copiam os mesmos caracteres da matriz.

Quero inserir uma série de citações para cada par em uma série separada antes dos loops.

De qualquer forma, aqui está o que eu fiz, embrulhei uma dupla gama de moedas em uma estrutura, e fiz uma gama de estruturas

for(int i = 0; i<ACTIVES; i++){
      CopyClose(all_pairs[i], PERIOD_CURRENT, 1, calculation_period, pairs_data[i].currency);
      pairs_data[i].pair = all_pairs[i];
   }
for(int i = 0; i < ACTIVES-1; i++){
	 ArrayCopy(first_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
	//работа с firstData
	...
      
	 for(int k = i+1; k < ACTIVES; k++){
		 ArrayCopy(second_data, pairs_data[i].currency, 0,0,WHOLE_ARRAY);
         	//Работа с secondData
         	...
      }
   }
 

Meus amigos, não consigo dormir sem resolver este problema por algum tempo:

Eu uso um indicador, que periodicamente! se atualiza após receber um tick. Mas às vezes esta atualização é necessária agora mesmo, mas o tique está com um atraso, e nos fins de semana o mercado está adormecido.
Tenho que clicar com o botão direito no gráfico - "refrescar". Infelizmente, não encontrei uma tecla de atalho para esta ação.

A coisa mais eficaz que vejo é um indicador/conselheiro separado altamente especializado com um botão no gráfico, apertado que imita a ação única de "atualizar". Tentei pesquisar a solução no Google, mas sem sucesso...

Como o tema é chamado "Qualquer pergunta de novatos, ajuda e discussão", ouso fazer esta pergunta.
Espero que alguém inteligente nesta matéria ajude, ou pelo menos mete o nariz - "exatamente isto já foi discutido aqui".


 
Roman Sharanov:

a diferença média próxima não é igual à diferença média próxima, lamentavelmente e ah

Bem, isso é óbvio!

Mas se você se move para o espaço de médias próximas, você está automaticamente em um espaço matemático diferente.

Ou seja, você realiza uma transformação integral das médias móveis, e conscientemente (!!!! no seu caso, como eu entendo, não exatamente) deixa o espaço de citações (por Fechar, no seu caso).

Ou seja, você desiste conscientemente das citações (Fechar) e vai para o espaço médio móvel (integral).

Ninguém está forçando você a fazer isso. Você mesmo o faz, de sua própria vontade e de forma bastante consciente. (!?)

Mas!!!! Neste novo espaço (integral), devemos trabalhar com as diferenças nas médias, e não com as citações.

A diferença nas citações não faz sentido no espaço (integral) das médias!!!

E a diferença média nas citações no espaço médio integral também não faz sentido!!!

Espero que estas simples verdades matemáticas sejam claras para você. (!?)

------------------------------------------------------------------------------------------------

E o que você tem é que você meio que se move no espaço das médias. E, ao mesmo tempo, você continua a considerar a diferença média por um fechamento.

Que tipo de milagre matemático é esse?

-------------------------------------------------------------------------------------------------------

Você não pode ter um pé no barco e um pé na costa e ainda estar navegando no mar.

 
Alexey Viktorov:

É claro, todos são livres para fazer o que quiserem. Mas por que eu deveria copiar um elemento por elemento em outra matriz bidimensional e depois trabalhar com essa matriz bidimensional? Não podemos fazer esses cálculos em vez de copiá-los?

Ou está me faltando algo? Uma matriz unidimensional pode ser copiada para a segunda dimensão de uma matriz bidimensional?

Você provavelmente não entendeu alguma coisa.

Por definição, os cálculos em matrizes de dados brutos são proibidos.

Para realizar cálculos, devemos copiar a matriz de dados original em uma nova matriz, e então realizar cálculos com esta nova matriz.

Dessa forma, se ocorrerem erros ou falhas, podemos sempre voltar facilmente à matriz original e começar de novo.

----------------------------------------------------------------------------------------------------------------------------------

Se utilizarmos a matriz original para os cálculos, qualquer erro será fatal.

--------------------------------------------------------------------------------------------------------------------------------------------

E copiar uma matriz unidimensional em uma bidimensional pode ser bastante útil.

Por exemplo, escrevemos "cor das citações" na primeira série, e as citações propriamente ditas na segunda.

Então, pela "cor" da matriz você pode julgar sobre os movimentos das citações em si, sem prestar atenção aos valores.

------------------------------------------------------------------------------------------------------------------------------------------------

A propósito, é útil ter uma "gradação de cor" semelhante na própria carta (e não apenas um fundo simples!).

Ou você pode simplesmente fazer uma "barra colorida" ao lado. É muito útil tê-lo para o comércio.

 
Сергей Николаев:


Eu uso um indicador, que periodicamente! se atualiza após a chegada do tick. Mas às vezes esta atualização é necessária agora mesmo, e o tique é recebido com um atraso, e nos fins de semana o mercado está adormecido.
Infelizmente, não encontrei nenhuma tecla de atalho para esta ação.

acompanhar este evento em um cronômetro e atualizar seu indicador

 
neverness:

Você provavelmente não entendeu alguma coisa.

Os cálculos em conjuntos de dados brutos são, por definição, proibidos.

Realmente... você não pode entender tal bobagem como está escrevendo...

Quais matrizes originais? E quem o proibiu????

Todo o resto, não só é difícil de entender o significado, como é até impossível entender a que se refere tudo o que você escreveu...

 
Alexey Viktorov:

De fato... É impossível entender tal bobagem como você escreve...

Quais são as matrizes originais? E quem o proibiu????

Todo o resto, é difícil não só entender o significado, mas também entender a que tudo o que está escrito se refere...

Pratique o entendimento "bobagem", não você mesmo.

Mais uma vez, na programação, os dados brutos não são corrigidos, e não mudam sob nenhuma condição.

É por isso que estes dados vão apenas "em modo de leitura - SOMENTE LEIA".

Ou seja, para trabalhar com dados brutos, eles devem ser copiados para uma nova matriz de dados.

E é por isso que a C++Builder tem um procedimento para copiar dados para o bloco Memo, que por sua vez determina o tamanho da matriz necessária para copiar.

A propósito, isto também está presente no MT4/MT5. Bem feito desenvolvedores do MT4/MT5 - eles cuidaram disso.

 
neverness:

Outra carga de disparates que não só não tem relevância para o tema em questão, como não faz sentido algum.

 
Alexey Viktorov:

Outro disparate que não só não tem relevância para o tema em questão, como não faz sentido algum.

Não fique chateado. É normal. Se você não entender, tudo bem. Não é nada de mais.