Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 43

 

Ajude-me a escrever uma função que retorna o valor máximo de ATR entre as barras visíveis na janela. Procurei em toda a Internet, não consegui encontrar nada semelhante.

Obrigado,

 
dr.Vasgenich :

Ajude-me a escrever uma função que obtenha o valor máximo de ATR entre as barras visíveis na janela. Procurei em toda a Internet, não consegui encontrar nada semelhante.

Obrigado,

/

int externo p = 4; // período ATR

//------

int start()

{

int i;

duplo m;

while( i < WindowBarsPerChart() - p )

{

duplo a = iATR( NULL, 0, p, i );

se ( m < a )

{

m = a;

}

i++;

}

Alerta( " O valor máximo de ATR em pips para o número visível de barras é ", m / Ponto ); //

/////

retorno(0);

}

 

Boeing747 Obrigado. Eu deveria ter escrito aqui imediatamente.

Portanto, a variante final da função em minha versão parece ser a seguinte

duplo ATR_Max() {
int i;
duplo m;
while( i < WindowBarsPerChart() - p ) {
duplo a = iATR( NULL, 0, p, i );
se ( m < a ) {
m = a;
}
i++;
}
Alerta( " O valor máximo de ATR para o número visível de barras é - ", m );
retorno(m);
}

 
dr.Vasgenich :

Boeing747 Obrigado. Eu deveria tê-lo escrito aqui imediatamente.

Portanto, a variante final da função em minha versão é parecida com a seguinte

duplo ATR_Max() {
int i;
duplo m;
while( i < WindowBarsPerChart() - p ) {
duplo a = iATR( NULL, 0, p, i );
se ( m < a ) {
m = a;
}
i++;
}
Alerta( " O valor máximo de ATR para o número visível de barras é - ", m );
retorno(m);
}

Devo ter cometido um erro no while( i < WindowBarsChart() - p )

muito provavelmente o iATR( NULL, 0, p, i ); função calcula valores para todas as barras no gráfico e você pode, ou talvez deva

corrigido para while( i < WindowBarsChart() ). Eu nunca trabalhei com a função iATR(); eu deveria tentar um dia destes.

Na verdade, você pode escrever sua função sem utilizar a função iATR(), por assim dizer, em sua forma pura.

 
Boeing747 :

Devo ter cometido um erro no while( i < WindowBarsChart() - p )

Muito provavelmente, o iATR( NULL, 0, p, i ); função calcula valores para todas as barras no gráfico.

corrigido para while( i < WindowBarsChart() ). Eu nunca trabalhei com o iATR(); eu deveria tentar um dia destes.

Basicamente, posso escrever sua função sem usar iATR(), por assim dizer em sua forma pura.


Eu também pensei agora que o período não tem nada a ver com isso. Provavelmente seria melhor removê-lo.

Você não pode fazer isso através de uma matriz? Colete em uma matriz os valores de todos os APR na janela e depois encontre o máximo usando esta função - ArrayMaximum Receio que meu conhecimento não seja suficiente.




 
dr.Vasgenich :

Estive pensando agora que o período não tem nada a ver com isso. Provavelmente é melhor removê-lo.

Isto não pode ser feito através de uma matriz? Colete em uma matriz os valores de todos os APR na janela e depois encontre o máximo usando esta função - ArrayMaximum Receio que meu conhecimento não seja suficiente para isto.




Sim, você pode rolar pelo iATR(); no loop para pontuar arrays e depois usar o ArrayMaximum para extrair o valor máximo de ATR. Mas ainda assim, você pode ficar amanteigado pois ainda é necessário usar o ciclo para pontuar arrays como na primeira opção . mas na primeira versão do máximo foi calculado no processo de rolagem do loop que é muito mais econômico do que com a opção ArrayMaximum. Você não precisa saber muito sobre isso. Você pode encontrar informações detalhadas sobre o ArrayMaximum em um livro didático ou em um livro de referência.
 
Boeing747 :
Sim, é possível rolar iATR(); em um loop para marcar arrays com ele e depois usar o ArrayMaximum para extrair o valor máximo de ATR. mas tudo isso é tão amanteigado quanto usar um loop para marcar arrays como na primeira variante . mas na primeira variante o máximo foi calculado durante a rolagem de um loop que é muito mais econômico do que com uma variante ArrayMaximum. Você não precisa de nenhum conhecimento especial. Você pode encontrar descrições detalhadas sobre o ArrayMaximum em um livro didático ou livro de referência.

Obrigado, vou tentar verificar amanhã. Mais uma pergunta, como posso economizar recursos do testador nesta função, para que o valor máximo seja calculado após o aparecimento de uma nova barra e não a cada tic tac?
 
dr.Vasgenich :

Obrigado, vou tentar verificar a operação amanhã. Mais uma pergunta, como posso economizar os recursos do testador nesta função, para que o valor máximo seja calculado após o aparecimento de uma nova barra e não a cada carrapato?

Você pode tentar desta forma para começar com

em nível global declarar t

e sobre o laço escreva

se ( t != Tempo[0] )

{

t = Tempo[0];

// loop onde o ATRmax é calculado

}

desta forma o cálculo no laço será feito uma vez na abertura de uma nova barra. talvez haja outras variantes mais inteligentes...

 

Boeing747, dr.Vasgenich, caras, não podem usar o botão "SRC" ou estão de acordo com isso?

 
Zhunko :

Boeing747, dr.Vasgenich, caras, não podem usar o botão "SRC" ou estão de acordo com isso?

Continuo esquecendo de usar o botão "SRC". Deve ser um hábito. Aos 60 anos, é difícil mudar de idéia. Vou tentar usar seu botão amanhã
Razão: