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

 
Vitaly Muzichenko:

Não posso tocá-lo com o eventoOnCalculate(...), posso tocar em qualquer função, mas não posso tocar nesta. O timer não é uma opção, o indicador não é necessário com tanta freqüência, e seria melhor usá-lo com um clique sobre um item gráfico.

Como implementá-la?

Você pega o clique sobre o objeto no indicador e no manipulador de eventos, e então recalcula os buffers indicadores como em um novo começo. Você não precisa puxar a OnCalculate
 
-Aleks-:

Você pode me dizer como procurar corretamente os lugares de maior uso de recursos no código que carregam a CPU?

Execute o perfil do código a partir do editor.
 
Artyom Trishkin:
Execute o perfil do código a partir do editor.

Obrigado, mas como você faz isso off-line - em um dia de folga?

 
Qual poderia ser o problema?

Um pedaço de código:

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

Ao testar, o depurador gera um erro na linha de if. Fora de alcance.

Agradecemos antecipadamente.
Arquivos anexados:
 
Andy-D:
Qual poderia ser o problema?

Um pedaço de código:

for(i=1; i<=Bars; i++)
{
if(Open[i]-Close[i]==0)

Ao testar, o depurador gera um erro na linha de if. Fora de alcance.

Agradecemos antecipadamente.
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
 
Sergey Gritsay:
for(i=1; i<Bars; i++)
  {
   if(Open[i]-Close[i]==0)
     {

     }
  }
...
Obrigado ajudou, acho que não deveria ter colocado "<="? É estranho, no entanto. Eu não entendo por que. Onde eu coloco o sinal de mais?
 
Andy-D:
Obrigado ajudou, acho que não deveria ter colocado "<="? É estranho, no entanto. Eu não entendo por que. Onde colocar o sinal de mais?
A indexação da matriz começa com 0 e termina com Bars-1 (neste caso). Portanto, o valor das Barras resulta em uma série de barras ultrapassadas.
 
Andy-D:
Obrigado ajudou, acho que não deveria ter colocado"<=" ? Estranho, porém. Eu não entendo por que. Onde colocar um sinal de mais?
Como a indexação de array começa com zero, então, por exemplo, se o número de barras em Barras é 1, então para obter um valor desta única barra, você deve tomar o valor de sua célula com o índice 0.

Aqui está uma tabela comparativa:

Número de barras em bares
1 2 3 4 5 6 7 8 9 10 Articulação externa
Índice de loop referenciando os dados
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
 
Sergey Gritsay:
Para isso, você precisa criar um servidor fora do computador local e transferir dados através desse servidor, respectivamente, para a MT você escreve um indicador ou consultor que processa esses dados, ou coloca os terminais em um servidor VPN e lá você configura uma copiadora de ofertas de sua conta para as contas de seus amigos. Outra opção é copiar suas negociações executadas em determinados níveis através do serviço de sinais. Em geral, você tem que levar em conta sua capacidade financeira para encomendar o software apropriado.
Encontrei um indicador (mq4) com princípio de mapeamento semelhante. Eu vi seus resultados e eles não me agradam. Tenho meus próprios dados. Acho que são mais precisos. Eu tenho meus próprios dados. Posso editá-los para torná-los mais precisos e remover alguns mapeamentos desnecessários e especificar o caminho para meus dados? Apenas tome como base.
 
Artyom Trishkin:
Como a indexação de array começa com zero, por exemplo, se o número de barras em Barras é 1, então para obter o valor desta única barra, precisamos tomar o valor de sua célula com índice 0.

Aqui está a tabela de comparação:

Número de barras em bares
1 2 3 4 5 6 7 8 9 10 Articulação externa
Índice de loop referenciando os dados
0 (i<Bars)1 (i<Bars)2 (i<Bars)3 (i<Bars) 4 (i<Bars)5 (i<Bars) 6 (i<Bars) 7 (i<Bars)8 (i<Bars)9 (i<Bars) 10 (i==Bars)
Muito obrigado, isso agora faz mais sentido.
Razão: