Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 43
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Aidez-moi à écrire une fonction qui renvoie la valeur maximale de l'ATR parmi les barres visibles dans la fenêtre. J'ai cherché partout sur internet, je n'ai rien trouvé de semblable.
Merci,
Aidez-moi à écrire une fonction qui obtient la valeur maximale de l'ATR parmi les barres visibles dans la fenêtre. J'ai cherché partout sur internet, je n'ai rien trouvé de semblable.
Merci,
/
extern int p = 4 ; // période ATR
//------
int start()
{
int i ;
double m ;
while( i < WindowBarsPerChart() - p )
{
double a = iATR( NULL, 0, p, i ) ;
si ( m < a )
{
m = a ;
}
i++ ;
}
Alert( " La valeur maximale de l'ATR en pips pour le nombre de barres visibles est ", m / Point ) ; //.
/////
retour(0) ;
}
Boeing747 Merci. J'aurais dû écrire ici tout de suite.
Ainsi, la variante finale de la fonction dans ma version ressemble à ceci
double ATR_Max() {
int i ;
double m ;
while( i < WindowBarsPerChart() - p ) {
double a = iATR( NULL, 0, p, i ) ;
si ( m < a ) {
m = a ;
}
i++ ;
}
Alert( " La valeur maximale de l'ATR pour le nombre de barres visibles est - ", m ) ;
retour(m) ;
}
Boeing747 Merci. J'aurais dû l'écrire ici tout de suite.
Ainsi, la variante finale de la fonction dans ma version ressemble à ceci
double ATR_Max() {
int i ;
double m ;
while( i < WindowBarsPerChart() - p ) {
double a = iATR( NULL, 0, p, i ) ;
si ( m < a ) {
m = a ;
}
i++ ;
}
Alert( " La valeur maximale de l'ATR pour le nombre de barres visibles est - ", m ) ;
retour(m) ;
}
Je dois avoir fait une erreur dans while( i < WindowBarsChart() - p )
Il est fort probable que la fonction iATR( NULL, 0, p, i ) ; calcule les valeurs de toutes les barres du graphique et que vous pouvez, ou peut-être devez, faire ce qui suit
corrigé en while( i < WindowBarsChart() ). Je n'ai jamais travaillé avec iATR() ; je devrais essayer un jour.
En fait, vous pouvez écrire votre fonction sans utiliser la fonction iATR(), c'est-à-dire dans sa forme pure.
Je dois avoir fait une erreur dans while( i < WindowBarsChart() - p )
Le plus souvent, la fonction iATR( NULL, 0, p, i ) ; calcule les valeurs de toutes les barres du graphique.
corrigé en while( i < WindowBarsChart() ). Je n'ai jamais travaillé avec iATR() ; je devrais essayer un jour.
En fait, je peux écrire votre fonction sans utiliser iATR(), c'est-à-dire dans sa forme pure.
Je pense aussi maintenant que la période n'a rien à voir avec cela. Il serait probablement préférable de l'enlever.
Ne pouvez-vous pas le faire par le biais d'un tableau ? Rassembler dans un tableau les valeurs de tous les APR de la fenêtre puis trouver le maximum en utilisant cette fonction - ArrayMaximum Je crains que mes connaissances ne soient pas suffisantes.
Je pense maintenant que la période n'a rien à voir avec ça. Il est probablement préférable de l'enlever.
Cela ne peut-il pas être fait par le biais d'un tableau ? Rassemblez dans un tableau les valeurs de tous les APR de la fenêtre et trouvez ensuite le maximum en utilisant cette fonction - ArrayMaximum Je crains que mes connaissances ne soient pas suffisantes pour cela.
Oui il est possible de faire défiler iATR() ; dans une boucle pour marquer les tableaux avec elle et puis en utilisant ArrayMaximum pour extraire la valeur maximale ATR. mais tout de même il s'avère huileux comme spécialement pour ce but il est nécessaire d'utiliser une boucle pour marquer les tableaux comme dans la première variante . mais dans la première variante le maximum a été calculé pendant le défilement d'une boucle qui est beaucoup plus économique qu'avec une variante ArrayMaximum. Vous n'avez pas besoin de connaissances particulières. Vous pouvez trouver des descriptions détaillées sur ArrayMaximum dans un manuel ou un livre de référence.
Merci, je vais essayer de vérifier demain. Une autre question, comment puis-je économiser les ressources du testeur dans cette fonction, afin que la valeur maximale soit calculée après l'apparition d'une nouvelle barre et non à chaque tick?
Merci, je vais essayer de vérifier l'opération demain. Une autre question, comment puis-je sauvegarder les ressources du testeur dans cette fonction, afin que la valeur maximale soit calculée après l'apparition d'une nouvelle barre et non à chaque tick ?
Vous pouvez essayer de cette façon pour commencer
au niveau global déclarer t
et sur la boucle écrire
si ( t != Time[0] )
{
t = Temps [0] ;
// boucle où ATRmax est calculé
}
de cette façon, le calcul dans la boucle sera effectué une fois à l'ouverture d'une nouvelle barre. il existe peut-être d'autres variantes plus astucieuses...
Boeing747, dr.Vasgenich, les gars, ne pouvez-vous pas utiliser le bouton "SRC" ou êtes-vous d'accord avec cela ?
Boeing747, dr.Vasgenich, les gars, ne pouvez-vous pas utiliser le bouton "SRC" ou êtes-vous d'accord avec cela ?