[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 753
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
Veuillez me dire quel est le problème :
1) Je remplis un tableau bidimensionnel avec l'heure de formation de l'extremum ZigZag et la valeur de l'extremum lui-même.
2) Remplir le deuxième tableau de uns ou de deux selon que l'extremum correspondant à un élément donné est un maximum ou un minimum local.
3) J'envoie les résultats par Alert.
mais à un endroit où 1 ou 2 devrait être imprimé, des zéros sont toujours imprimés.
Quel est le piège ?!?
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
string TimeSave1[100][2], TimeSave2[100][2];
double A[], B[];
double Number_of_extremum[];
extern string Currency = "EURUSD";
+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
int k;
k=0;
double date;
int status;
for(int shift = 0; shift <= Bars-1; shift++)
{
date = iCustom(NULL, 0, "ZigZag", 12, 5, 3, 0, shift);
//----------------------------------------------------
if(date > 0)
{
TimeSave1[k][0]=TimeToStr(Time[shift]);
TimeSave1[k][1]=date;
k++;
}
}
//====================================================
for (int u=1;u<=k;u++)
{
if (StrToDouble(TimeSave1[u][1])<=StrToDouble(TimeSave1[u-1][1]))
{
Number_of_extremum[u]=1;// значит под номером u - нашли min
}
else
if (StrToDouble(TimeSave1[u][1])>=StrToDouble(TimeSave1[u-1][1]))
{
Number_of_extremum[u]=2;// значит под номером u - нашли max
}
}
//====================================================
for (int j=1;j<10;j++)
{
Alert("время== ",TimeSave1[j][0], " значение== ", TimeSave1[j][1], " max/min== ", Number_of_extremum[j]);
}
//----
return(0);
}
//+------------------------------------------------------------------+
Et encore une précision :
comment comparer des dates et des heures dans mql (par exemple, je dois déterminer quel sommet de ZZ s'est formé le plus tôt - pour ce faire, je dois comparer l'heure de leur formation...)
Je n'ai pas regardé le reste - je viens d'arriver...
Mes amis, une question :
Confronté à ce problème :
l'indicateur émet des informations via Alert.
Mais, progressivement, le champ de sortie de l'alerte accumule trop de "merde"...
Lorsque je relancerai l'indicateur, sera-t-il possible d'effacer tous les anciens enregistrements dans Alert ?
Merci d'avance.
P.S.
Veuillez commenter mon message précédent (pourquoi les valeurs nulles sont affichées au lieu de 1 et 2).
Je ne l'ai pas trouvé sur le forum...
Question - est-il possible de changer le commentaire de l'ordre ? Eh bien, lors de l'opération OrderSend(), je mets dans le commentaire la valeur "OrderNotModify", et en faisant d'autres actions avec cet ordre, par exemple une fermeture partielle, je change OrderComment en "OrderIsModify"... ou pas ?
Pouvez-vous me dire quel est le piège :
Le tableau est rempli à partir de 0, mais ici le 0ème indice est sauté, et nous remplissons à partir du 1er, et
Le tableau est rempli à partir de 0, mais ici le 0ème indice est sauté et rempli à partir du 1er, et
Je ne comprends pas bien votre commentaire.
1) k - au départ - n'est pas nul ! k = le nombre de sommets ZigZag que nous avons détectés à une certaine profondeur de l'histoire !
2) "donc, ça marche toujours [1][1]>=[0][1]" - pourquoi ça marche toujours ? si l'élément précédent du tableau TimeSave1 > l'élément suivant, ça ne marchera pas.
répétez, s'il vous plaît, ce que vous vouliez dire.
Je n'ai pas bien compris votre commentaire.
1) k - au départ - n'est pas égal à zéro ! k = le nombre de sommets ZigZag que nous avons détectés à une certaine profondeur de l'histoire !
2) "donc, ça marche toujours [1][1]>=[0][1]" - pourquoi ça marche toujours ? si l'élément précédent du tableau TimeSave1 > l'élément suivant, ça ne marchera pas.
S'il vous plaît, dites-moi à nouveau ce que vous voulez dire.
Je comprends K. C'est ce que je ne comprends pas.
dans la partie droite
est-il possible de modifier le commentaire de la commande ?
On dirait que non.
donc... on dirait que c'est la chaleur... Et cela affecte aussi mon compilateur :)
Voyez-vous, j'ai besoin de parcourir un tableau qui enregistre la date de formation du max/min de la ZigZ et la valeur de ce max/min.
J'ai besoin de comprendre, en fait, quel sommet de ZZ est un minimum et lequel est un maximum.
Pour ce faire, je compare le prochain point le plus élevé de ZZ au précédent.
Si le sommet consécutif est plus grand, alors il s'agit d'un sommet.
si elle est plus petite, c'est un creux.
Selon qu'il s'agit d'un sommet ou d'un creux, on ajoute respectivement 1 ou 2 à un élément d'un autre tableau.
Je suis curieux à ce sujet, OÙ l'erreur pourrait être !!!!
Je veux pouvoir calculer les niveaux de fiba sur la base de deux valeurs connues :
Le niveau du Fib zéro correspond à 1.2807, le niveau 23.6 correspond à 1.2838.
Nous devons trouver les autres niveaux 38.2, 50.0, 61.5, 100.0 et à quels prix ils correspondent.
Je n'ai même pas pu trouver de lien entre 1.2807 et 1.2838 pour comprendre les principes de la
de trouver toutes les autres valeurs.
S'il vous plaît, dites-moi, quelqu'un... :)
Quelqu'un a-t-il rencontré l'indicateur qui permet de voir le temps d'ouverture de la barre dans une TF basse, pas le temps qui est intéressant, et de dessiner les marques sur le graphique où la barre a commencé et où elle s'est terminée.
Je pense que oui. Le code n'est pas optimisé, mais il dessine ce que je voudrais voir.