Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 804
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
Pouvez-vous me dire ce qu'il faut entendre dans l'entrée
int i,limit=prev_calculated==0 ? rates_total-1 : rates_total-prev_calculated ;
"==" , " ?" , " : "
?
Merci, Igor. Je ne l'ai pas exprimé correctement. L'indicateur est calculé et dessiné pour un nombre de barres spécifié (50 dans ce cas) et dans une fenêtre séparée. Il n'a pas besoin du prix d'ouverture mais de la première barre du jour pour indiquer la MA. Mais en tout cas, merci.
read SetIndexDrawBegin() - il s'agit d'une restriction pour dessiner le tampon de l'indicateur, jamais utilisée.
ou dans mon exemple, vous pouvez le faire de cette façon :
c'est-à-dire limiter le calcul des buffers d'indicateurs au paramètreBarCount
Pouvez-vous me dire ce qu'il faut entendre dans l'entrée
int i,limit=prev_calculated==0 ? rates_total-1 : rates_total-prev_calculated ;
"==" , " ?" , " : "
?
https://docs.mql4.com/ru/basis/operators/ternary
J'ai réécrit mon exemple, dans la première version il ne fonctionnait pas correctement lors du changement de TFs, vous devez réinitialiser dayopen et lastday, ils sont décrits avec le modificateur static.
Retourne également l'index dans le paramètre de la fonction passé par référence.
Retourné :
double GetPatt5barsDN()
{
double low3 = 0 ;
int index = 0 ;
for(int i=1 ; i<20 ; i++)
{
si
((Close[i] > Open[i]) &&
(Close[i+1] > Open[i+1]) &&
(Close[i+2] > Open[i+2]) && //Low[i+2] est nécessaire sur cette bougie
(Close[i+3] < Open[i+3]) &&
(Close[i+4] < Open[i+4])
low3 = Low[i+2] ;
indice = i+2 ;
}
retour(low3) ;
return(index) ;
}
Que dois-je faire ensuite ?
Retourné :
double GetPatt5barsDN()
{
double low3 = 0 ;
int index = 0 ;
for(int i=1 ; i<20 ; i++)
{
si
((Close[i] > Open[i]) &&
(Close[i+1] > Open[i+1]) &&
(Close[i+2] > Open[i+2]) && //Low[i+2] est nécessaire sur cette bougie
(Close[i+3] < Open[i+3]) &&
(Close[i+4] < Open[i+4])
low3 = Low[i+2] ;
indice = i+2 ;
}
retour(low3) ;
return(index) ;
}
Que dois-je faire ensuite ?
Ce n'est pas une façon de le récupérer.
Comme ça.
Plus d'informations sur
double min = Low[GetPatt5barsDN()];
Retourné :
double GetPatt5barsDN()
{
double low3 = 0 ;
int index = 0 ;
for(int i=1 ; i<20 ; i++)
{
si
((Close[i] > Open[i]) &&
(Close[i+1] > Open[i+1]) &&
(Close[i+2] > Open[i+2]) && //Low[i+2] est nécessaire sur cette bougie
(Close[i+3] < Open[i+3]) &&
(Close[i+4] < Open[i+4])
low3 = Low[i+2] ;
indice = i+2 ;
}
retour(low3) ;
return(index) ;
}
Que dois-je faire ensuite ?
Où est le retour de l'indice via un paramètre par référence ?
Et veuillez insérer le code correctement :
Y a-t-il une fonction dans MQL4 qui peut identifier les cotations d'un type de compte, comme 5 ou 4 décimales, quelles sont les façons d'identifier combien de zéros un actif a après la virgule par exemple EURJPY a 2 décimales, EURUSD a 4 décimales ?
https://docs.mql4.com/ru/predefined/digitsvar
Où est le retour de l'indice via un paramètre par référence ?
Et veuillez insérer le code correctement :
Il me semble que j'ai bien compris maintenant :
Mais à la compilation, il génère un avertissement : perte possible de données en raison de la conversion de type en ligne :
index = GetPatt5barsDN(index) ;
Il n'y a pas d'erreur dans l'en-tête de la fonction (ou dans la fonction elle-même) pendant la compilation.