La situation est la suivante : la variable X stocke l'indice de la barre dans l'historique, nous savons que lorsqu'une nouvelle barre apparaît, il y a un décalage, et donc X pointe déjà vers une barre différente. Comment le réparer ? L'idée : à chaque nouvelle barre, nous augmentons le compteur (count++) et l'ajoutons à X. Ainsi, X pointera toujours vers la même barre, quel que soit le décalage. Mais il y a un problème - lorsque l'EA est initialisé, la première barre actuelle ne devrait pas être prise en compte. Je pense que cela peut être facilement résolu si le compte est initialement juste égal à -1. C'est-à-dire que sur la barre actuelle après le compte d'incrémentation sera "0", et sur la nouvelle barre suivante (lorsque le premier décalage de 1 barre s'est produit après l'initialisation) il sera "1". Qu'en pensez-vous ? Peut-être que je ne pense pas du tout au bon endroit ?
Nerd Trader #: La situation est la suivante : la variable X stocke l'indice de la barre dans l'historique, nous savons que lorsqu'une nouvelle barre apparaît, il y a un décalage, et donc X pointe déjà vers une barre différente. Comment le réparer ? L'idée : à chaque nouvelle barre, nous augmentons le compteur (count++) et l'ajoutons à X. Ainsi, X pointera toujours vers la même barre, quel que soit le décalage. Mais il y a un problème - lorsque l'EA est initialisé, la première barre actuelle ne devrait pas être prise en compte. Je pense que cela peut être facilement résolu si le compte est initialement juste égal à -1. C'est-à-dire que sur la barre actuelle après le compte d'incrémentation sera "0", et sur la nouvelle barre suivante (lorsque le premier décalage de 1 barre s'est produit après l'initialisation) il sera "1". Qu'en pensez-vous ? Peut-être que je ne pense pas du tout au bon endroit ?
Si c'est un indicateur, c'est suffisant
boolArraySetAsSeries(
constvoid& array[], // массив по ссылкеbool flag // true означает обратный порядок индексации
);
à tous les tableaux et tampons de l'indicateur utilisé.
Nerd Trader #: La situation est la suivante : la variable X stocke l'indice de la barre dans l'historique, nous savons que lorsqu'une nouvelle barre apparaît, il y a un décalage, et donc X pointe déjà vers une barre différente. Comment le réparer ? L'idée : à chaque nouvelle barre, nous augmentons le compteur (count++) et l'ajoutons à X. Ainsi, X pointera toujours vers la même barre, quel que soit le décalage. Mais il y a un problème - lorsque l'EA est initialisé, la première barre actuelle ne devrait pas être prise en compte. Je pense que cela peut être facilement résolu si le compte est initialement juste égal à -1. C'est-à-dire que sur la barre actuelle après le compte d'incrémentation sera "0", et sur la nouvelle barre suivante (lorsque le premier décalage de 1 barre s'est produit après l'initialisation) il sera "1". Qu'en pensez-vous ? Peut-être que je ne pense pas du tout au bon endroit ?
datetime x=время нужного бара;
int index=iBarShift(_Symbol,0,x);
Nerd Trader #: La situation est la suivante : la variable X stocke l'indice de la barre dans l'historique, et nous savons que lorsqu'une nouvelle barre apparaît, elle est décalée et donc X pointe déjà vers une autre barre. Comment le réparer ? L'idée : à chaque nouvelle barre, nous augmentons le compteur (count++) et l'ajoutons à X. Ainsi, X pointera toujours vers la même barre, quel que soit le décalage. Mais il y a un problème - lorsque l'EA est initialisé, la première barre actuelle ne devrait pas être prise en compte. Je pense que cela peut être facilement résolu si le compte est initialement juste égal à -1. C'est-à-dire que sur la barre actuelle après le compte d'incrémentation sera "0", et sur la nouvelle barre suivante (lorsque le premier décalage de 1 barre s'est produit après l'initialisation) il sera "1". Qu'en pensez-vous ? Peut-être que je ne pense pas du tout au bon endroit ?
Pas là. Il n'y a rien dans X lors du chargement de l'EA/indicateur s'il est à l'intérieur du terminal, à moins qu'il ne s'agisse d'une intuition ou d'une variable externe ou globale à l'extérieur du terminal, donc quelque chose doit être écrit là d'abord. Ensuite, nous lisons simplement les changements du nombre total de barres (en tenant compte de l'apparition d'une nouvelle barre).
datetime BarTime ;
FlagNewBar=false;
if(BarTime!=iTime(NULL,0,0))
{
BarTime=iTime(NULL,0,0);
FlagNewBar=true;
}
if(FlagNewBar==true)
{
// И когда тру, делаем что нужно делать когда появился новый бар, //на следующем тике флаг нового бара будет ложь, так как БарТайм время все время существования нулевого бара будет равным
}
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.
La situation est la suivante : la variable X stocke l'indice de la barre dans l'historique, nous savons que lorsqu'une nouvelle barre apparaît, il y a un décalage, et donc X pointe déjà vers une barre différente. Comment le réparer ? L'idée : à chaque nouvelle barre, nous augmentons le compteur (count++) et l'ajoutons à X. Ainsi, X pointera toujours vers la même barre, quel que soit le décalage. Mais il y a un problème - lorsque l'EA est initialisé, la première barre actuelle ne devrait pas être prise en compte. Je pense que cela peut être facilement résolu si le compte est initialement juste égal à -1. C'est-à-dire que sur la barre actuelle après le compte d'incrémentation sera "0", et sur la nouvelle barre suivante (lorsque le premier décalage de 1 barre s'est produit après l'initialisation) il sera "1". Qu'en pensez-vous ? Peut-être que je ne pense pas du tout au bon endroit ?
Si c'est un indicateur, c'est suffisant
à tous les tableaux et tampons de l'indicateur utilisé.
Alors la barre de zéro deviendra rates_total-1
La situation est la suivante : la variable X stocke l'indice de la barre dans l'historique, nous savons que lorsqu'une nouvelle barre apparaît, il y a un décalage, et donc X pointe déjà vers une barre différente. Comment le réparer ? L'idée : à chaque nouvelle barre, nous augmentons le compteur (count++) et l'ajoutons à X. Ainsi, X pointera toujours vers la même barre, quel que soit le décalage. Mais il y a un problème - lorsque l'EA est initialisé, la première barre actuelle ne devrait pas être prise en compte. Je pense que cela peut être facilement résolu si le compte est initialement juste égal à -1. C'est-à-dire que sur la barre actuelle après le compte d'incrémentation sera "0", et sur la nouvelle barre suivante (lorsque le premier décalage de 1 barre s'est produit après l'initialisation) il sera "1". Qu'en pensez-vous ? Peut-être que je ne pense pas du tout au bon endroit ?
Pourquoi se donner tant de mal ?
C'est plus facile pour moi)
Mais le processeur est plus lourd...
Mais le processeur est plus lourd...
La situation est la suivante : la variable X stocke l'indice de la barre dans l'historique, et nous savons que lorsqu'une nouvelle barre apparaît, elle est décalée et donc X pointe déjà vers une autre barre. Comment le réparer ? L'idée : à chaque nouvelle barre, nous augmentons le compteur (count++) et l'ajoutons à X. Ainsi, X pointera toujours vers la même barre, quel que soit le décalage. Mais il y a un problème - lorsque l'EA est initialisé, la première barre actuelle ne devrait pas être prise en compte. Je pense que cela peut être facilement résolu si le compte est initialement juste égal à -1. C'est-à-dire que sur la barre actuelle après le compte d'incrémentation sera "0", et sur la nouvelle barre suivante (lorsque le premier décalage de 1 barre s'est produit après l'initialisation) il sera "1". Qu'en pensez-vous ? Peut-être que je ne pense pas du tout au bon endroit ?
Pas là. Il n'y a rien dans X lors du chargement de l'EA/indicateur s'il est à l'intérieur du terminal, à moins qu'il ne s'agisse d'une intuition ou d'une variable externe ou globale à l'extérieur du terminal, donc quelque chose doit être écrit là d'abord. Ensuite, nous lisons simplement les changements du nombre total de barres (en tenant compte de l'apparition d'une nouvelle barre).
datetime BarTime ;
Salutations. Pouvez-vous me donner un indice ? Comment dans mt5 à l'initialisation ou au tick définir le test ?
Jusqu'à présent, je n'ai trouvé que OnTester(), qui est appelé juste avant OnDeinit().
@Valeriy Yastremskiy L'index est placé en X toujours dans OnInit(). Mon code ressemble à ceci :
La condition avec FlagNewBar me semble redondante.