Questions des débutants MQL5 MT5 MetaTrader 5 - page 575
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
Voici ma variante de la résolution du problème de la recherche par répétition :
Pour que le script fonctionne, le fichier Dictionnaire doit être copié dans MQL5\Include
La recherche est effectuée dans la boucle for à passage unique surlignée en jaune. La liste résultante ne contient pas de répétitions (si A répète B et B répète A, un ensemble {A, B} sera produit au lieu de deux {A, B} et {B, A}). ).
Le résultat de ce script est le suivant :
De la référence :
Voici ma version de la solution au problème de la recherche de répétitions :
Veuillez m'aider à trouver une fonction pour calculer le RSI standard, les exigences sont simples :
1. Retourner la valeur RSI à une barre donnée
2. Calculer l'indice uniquement pour les barres (si nécessaire), qui sont demandées (souhaitable).
3. Être capable de calculer sur le TF spécifié
4. Travaille au détriment du point 2 plus rapidement que l'indicateur
Je veux intégrer la fonction dans l'Expert Advisor, si quelqu'un en a une prête, merci de la partager avec moi.
Je pose la question car cet indicateur est très courant et n'est pas un mystère.
Veuillez m'aider à trouver une fonction pour calculer le RSI standard, les exigences sont simples :
1. Retourner la valeur RSI à une barre donnée
2. Calculer l'indice uniquement pour les barres (si nécessaire), qui sont demandées (souhaitable).
3. Être capable de calculer sur le TF spécifié
4. Travaille au détriment du point 2 plus rapidement que l'indicateur
Je veux intégrer la fonction dans l'EA, si quelqu'un en a une prête, merci de la partager avec moi.
Je pose la question car cet indicateur est très courant et n'est pas un mystère.
Quel est le problème avec l'iRSI standard ? Pas assez secret ?
Il y a mes changements que je devrai faire à la fonction...
Prenez donc un modèle prêt à l'emploi et modifiez-le en fonction de vos besoins :
Prenez donc un modèle prêt à l'emploi et modifiez-le en fonction de vos besoins :
Voici ma variante pour résoudre le problème de la recherche de répétitions :
Vasily, lorsque j'ouvre#include <Dictionary.mqh>, il s'ouvre de la même manière que dans le corps de l'EA. Ça devrait être comme ça, ou il devrait y avoir un autre code à l'intérieur ?
Parce que dans le code, que je vois, il n'est pas clair comment il cherche les répétitions ((
Ai-je raison de supposer qu'il s'agit d'une erreur de frappe ? Il faudrait que ce soit 0 au lieu de 1.
comme ça :int searchPeriod=(Search_Period<1)?0:Search_Period ;
et plus loin dans le script exécutable :
int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period())) ; // le nombre de bougies à copier
Dans ce cas, nous devrions probablement déjà utiliser une variable : searchPeriod. non ?
------
Autre question, à quoi sert cette ligne ? J'ai découvert que chaque élément de la structure se remet à zéro. Et je ne comprends pas ce que nous mettons à zéro ici si nous semblons avoir juste écrit ces données et devrions les utiliser plus loin.
ZeroMemory(dataCandle) ; // Remise à zéro des données dans la structure
Ai-je raison de supposer qu'il s'agit d'une erreur de frappe ? Il faudrait que ce soit 0 au lieu de 1.
comme ça :int searchPeriod=(Search_Period<1)?0:Search_Period ;
et plus loin dans le script exécutable :
int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period())) ; // le nombre de bougies à copier
Dans ce cas, nous devrions probablement déjà utiliser une variable : searchPeriod. non ?
------
Autre question, à quoi sert cette ligne ? J'ai découvert que chaque élément de la structure se remet à zéro. Et je ne comprends pas ce que nous mettons à zéro ici si nous semblons avoir juste écrit ces données et devrions les utiliser plus loin.
ZeroMemory(dataCandle) ; // effacement des données dans la structure
"comme ceci :int searchPeriod=(Search_Period<1)?0:Search_Period ;"
Non, ça ne l'est pas. Voici comment procéder (littéralement) : si la période de recherche définie par l'utilisateur dans les paramètres est inférieure à un, alors la période de recherche sera égale à zéro ; sinon, la période de recherche sera égale à la valeur de la période de recherche définie par l'utilisateur dans les paramètres. Ce n'est pas correct. Nous n'avons pas besoin d'une plage de recherche égale à zéro. Ainsi, si cette plage est définie par l'utilisateur comme étant égale à 0 ou inférieure à zéro (inférieure à un), nous la définirons comme étant égale au minimum - un.
"int copy_bars=(int)fmin(Search_Period,Bars(Symbol(),Period())) ; // nombre de chandeliers à copier
ici nous devrions déjà utiliser la variable : searchPeriod. n'est-ce pas ? "
Oui, c'est vrai, c'est une faute de frappe.
"Autre question, à quoi sert cette ligne ? À quoi sert-elle ? J'ai découvert que cela remet à zéro chaque élément de la structure. Et là, je n'arrive pas à comprendre pourquoi et ce que nous mettons à zéro si nous venons d'écrire ces données et que nous devons les utiliser plus tard. ZeroMemory(dataCandle) ; // Mise à zéro des données dans la structure ".
Nous faisons cela avant de remplir la structure avec des données. D'abord on le met à zéro, et ensuite on le remplit. Regarde - on le met à zéro avant la boucle. Et ensuite, dans la boucle, nous remplissons la structure avec des données.