Dans sa fenêtre, le graphique ne trace normalement que cinq lignes verticales de volatilité pour 0 jour, 1 jour, moyenne pour 2 jours, 3 jours et 4 jours.
La volatilité moyenne en fonction de la somme des 5 jours précédents est dessinée comme une ligne brisée pour 50 bougies quotidiennes - c'est le nombre de bougies spécifié.
Le contenu des tampons est calculé de la manière suivante : calcul de la moyenne sur 5 jours - dans le cycle (pour tracer une ligne sur 50 jours), autres données moyennes - hors du cycle.
while(i>=0)
{
int day0= (High[i] - Low[i])/Point;
int day1= (High[i+1] - Low[i+1])/Point;
int day2= (High[i+2] - Low[i+2])/Point;
int day3= (High[i+3] - Low[i+3])/Point;
int day4= (High[i+4] - Low[i+4])/Point;
int day5= (High[i+5] - Low[i+5])/Point;
int D5_av = (day1+ day2+ day3+ day4+ day5) / 5;
VolatBuffer5[i]=D5_av;
i--;
}
day0= (High[0] - Low[0])/Point;
day1= (High[1] - Low[1])/Point;
day2= (High[2] - Low[2])/Point;
day3= (High[3] - Low[3])/Point;
day4= (High[4] - Low[4])/Point;
int D4_av = (day1+ day2+ day3+ day4)/4;
int D3_av = (day1+ day2+ day3)/3;
int D2_av = (day1+ day2)/2;
int D1_av = day1/1;
int D0_av = day0/1;
VolatBuffer0[0]=D0_av;
VolatBuffer1[1]=D1_av;
VolatBuffer2[2]=D2_av;
VolatBuffer3[3]=D3_av;
VolatBuffer4[4]=D4_av;
Comment("Волатильность. За 5 дн.= "+VolatBuffer5[5]+" За 4 дн.= "+VolatBuffer4[4]+" За 3 дн.= "+VolatBuffer3[3]+" За 2 дн.= "+VolatBuffer2[2]+" Вчера= "+VolatBuffer1[1]+" Сегодня= "+VolatBuffer0[0]);
La ligne Coment de l'indicateur, dans laquelle le contenu des tampons est saisi, donne une absurdité à l'écran :
Moyenne sur 5 jours -pas de volatilité supérieure à 194 pips pour ces jours et résultats corrects pour les autres jours.
Coment = " Volatilité. Pour 5 jours = 219.000000 Pour 4 jours = 171.0000000 Pour 3 jours = 189.00000 Pour 2 jours = 187.00000 Hier = 194.00000 Aujourd'hui = 5 "
Le jour zéro "Aujourd'hui" augmente clairement avec la volatilité du jour en cours
Lors de l'appel de ces tampons au conseiller expert
int Volat0= iCustom(Symbol(), 1440, "Volat_Average_Gist",0,0);
int Volat1= iCustom(Symbol(), 1440, "Volat_Average_Gist",1,0);
int Volat2= iCustom(Symbol(), 1440, "Volat_Average_Gist",2,0);
int Volat3= iCustom(Symbol(), 1440, "Volat_Average_Gist",3,0);
int Volat4= iCustom(Symbol(), 1440, "Volat_Average_Gist",4,0);
int Volat5= iCustom(Symbol(), 1440, "Volat_Average_Gist",5,0);
La ligne Print du testeur produit une autre absurdité - non correcte, différente de la ligne Coment, mais similaire à la vérité, le résultat moyen pour 5 jours et la volatilité correcte du "Jour Zéro" d'aujourd'hui.
Le reste donne un nombre fixe absurde.
Le test Print montre la Volatilité dans 5 jours=181 Dans 4 jours= 2147483647 Dans 3 jours= 2147483647 Dans 2 jours= 2147483647 Hier= 2147483647 Aujourd'hui= 5
Depuis plusieurs jours, je n'arrive pas à comprendre pourquoi des données différentes de celles contenues dans les cinq tampons des indicateurs sont appelées dans l'Expert Advisor, à l'exception du tampon "Jour Zéro" ?
La question n'est plus de savoir comment écrire le code, mais au niveau d'une idée - est-il possible d'éviter les boucles multiples,
ce qui fait peser une lourde charge sur le processeur. Par exemple, il y a eu une idée de suivre le nombre d'ordres STOP ouverts - s'il a diminué d'une unité, mais que l'ordre n'a pas été supprimé => ouvrir un ordre au marché =>.
son heure d'ouverture et son type doivent être placés dans un tableau. Quelque chose comme ça.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Pouvez-vous me dire ce que signifie l'erreur lors de la compilation de l'EA ?
\Žfin_du_programme' - parenthèse gauche déséquilibrée
Parenthèse gauche déséquilibrée.
Support gauche déséquilibré.
Oups... Je l'ai trouvé. MERCI.
Voici une question.
Les ordres sont ouverts en tant que BUY/SELL STOP. Certains deviennent des ordres de marché, d'autres sont supprimés.
Pour les derniers ordres N-market (ouverts et fermés), nous devons savoir s'il s'agissait d'un achat ou d'une vente.
Ma première idée est de rechercher toutes les commandes à partir de OrdersHistoryTotal() et OrdersTotal(), de les trier par
et ensuite les trier par OP_BUY et OP_SELL. Mais cela est long et ralentira sauvagement le processeur.
- Peut-être existe-t-il une autre variante, plus simple ?
Merci !
Bon après-midi.
Quelqu'un peut-il m'aider ?
J'ai écrit mon premier indicateur simple, il doit calculer la volatilité moyenne pour les 2, 3, 4 et 5 derniers jours.
L'indicateur dispose de six tampons,
Dans sa fenêtre, le graphique ne trace normalement que cinq lignes verticales de volatilité pour 0 jour, 1 jour, moyenne pour 2 jours, 3 jours et 4 jours.
La volatilité moyenne en fonction de la somme des 5 jours précédents est dessinée comme une ligne brisée pour 50 bougies quotidiennes - c'est le nombre de bougies spécifié.
Le contenu des tampons est calculé de la manière suivante : calcul de la moyenne sur 5 jours - dans le cycle (pour tracer une ligne sur 50 jours), autres données moyennes - hors du cycle.
La ligne Coment de l'indicateur, dans laquelle le contenu des tampons est saisi, donne une absurdité à l'écran :
Moyenne sur 5 jours - pas de volatilité supérieure à 194 pips pour ces jours et résultats corrects pour les autres jours.
Coment = " Volatilité. Pour 5 jours = 219.000000 Pour 4 jours = 171.0000000 Pour 3 jours = 189.00000 Pour 2 jours = 187.00000 Hier = 194.00000 Aujourd'hui = 5 "
Le jour zéro "Aujourd'hui" augmente clairement avec la volatilité du jour en cours
Lors de l'appel de ces tampons au conseiller expert
La ligne Print du testeur produit une autre absurdité - non correcte, différente de la ligne Coment, mais similaire à la vérité, le résultat moyen pour 5 jours et la volatilité correcte du "Jour Zéro" d'aujourd'hui.
Le reste donne un nombre fixe absurde.
Le test Print montre la Volatilité dans 5 jours=181 Dans 4 jours= 2147483647 Dans 3 jours= 2147483647 Dans 2 jours= 2147483647 Hier= 2147483647 Aujourd'hui= 5
Depuis plusieurs jours, je n'arrive pas à comprendre pourquoi des données différentes de celles contenues dans les cinq tampons des indicateurs sont appelées dans l'Expert Advisor, à l'exception du tampon "Jour Zéro" ?
Essayez de substituer
VolatBuffer1[1]=D1_av;
à
VolatBuffer1[0]=D1_av;
et tous les autres tampons également.
Essayez de substituer
VolatBuffer1[1]=D1_av;
à
VolatBuffer1[0]=D1_av;
et tous les autres tampons également.
Merci !
Ça a marché. Le conseiller expert a commencé à recevoir des données normales.
De plus, il y a un effet intéressant - dans la ligne "Coment" de l'indicateur
seulement 219 pour 5 jours restera comme il était.
Dans le même temps, le conseiller expert reçoit 181 au lieu de 219 comme il le devrait.
Coment''montre Volatilité Sur 5 jours= 219.000000 Sur 4 jours= 2147483647 Sur 3 jours= 2147483647 Sur 2 jours= 2147483647 Hier= 2147483647 Aujourd'hui= 5
Essayez de substituer
VolatBuffer1[1]=D1_av;
à
VolatBuffer1[0]=D1_av;
et tous les autres tampons également.
J'ai trouvé un autre effet. Toutes les lignes verticales de la fenêtre de l'indicateur sont dessinées les unes au-dessus des autres.
La valeur la plus importante couvre toutes les autres. Il n'est pas essentiel pour le conseiller expert.
Bon après-midi.
Quelqu'un peut-il m'aider ?
J'ai écrit mon premier indicateur simple - il doit compter la volatilité moyenne pour les 2, 3, 4 et 5 derniers jours.
Vous pouvez simplifier considérablement les choses en utilisant ATR :
Deux scripts :
La question n'est plus de savoir comment écrire le code, mais au niveau d'une idée - est-il possible d'éviter les boucles multiples,
ce qui fait peser une lourde charge sur le processeur. Par exemple, il y a eu une idée de suivre le nombre d'ordres STOP ouverts - s'il a diminué d'une unité, mais que l'ordre n'a pas été supprimé => ouvrir un ordre au marché =>.
son heure d'ouverture et son type doivent être placés dans un tableau. Quelque chose comme ça.
Toutes les idées sont les bienvenues.
Merci !
Vous pouvez simplifier considérablement les choses en utilisant ATR :