[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 381

 
Sepulca:
Il a acheté beaucoup de cœurs de processeurs. Et maintenant, pour lequel faire la queue)))))))))

Non, cela vaut aussi pour les processeurs à un seul cœur, le multitâche est une fonction du système d'exploitation.
 
Chiripaha:

J'ai vérifié avec l'augmentation de PauseBar et j'ai obtenu juste ces bâtons sur les barres de 1 et 5 minutes. Mais je ne comprends pas comment les contourner correctement. Je comprends ce qu'il faut écrire, probablement (mais pas évidemment) si la valeur

в

la valeur des barres précédentes - quelque chose comme ceci :

Mais lorsque j'essaie de le faire, tout mon indicateur "bouge" - parce que je ne comprends pas la logique et que je n'arrive pas à comprendre où le mettre et dans quelles conditions.


Cette variante fonctionne de manière adéquate dans le testeur.
Je l'ai contourné de la manière suivante :

        if(FirstChanel) 
        { 
          if(Up[i-2]==0 && Down[i-2]==0)
          {
            Up[i-1]   = high;   
            Down[i-1] = low; 
          } 
          else
          {
            Up[i-1]   = Up[i-2];   
            Down[i-1] = Down[i-2]; 
          }  
        }

Et partout où il y avait un [i] décalé d'une mesure en arrière

Et ici :

   Comment("DrawChannel =",DrawChannel,"\n",
           "limit =",limit); // изначально значение было равно 1
  
   limit = Bars-IndicatorCounted()-1; 
   if(limit >= 1)                    limit = Bars-1; // и это условие не выполнялось, поставил >= и начало считать
Dossiers :
 
Bonne journée. Je me suis promené sur le forum mais je n'ai pas trouvé de réponse définitive. Est-il possible pour mon conseiller expert de travailler avec plusieurs paires de devises à la fois ? Je pense que certains sites qui vendent des EA offrent cette possibilité dans leur description, mais je veux m'en assurer. J'ai déjà commencé à travailler avec certaines paires de devises et je ne sais pas comment commencer à négocier.
 
Trendy:

Je me suis promené sur le forum mais je n'ai pas trouvé de réponse définitive. Est-il possible pour un EA de travailler avec plusieurs paires de devises à la fois ?

Je pense que certains sites qui vendent des EA ont cette possibilité dans leurs descriptions, mais je veux être sûr.

c'est possible. le conseiller n'est limité que par le nombre de symboles de votre société de courtage.

Si vous n'avez pas trouvé la réponse, c'est que votre question est stupide par essence.

Si vous le pouvez, envoyez-nous un lien sur la façon de le faire.

https://www.mql5.com/ru/code
 
Integer:


1. Vous devez avoir du mal à le comprendre. Je sais de quoi tu parles.

2. Merci, mais je n'ai pas demandé de conseils. D'autant plus que nous parlons de synchronisation de ce qui n'est plus dans le même fil.

Et quelle est la science de la synchronisation ? Quelle science ? Votre propre science ? Un jour, vous le comprendrez, mais il n'y a rien de compliqué. Les langages de programmation et les algorithmes n'ont pas été inventés et créés par des imbéciles. Mais pour une raison quelconque, ils sont dotés de moyens de synchronisation et de mise en file d'attente.

4. très mal. Si c'est correct....Si il y avait une synchronicité. Mais dans le code que vous avez cité ici un peu plus tôt, il n'y a pas de synchronisation, seulement un accès atomique.

3. Selon la science de la programmation des systèmes. Lis Richter. Il vous éclairera sur les files d'attente.

4. Qu'est-ce que la synchronisation ? C'est un accès atomique à une ressource. Mon code le fournit. La file d'attente est construite par le système. Les modules sont exécutés proportionnellement à leur temps d'exécution. L'ordre d'exécution n'est pas important. Tout est fait par le système. Ce n'est pas une invention d'imbéciles. Essayez de prouver le contraire en utilisant un exemple concret. Analysez le journal. Vous verrez que tout s'exécute correctement, sans vos files d'attente spéciales.

A propos, MQL4, en tant que langage, possède une fonction avec accès atomique. Il n'y en a pas en C++. Vous devez les écrire vous-même, en tant que wrappers de fonctions WinAPI. Il est préférable de l'implémenter dans une classe.

Nombre entier:

Encore une fois, juste au cas où, pour ceux qui sont dans un sous-marin dans un réservoir et qui portent encore un casque. Seul l'accès atomique est montré ici. L'ordre des fonctions ici sera au gré du vent. Ce code ne prévoit pas l'exécution uniforme des fonctions. C'est pourquoi il n'y a aucune garantie qu'une fonction ne restera pas en rayon pendant très longtemps. Il est ridicule de compter sur l'aptitude au service dans la programmation uniquement parce que la fréquence du processeur est élevée, même si la fréquence du processeur est très élevée.

