[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 587
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Exemple :
Ici mes variables sélectionnées sont de type double, mais dans iMA leur valeur est utilisée là où une valeur int est nécessaire (comme une période de MA).
La question est la suivante : cette utilisation est-elle correcte ou est-il nécessaire de convertir les valeurs en type int ?
Il y a t-il un exemple fonctionnel ou un lien ?
Veuillez me dire s'il est possible d'utiliser la valeur du double, qui est le résultat du calcul, comme une valeur int de substitution pour d'autres calculs.
Exemple :
Ici, mes variables sélectionnées sont de type double, mais dans iMA , leur valeur est utilisée là où une valeur int est nécessaire (comme la période de la MA).
Ma question est donc la suivante : cette utilisation est-elle correcte ou une conversion des valeurs en type int est-elle nécessaire ?
La conversion se fait automatiquement, en coupant simplement la partie fractionnée. La seule limitation à cette utilisation que j'ai vue est que le double ne peut pas être placé dans l'index du tableau.
Une dernière question :
Constructions
ne fonctionnent pas. Lorsque l'on affiche leurs valeurs dans le graphique, elles ont toutes la même valeur, par ex :
1,4118 pour MA200_DIN, MA200_UP, MA200_DN et
1.4106 pour MA5_DIN, MA5_UP, MA5_DN.
Il s'avère que les formules de calcul des niveaux +20 et -20 points ne fonctionnent pas.
Qu'est-ce que je fais de mal ?
Comme l'a dit Matroskin : Vous êtes un idiot... :)
Donnez-nous un code ou définissez une tâche et nous la corrigerons
.
Dans WelsLab, l'analogue du problème ressemble à ceci :
MyATR = SMA.Series((((High-Low)/Low), PerB)[i-1] ;
si (BuyAtStop(i, (Open[i] + Open[i]*MyATR), "") ;
c'est-à-dire que lorsqu'une barre est ouverte, une position Stop est placée où le prix Open [i] de la barre actuelle + le trigger (le même prix Open multiplié par MyATR calculé pour la période PerB sur les barres fermées [i-1]) est ouvert une fois si le niveau spécifié est atteint.
Celui-ci montre ce que je veux obtenir sur mql4 en utilisant WellLab comme exemple.
J'ai étudié les matériaux du site et j'ai essayé d'en faire une analogie.
Résultat : les ordres s'accumulent. Veuillez indiquer quelle condition doit être ajoutée (ou modifiée) pour que les ordres soient exécutés une fois à un niveau spécifié.
Note : le premier paramètre de la fonction iMAOnArray doit être un tableau - et vous avez le scalaire MyATR. Pour bien faire les choses, vous devez :
1. déclarer le double MyATR[] ;
2. définissez la taille du tableau à ArrayResize(MyATR,PerB) ;
3. remplissez le tableau for(i=1;i<=PerB;i++) MyATR[i-1]=(High[i]-Low[i])/Low[i] ; l'indice i commence par 1 puisque nous n' avons besoin que des barres fermées
4. après cela vous pouvez lire iMAOnArray(MyATR,0,PerB,0,MODE_SMA,0) ; ici le dernier paramètre est 0 puisque le décalage ha1 a déjà été pris en compte à l'étape 3.
Vérifiez comment il fonctionne, peut-être l'erreur est juste dans ce