Si nous avons le cadre temporel actuel M5, nous devons comparer M5 avec H1 et M1.
Le cadre temporel actuel M5 est affiché correctement. Le problème se situait au niveau de H1 et M1.
J'ai vérifié sur Alpari real EURCHF M5 seulement au lieu de Print j'ai dessiné des barres horizontales à chacun des niveaux.
Oui, j'ai d'abord présenté H1 de cette façon, mais j'ai ensuite décidé que ce serait trop rare comme comparaison. Alors je l'ai changé en M5.
Mikhail Nazarenko:
Je me permets de vous donner un exemple de remplacement de iXXXXXXX par SymbolInfoXXXXXX.
Artyom a fait une petite erreur...
Au lieu de iClose, vous pouvez utiliser
intCopyClose(
string symbol_name, // имя символа ENUM_TIMEFRAMES timeframe, // период int start_pos, // откуда начнем int count, // сколько копируем double close_array[] // массив для копирования цен закрытия
);
Alexey Viktorov: Oui, c'est comme ça que j'ai d'abord mis H1, mais ensuite j'ai décidé que ce serait des comparaisons trop rares. Alors je l'ai changé en M5.
J'ai terminé votre code ici et l'ai posté ci-dessus. J'ai mis votre version dans la mienne et le résultat est le même. Il y a un décalage sur presque toutes les bougies M5. Quels sont vos résultats ?
J'ai terminé votre code ici et l'ai posté ci-dessus. J'ai mis votre version dans la mienne et le résultat est le même. Il y a un décalage sur presque toutes les bougies M5. Quels sont vos résultats ?
Non, mieux _Période. Car nous attendrons forcément la cotation zéro de H1, alors que la période actuelle est correctement mise à jour. Les données doivent être reçues aux premières secondes de l'heure, et non lors de la mise à jour de l'heure.
Non, mieux _Period. Car nous attendrons forcément la cotation zéro de H1, alors que la période actuelle est correctement mise à jour. Les données doivent être reçues aux premières secondes de l'heure, et non lors de la mise à jour de l'heure.
Je veux ajouter à l'exemple et vérifier
Il semble que vous ne compreniez pas du tout comment fonctionne la fonction d'apparition de nouvelles barres.
Le résultat est le même que lorsque iClose(); iClose et CopyClose semblent prendre les données au même endroit.
Lors de la réception de valeurs de fermeture de barres et d'autres de l'OHLC, lorsqu'une nouvelle valeur TIKA est reçue, il n'y a toujours aucun problème.
Vous ne semblez pas du tout comprendre comment fonctionne la nouvelle fonction de barre.
Et par conséquent.
Lorsque je reçois des valeurs de clôture de barres et d'autres valeurs de l'OHLC, lorsqu'une nouvelle TIKA arrive, les valeurs sont toujours sans problème.
Répondez à la question. Pourquoi, lors d'une nouvelle bougie, la fonction iClose(1) renvoie-t-elle des informations périmées et non actualisées ou une erreur ? Il s'agit d'un bug.
Répondez à la question. Pourquoi, lors d'une nouvelle bougie, la fonction iClose(1) renvoie-t-elle des informations périmées et non actualisées ou une erreur ? Il s'agit d'un bug.
Si c'est un bug, alors tout le monde, ou presque, devrait l'avoir. Si c'est seulement vous, alors c'est un problème dans le code.
J'ai mon EA sur M15 avec détermination d'une nouvelle barre H1.
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.
Si vous suspectez des erreurs dans les fonctions iXXXXX, utilisez les fonctions SymbolInfoXXXXXX.
Peut un exemple de remplacement de iXXXXX par SymbolInfoXXXXXX.
Mon code est similaire. Erreur dans OnTick
il devrait l'être
Si nous avons le cadre temporel actuel M5, nous devons comparer M5 avec H1 et M1.
Le cadre temporel actuel M5 est affiché correctement. Le problème se situait au niveau de H1 et M1.
J'ai vérifié sur Alpari real EURCHF M5 seulement au lieu de Print j'ai dessiné des barres horizontales à chacun des niveaux.
Oui, j'ai d'abord présenté H1 de cette façon, mais j'ai ensuite décidé que ce serait trop rare comme comparaison. Alors je l'ai changé en M5.
Je me permets de vous donner un exemple de remplacement de iXXXXXXX par SymbolInfoXXXXXX.
Artyom a fait une petite erreur...
Au lieu de iClose, vous pouvez utiliser
quelque chose comme ceci
De cette façon, vous pouvez obtenir les valeurs de plusieurs barres en un coup de baguette magique.
La fonction renvoie vrai ou faux, mais je ne l'ai pas vérifié dans cet exemple. Vous pouvez le deviner vous-même...
Oui, c'est comme ça que j'ai d'abord mis H1, mais ensuite j'ai décidé que ce serait des comparaisons trop rares. Alors je l'ai changé en M5.
J'ai terminé votre code ici et l'ai posté ci-dessus. J'ai mis votre version dans la mienne et le résultat est le même. Il y a un décalage sur presque toutes les bougies M5. Quels sont vos résultats ?
J'ai terminé votre code ici et l'ai posté ci-dessus. J'ai mis votre version dans la mienne et le résultat est le même. Il y a un décalage sur presque toutes les bougies M5. Quels sont vos résultats ?
Ici, nous devons changer
à
Ici, nous devons changer
à
Non, mieux _Période. Car nous attendrons forcément la cotation zéro de H1, alors que la période actuelle est correctement mise à jour. Les données doivent être reçues aux premières secondes de l'heure, et non lors de la mise à jour de l'heure.
Je veux compléter l'exemple et vérifierdouble close_H1,close_M5, close_M1; /*******************Expert initialization function*******************/ int OnInit() { return(INIT_SUCCEEDED); }/*******************************************************************/ /************************Expert tick function************************/ void OnTick() { if(NewBar(PERIOD_M5)) { close_H1 = iClose(_Symbol, PERIOD_H1, 1); close_M1 = iClose(_Symbol, PERIOD_M1, 1); close_M5 = Close[1]; if(close_H1 != close_M5) Print(close_H1, " H1 != M5 ", close_M5); if(close_M1 != close_M5) Print(close_M1, " M1 != M5 ", close_M5); double ARRAY_M1[]; CopyClose(_Symbol, PERIOD_M1, 1, 1, ARRAY_M1); double ARRAY_H1[]; CopyClose(_Symbol, PERIOD_H1, 1, 1, ARRAY_H1); if(ARRAY_H1[0] != close_M5) Print(ARRAY_H1[0], " CopyClose H1 != M5 ", close_M5); if(ARRAY_M1[0] != close_M5) Print(ARRAY_M1[0], " CopyClose M1 != M5 ", close_M5); Comment( close_H1, " H1\n", close_M1, " M1\n", close_M5, " M5\n", ARRAY_H1[0], " CopyCloseH1\n", ARRAY_M1[0], " CopyCloseM1\n" ); } }/******************************************************************/ /**********************Expert OnDeinit function**********************/ void OnDeinit(const int reason) { Comment(""); }/******************************************************************/ bool NewBar(ENUM_TIMEFRAMES tf) { static datetime nt = 0; datetime tm = iTime(_Symbol, tf, 0); if(tm == 0) return false; if(tm != nt) { nt = tm; return true; } return false; }/******************************************************************/.Ici, nous devons changer
à
Le résultat est le même qu'avec iClose(); iClose et CopyClose semblent prendre les données au même endroit.
Non, mieux _Period. Car nous attendrons forcément la cotation zéro de H1, alors que la période actuelle est correctement mise à jour. Les données doivent être reçues aux premières secondes de l'heure, et non lors de la mise à jour de l'heure.
Je veux ajouter à l'exemple et vérifierIl semble que vous ne compreniez pas du tout comment fonctionne la fonction d'apparition de nouvelles barres.
Et par conséquent.
Le résultat est le même que lorsque iClose(); iClose et CopyClose semblent prendre les données au même endroit.
Vous ne semblez pas du tout comprendre comment fonctionne la nouvelle fonction de barre.
Et par conséquent.
Lorsque je reçois des valeurs de clôture de barres et d'autres valeurs de l'OHLC, lorsqu'une nouvelle TIKA arrive, les valeurs sont toujours sans problème.Répondez à la question. Pourquoi, lors d'une nouvelle bougie, la fonction iClose(1) renvoie-t-elle des informations périmées et non actualisées ou une erreur ? Il s'agit d'un bug.
Répondez à la question. Pourquoi, lors d'une nouvelle bougie, la fonction iClose(1) renvoie-t-elle des informations périmées et non actualisées ou une erreur ? Il s'agit d'un bug.
Si c'est un bug, alors tout le monde, ou presque, devrait l'avoir. Si c'est seulement vous, alors c'est un problème dans le code.
J'ai mon EA sur M15 avec détermination d'une nouvelle barre H1.
Et voici ce que dit le commentaire.
Il n'y a pas de divergence.