Encore une fois pour ceux qui ne sont pas dans le réservoir. Le système fournit l'ordre d'exécution. Qu'est-ce que l'exécution uniforme ? Comment pouvez-vous assurer l'exécution uniforme de threads dont le temps d'exécution et le nombre sont inconnus ? Pourquoi s'en préoccuper ? Ils y ont déjà pensé pour vous et l'ont fait. Vous pouvez utiliser des objets de synchronisation.
Bien entendu, je n'exclus pas les cas où vous avez besoin d'une file d'attente spéciale pour exécuter les threads. C'est une chose très délicate :-)) Vous devriez éviter ce type de code. Car il y a là un paradoxe. Pourquoi exécuter une tâche dans plusieurs threads pour les regrouper en un seul ? Utilisez l'exécution monofilaire. Vous n'aurez alors pas besoin de synchronisation.

Il existe un autre cas où vous avez besoin d'une file d'attente. Mais ce n'est pas la file d'attente de l'exécution des threads, mais l'ordre de traitement des données reçues des threads (résultats des threads). Il s'agit de la tâche la plus fréquente pour les files d'attente.

Nombre entier:

La synchronisation est également une notion relative. Synchronisation de quoi avec quoi ? Synchronisation pour l'accès atomique ? Et qui va construire la file d'attente ? Junko, peut-être que votre file d'attente de bibliothèque est construite normalement, si le code est pris à partir de MSDN, parce que tout est fait correctement là. Et vous l'avez juste copié sans comprendre ce qu'il fait - comme les lunettes d'un singe. Ou peut-être que tu inventes tout ça comme tu le fais toujours. Parce que vous ne comprenez pas. Vous confondez synchronisation pour fournir un accès atomique et mise en file d'attente.

Et encore, pour ceux qui... :-))

La synchronisation consiste à fournir un accès atomique à une ressource. La file d'attente est construite par le système. L'exécution est garantie, la commande ne l'est pas. Dans MSDN, le code est probablement correct, mais maladroit. Écrivez votre propre classe pour une synchronisation pratique. J'ai écrit mon cours selon le principe du cours d'Andrei Postnikov. Il m'a gentiment montré comment le synchroniser correctement. C'est vrai, ce n'est pas une seule classe. J'ai une classe pour chaque objet de synchronisation, une autre classe de verrouillage pour tout et un espace de nom pour les fonctions d'attente.
En fait, j'ai déjà répondu à tout ce qui précède.

 

Junko, tu es sans espoir. Si vous avez du mal à penser, ne pensez pas, crachez le morceau, ce n'est pas votre truc...

Si quelque chose n'était pas prouvé et non prouvé, vous ne vous disputeriez pas à ce sujet. Le problème est que vous, Vadim, êtes incapable d'avoir une conversation constructive. Au moins, vous confirmez que la synchronisation ne concerne que l'accès atomique et non la mise en file d'attente. Vous, Vadim, vous vous disputez maintenant avec vous-même sans vous en rendre compte.

 
Integer:

Junko, tu es sans espoir. Si vous avez du mal à penser, ne pensez pas, crachez le morceau, ce n'est pas votre truc...

Si quelque chose n'était pas prouvé et non prouvé, vous ne vous disputeriez pas à ce sujet. Le problème est que vous, Vadim, êtes incapable d'avoir une conversation constructive. Au moins, vous confirmez que la synchronisation ne concerne que l'accès atomique et non la mise en file d'attente.

Comment puis-je... Je ne suis pas un programmeur, comme certaines personnes :-))
 
Zhunko:

La synchronisation est la fourniture d'un accès atomique à une ressource.
La file d'attente est construite par le système.


Un grand coup d'applaudissements ! Au sujet du code de la page 378. Même si le terminal règle l'ordre de la file d'attente, il ne peut pas savoir dans quel cas la fonction a été exécutée et dans quel cas elle a été rejetée.
 
Aussi, à propos de la régulation par le système. Si plus d'un flux est créé, oui, le système va réguler. Mais si quelqu'un est du côté de ces courants, vous devez penser à tout vous-même, il n'y aura pas de miracle du système.
 
Integer:

Un grand coup d'applaudissements ! A propos du code de la page 378. Même si le terminal enregistre l'ordre de la file d'attente, il ne peut pas savoir dans quel cas la fonction a été exécutée et dans quel cas elle a été rejetée.
Et alors ? Alors pourquoi a-t-il besoin de savoir ? Un accès atomique est prévu. C'est tout ce dont il a besoin. Occupez-vous du reste vous-même. De quelle tâche parlez-vous ? C'est tout à fait abstrait.