[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 405

 
hoz:


D'après ce que je comprends, ce n'est pas ce dont nous avons besoin. Et nous avons besoin des derniers prix des serveurs Ask et Bid, et non des prix des terminaux locaux. N'est-ce pas ?

C'est pourquoi j'ai lancé la discussion ici, pour comprendre une fois pour toutes comment l'organiser de manière plus logique et plus correcte. Car en théorie, c'est correct, mais en pratique...

Le serveur est là, et on nous donne un terminal pour contacter le serveur. S'il y a une connexion, alors le dernier prix dans le terminal correspondra au dernier prix sur le serveur. S'il n'y a pas de connexion, les prix pratiqués n'ont aucune importance.

 
Après avoir exécuté la première ou la deuxième instruction if, je dois interrompre les instructions if suivantes et transférer le contrôle à un bloc contenant d'autres critères de négociation. Les boucles ont une interruption avec l'instruction continue, mais j'ai besoin d'interrompre l'exécution d'une série d'instructions. Comment dois-je m'y prendre ? Pouvez-vous me donner un indice ?
 
As-tu essayé de faire une pause ? As-tu essayé de faire une pause ?
 
Bon après-midi. Je prépare actuellement un diplôme sur les robots de trading. Je suis un économiste, pas un programmeur, mais j'ai eu une idée, et je pense qu'elle a traversé l'esprit de beaucoup de gens. Mais j'ai eu une idée, bien que je pense que beaucoup de gens y ont pensé, de connecter le sar parabolique et (puisque le sar n'est pas très bon à plat) les bandes de bollinger. En gros, avec les paramètres standard, et acheter, lorsque la bougie touche le bas de la BB (et que le parabolique se déplace en dessous), et que la suivante clôture au-dessus de la précédente (et que le parabolique s'éloigne du prix à cause de l'accel et montre la tendance). Même chose au sommet lors de la vente. Il serait intéressant d'utiliser un trailing stop dont les paramètres pourraient être définis manuellement... Est-ce que quelqu'un a déjà une idée similaire en mql ? ou si quelqu'un peut m'aider, parce que j'aimerais vraiment la tester...merci d'avance
 
Integer:

1. Simple. La fonction est déclarée comme double, elle renverra donc le double lorsqu'elle sera appelée, indépendamment du fait que return ait été appelé dans la fonction. Si vous ajoutez autre chose... ...mais ce n'est pas encore le cas.

2. Si cela ne fait aucune différence que vous appuyiez sur 3 ou 30 touches, vous n'avez pas besoin de ces offres et demandes. Si l'Expert Advisor ne fait pas de longs calculs, ce n'est pas grave, il est plus pratique d'utiliser Bid et Ask. S'il effectue de longs calculs, vous pouvez utiliser RefreshRates(). Tout peut être fait de plusieurs manières.

1. Oui, je suis juste surmené alors j'ai dû écrire une chose stupide.

2. Long est un terme relatif. Suggérez-vous que nous mesurions la vitesse du calcul moyen ?

Entier:

Le serveur est là, quelque part, et on nous donne un terminal pour le contacter. S'il y a une connexion, alors le dernier prix dans le terminal correspondra au dernier prix sur le serveur. S'il n'y a pas de connexion, le prix qui figure sur le serveur n'a aucune importance.

Si nous supposons, comme vous l'avez écrit, que la dernière valeur de la variable de marché (dans notre cas, le prix ) correspond à la dernière valeur du serveur, cela signifie que le terminal met à jour les variables d'environnement du marché s'il est connecté au serveur. Mais ce n'est pas le cas, car cette fonction existe et cela signifie que les prix ne sont pas rafraîchis tout le temps, n'est-ce pas ?

Je ne discute pas, je demande, j'argumente mon point de vue. Veuillez noter que !

 
hoz:

Si nous supposons, comme vous l'avez écrit, que le terminal dispose de la dernière valeur de la variable de données de marché, dans notre cas le prix, correspondant à la dernière valeur du serveur, cela signifie que le terminal met lui-même à jour les variables d'environnement de marché s'il existe une connexion avec le serveur, ce qui signifie que la fonction RefreshRates() n'est pas nécessaire. Mais ce n'est pas le cas, car cette fonction existe et cela signifie que les prix ne sont pas rafraîchis tout le temps, n'est-ce pas ?

Je ne discute pas, je demande, j'argumente mon point de vue. Veuillez noter que !


Si de nouveaux ticks arrivent pendant les calculs dans l'EA (lorsque la fonction start() est exécutée), l'EA ne les connaîtra pas (ticks). RefreshRates() permet d'utiliser les derniers prix mis à jour, mais cette fonction n'accède pas au serveur. Il actualise l'environnement du marché connu par le terminal. Aucune des fonctions, à l'exception de la négociation, n'accède au serveur.
 
Vinin:

Si de nouveaux ticks arrivent pendant les calculs dans l'EA (lorsque la fonction start() est exécutée), l'EA ne les connaîtra pas (ticks). RefreshRates() permet d'utiliser les derniers prix mis à jour, mais cette fonction n'accède pas au serveur. Il actualise l'environnement du marché connu par le terminal. Aucune des fonctions, à l'exception des fonctions commerciales, n'accède au serveur.

Ainsi, si la demande est locale et non adressée au serveur, cette fonction devrait fonctionner instantanément ! Comme indiqué ci-dessus, la fonction RefreshRates() peut ne pas avoir le temps de mettre à jour les données de l'environnement de marché...
 
hoz:

Ainsi, si la demande est locale et non adressée au serveur, cette fonction devrait fonctionner instantanément ! Et il a été dit plus haut que la fonction RefreshRates() peut ne pas avoir le temps de rafraîchir les données de l'environnement de marché...

Cela fonctionne. Et il le rafraîchit s'il y a quelque chose à rafraîchir. Mais s'il n'y a pas de nouveau tic, il n'y a rien à mettre à jour.
 
Vinin:

Et ça va marcher. Et il le rafraîchit s'il y a quelque chose à rafraîchir. Mais s'il n'y a pas de nouveau tic, il n'y a rien à mettre à jour.


Donc, s'il n'y a pas de nouveau tick, le prix ne changera pas... et bien sûr, les prix précédents seront toujours valables. Il n'est donc pas nécessaire de compliquer les choses !

Et Vadim a écrit en haut qu'il était nécessaire de vérifier ce point. Mais il n'y avait aucune logique dans ses paroles, et aucune argumentation non plus. C'est étrange... J'insère donc RefreshRates() partout et à ce moment-là, les dernières données connues du terminal deviennent utilisables à la place des précédentes et tout se passe comme prévu. FourniRefreshRates() retourné TRU. Si c'est Faux, cela signifie que les données n'ont pas changé et que cela fonctionne avec les prix précédents... Est-ce que je raisonne correctement ?

Il suffit d'appelerRefreshRates() et cela fonctionnera avec les données réelles...

 
Le Bid et le Ask contiennent les valeurs au moment où la fonction Star() est lancée. La fonction MarketInfo() donne les valeurs réelles (les plus récentes). La fonction RefreshRates() met à jour les variables Bid et Ask.
hoz:

1. Ouais, je suis juste surmené, alors j'ai écrit un truc stupide...

2. Long est un terme relatif. Suggérez-vous que nous mesurions la vitesse du calcul moyen ?

3. si nous supposons, comme vous l'avez écrit, que le terminal correspond à la dernière valeur de la variable de données de marché, dans notre cas, le prix, cela signifie que le terminal met à jour les variables d'environnement de marché de lui-même, s'il existe une connexion avec le serveur,

4. il s'ensuit que la fonction RefreshRates() est inutile. Mais ce n'est pas le cas, car la fonction est présente, ce qui signifie que les prix ne sont pas toujours rafraîchis, n'est-ce pas ?

Je ne discute pas, je demande, j'argumente mon point de vue. Veuillez noter que !


2. Où avez-vous vu cela et comment êtes-vous arrivé à cette conclusion surprenante ?

3. Oui. Vous pouvez imaginer, il suffit de regarder la fenêtre d'aperçu du marché, comment les chiffres rebondissent sans cesse.

4. Les variables Bid et Ask sont assignées (par le terminal) avec les valeurs qu'elles avaient lorsque la fonction Start a été exécutée, peu importe la durée d'exécution de la fonction, les valeurs de Bid et Ask seront les mêmes. C'est pourquoi nous avons besoin de RefreshRates() ou nous devrions utiliser MarketInfo().

Raison: