Dans ce cas, CopyRates sans ambiguïté à partir de la première mesure 10s. Et pas à chaque tic, mais suffisamment à l'apparition d'une nouvelle barre.
Comment savoir si une nouvelle barre est apparue sans CopyRates ? Je veux dire, tu dois d'abord assister à l'événement du nouveau bar. Sans CopyRates, est-ce possible ? Je suis un peu confus).
C'est ce que cela signifie, je n'ai jamais traité ce sujet sur MT5. Veuillez comprendre)).
Oh, Vladimir. Bien que je l'aie laissé échapper, mais malheureusement, je n'ai pas fait de réservation. Si nous n'avons besoin que du prix ou de l'heure d'ouverture, par exemple, il n'est pas nécessaire d'utiliser CopyRates(), dans ce cas CopyOpen ou iOpen est bien suffisant... respectivement CopyTime ou iTime. Il est choisi en fonction de vos préférences religieuses.
Et j'ajouterai mon avertissement : en termes de coûts de performance, il n'y a pas de différence appréciable. Par conséquent, il ne reste que les préjugés religieux.
Le fxsaber vérifiait le coût de CopyRates() - c'est plus cher que d'obtenir la propriété requise séparément. Cela ne s'applique pas à la situation où nous devons obtenir tous les prix en même temps.
Реter Konow: Et comment puis-je savoir qu'une nouvelle barre est apparue sans CopyRates ? Je veux dire, tu dois d'abord attraper le nouvel événement du bar. Est-il possible de le faire sans CopyRates ? Je suis un peu confus).
Sans faire attention à rien, surveillez l'apparition d'une nouvelle barre et appelez CopyRates
Il y a beaucoup de fonctions et de manières différentes de détecter une nouvelle barre sur le site.
Comment savoir si une nouvelle barre est apparue sans CopyRates ? Je veux dire, tu dois d'abord assister à l'événement du nouveau bar. Sans CopyRates, est-ce possible ? Je suis un peu confus).
C'est ce que cela signifie, je n'ai jamais traité ce sujet sur MT5. Veuillez comprendre.))
Le moyen le plus simple est de comparer l'heure d'ouverture de la barre actuelle. S'il n'est pas égal à celui mémorisé précédemment, prenez une nouvelle mesure, faites ce qui doit être fait sur la nouvelle mesure et mémorisez ce temps pour le prochain contrôle.
Sans faire attention à rien, nous suivons l'apparition d'une nouvelle barre et appelons CopyRates
Il existe un grand nombre de fonctions et de manières différentes de définir une nouvelle barre sur le site.
L'apparition d'une nouvelle barre dans MT5 n'est pas liée au début de la minute. Il n'est pas du tout chronométré. Il y a un hic. Avec quelle précision peut-on comprendre l'apparition d'une nouvelle barre en se basant uniquement sur les ticks ? Vous devez toujours vous référer à la série chronologique. Cela ne serait guère possible autrement. Bien que... Je ne suis pas sûr à 100%.
fxsaber a fait une vérification du coût de CopyRates() - c'est plus cher que d'obtenir la propriété requise séparément. Cela ne s'applique pas à la situation où vous devez obtenir tous les prix en même temps.
Avec tout le respect que je vous dois, fxsaber, je préfère ne pas prêter attention à ce genre de différence. C'est pourquoi j'ai dit qu'" il n'y a pas de différencenotable", et je ne suis pas intéressé par la différence en 1e6 itérations. Ce n'est pas comme si nous écrivions un jeu de tir où vous pouvez tirer 1e6 balles à la fois.
Le moyen le plus simple est de comparer l'heure d'ouverture de la barre actuelle. S'il n'est pas égal à celui mémorisé précédemment, prenez une nouvelle mesure, faites ce qui doit être fait sur la nouvelle mesure et mémorisez ce temps pour le prochain contrôle.
Cela signifie donc qu'il faut appeler CopyRates à chaque tick ? Sinon, comment savoir que l'heure d'ouverture de la barre actuelle a changé ?
Igor, tu dois aller en première année. Ils y enseignent les lettres et après l'avoir appris, vous comprendrez la différence entre CopyRates et CopyBuffer.
Voici une meilleure suggestion pour résoudre ce problème SANS CopyRates
J'ai cité mon exemple pour montrer qu'il n'est pas toujours pratique (et rarement nécessaire) d'obtenir un tableau de valeurs OHLC consécutives. Dans les tâches pratiques, nous avons généralement besoin d'obtenir une sélection de valeurs OHLC de différentes barres (les indicateurs ne sont pas inclus).
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
//+------------------------------------------------------------------+//| Возвращает время указанного бара |//+------------------------------------------------------------------+datetime Time(conststring symbol_name,constENUM_TIMEFRAMES timeframe,constint index)
{
datetime array[];
return(CopyTime(symbol_name,timeframe,index,1,array)==1 ? array[0] : 0);
}
//+------------------------------------------------------------------+
Et en un mot, c'est comme ça :
staticdatetime last_time=0;
datetime time_current=Time(Symbol(),PERIOD_CURRENT,0);
if(time_current==0)
return;
if(time_current!=last_time)
{
// Новый бар или первый запуск (для контроля первого запуска можно сделать флаг - чтобы не обрабатывать его как новый бар)// делаем что нужно на новом баре
last_time=time_current;
}
Je l'ai juste écrit sur ma main - pour montrer l'idée, pas la précision de l'écriture.
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.
Dans ce cas, CopyRates sans ambiguïté à partir de la première mesure 10s. Et pas à chaque tic, mais suffisamment à l'apparition d'une nouvelle barre.
Comment savoir si une nouvelle barre est apparue sans CopyRates ? Je veux dire, tu dois d'abord assister à l'événement du nouveau bar. Sans CopyRates, est-ce possible ? Je suis un peu confus).
C'est ce que cela signifie, je n'ai jamais traité ce sujet sur MT5. Veuillez comprendre)).
Oh, Vladimir. Bien que je l'aie laissé échapper, mais malheureusement, je n'ai pas fait de réservation. Si nous n'avons besoin que du prix ou de l'heure d'ouverture, par exemple, il n'est pas nécessaire d'utiliser CopyRates(), dans ce cas CopyOpen ou iOpen est bien suffisant... respectivement CopyTime ou iTime. Il est choisi en fonction de vos préférences religieuses.
Et j'ajouterai mon avertissement : en termes de coûts de performance, il n'y a pas de différence appréciable. Par conséquent, il ne reste que les préjugés religieux.Le fxsaber vérifiait le coût de CopyRates() - c'est plus cher que d'obtenir la propriété requise séparément. Cela ne s'applique pas à la situation où nous devons obtenir tous les prix en même temps.
Et comment puis-je savoir qu'une nouvelle barre est apparue sans CopyRates ? Je veux dire, tu dois d'abord attraper le nouvel événement du bar. Est-il possible de le faire sans CopyRates ? Je suis un peu confus).
Sans faire attention à rien, surveillez l'apparition d'une nouvelle barre et appelez CopyRates
Il y a beaucoup de fonctions et de manières différentes de détecter une nouvelle barre sur le site.
Comment savoir si une nouvelle barre est apparue sans CopyRates ? Je veux dire, tu dois d'abord assister à l'événement du nouveau bar. Sans CopyRates, est-ce possible ? Je suis un peu confus).
C'est ce que cela signifie, je n'ai jamais traité ce sujet sur MT5. Veuillez comprendre.))
Le moyen le plus simple est de comparer l'heure d'ouverture de la barre actuelle. S'il n'est pas égal à celui mémorisé précédemment, prenez une nouvelle mesure, faites ce qui doit être fait sur la nouvelle mesure et mémorisez ce temps pour le prochain contrôle.
Sans faire attention à rien, nous suivons l'apparition d'une nouvelle barre et appelons CopyRates
Il existe un grand nombre de fonctions et de manières différentes de définir une nouvelle barre sur le site.
fxsaber a fait une vérification du coût de CopyRates() - c'est plus cher que d'obtenir la propriété requise séparément. Cela ne s'applique pas à la situation où vous devez obtenir tous les prix en même temps.
Le moyen le plus simple est de comparer l'heure d'ouverture de la barre actuelle. S'il n'est pas égal à celui mémorisé précédemment, prenez une nouvelle mesure, faites ce qui doit être fait sur la nouvelle mesure et mémorisez ce temps pour le prochain contrôle.
Donc, vous appelez les CopyRates à chaque tic ? Sinon, comment sauriez-vous que l'heure d'ouverture du bar actuel a changé ?
vous pouvez soit classer CNewbar, soit rechercher NewBar dans le forum.
SZZ : tout l'article !https://www.mql5.com/ru/articles/159
Igor, tu dois aller en première année. Ils y enseignent les lettres et après l'avoir appris, vous comprendrez la différence entre CopyRates et CopyBuffer.
Voici une meilleure suggestion pour résoudre ce problème SANS CopyRates
OK, les habituels...oops, oops...et pas une seule ligne de code ))))
J'ai cité mon exemple pour montrer qu'il n'est pas toujours pratique (et rarement nécessaire) d'obtenir un tableau de valeurs OHLC consécutives. Dans les tâches pratiques, nous avons généralement besoin d'obtenir une sélection de valeurs OHLC de différentes barres (les indicateurs ne sont pas inclus).
D'accord, prenez soin de vous !
Donc, à chaque tic, appeler CopyRates ? Sinon, comment savoir que l'heure d'ouverture de la barre actuelle a changé ?
Oui, à chaque tic, nous vérifions l'heure :
Et en un mot, c'est comme ça :
Je l'ai juste écrit sur ma main - pour montrer l'idée, pas la précision de l'écriture.
Donc, à chaque tic, nous devrions appeler CopyRates ? Sinon, comment savoir que l'heure d'ouverture de la barre actuelle a changé ?
si(prevTime!=iTime(...))
{
// l'heure d'ouverture de la barre actuelle a changé
}
prevTime=iTime(...) ;