Questions des débutants MQL5 MT5 MetaTrader 5 - page 771

 
Aybulat:
Est-il possible de supprimer tous les ordres et de fermer toutes les positions sur le marché des paris à l'aide des touches de raccourci ? Ou peut-être existe-t-il un conseiller expert pour cela ?
Pour ce faire, vous devez trouver un panneau de négociation qui prend en charge cette fonctionnalité, ou écrire votre propre script ou conseiller expert pour supprimer tous les ordres lorsque vous appuyez sur une certaine combinaison de touches.
 

J'ai une telle situation - je dois obtenir la valeur de l'indicateur à l'ouverture de la barre - l'EA effectue des transactions lorsqu'un nouveau tick apparaît, mais le problème est que l'indicateur peut avoir le temps de changer sa valeur.

Par conséquent, je veux capturer le moment entre la fin de la période de temps et l'apparition d'un nouveau tick - comment mettre en œuvre cela de la manière la moins consommatrice de ressources?

J'ai entendu dire qu'il est possible d'utiliser un événement dans un verre - ce sont des tics plus fréquents, mais comment faire ?

 
Aleksey Vyazmikin:

J'ai une telle situation - je dois obtenir la valeur de l'indicateur à l'ouverture de la barre - l'EA effectue des transactions lorsqu'un nouveau tick apparaît, mais le problème est que l'indicateur peut avoir le temps de changer sa valeur.

Par conséquent, je veux capturer le moment entre la fin de la période de temps et l'apparition d'un nouveau tick - comment mettre en œuvre cela de la manière la moins consommatrice de ressources?

J'ai entendu dire qu'il est possible d'utiliser un événement sur le marché - ce sont des ticks plus fréquents, mais comment faire ?

Ouverture d'une nouvelle barre == apparition d'un nouveau tick. Si aucun tic n'intervient, aucune nouvelle barre n'apparaîtra. Un tick apparaîtra, une nouvelle barre s'ouvrira, et sa durée dépendra de la durée pendant laquelle il n'y a pas eu de tick. S'il n'y a pas eu de tic pendant plus de quelques secondes dans une barre, alors cette barre sera sautée et la barre suivante s'ouvrira dans le temps après celle qui a été manquée.

Dans tous les cas, attrapez l'apparition d'une nouvelle barre et lisez la valeur de l'indicateur.

 
Artyom Trishkin:

L'ouverture d'une nouvelle barre == l'apparition d'un nouveau tick. S'il n'y a pas de coche, aucune nouvelle barre n'apparaîtra. Si un tick arrive, une nouvelle barre s'ouvre, et le temps que cela prend dépend de la durée pendant laquelle il n'y a pas eu de tick. Si un tick n'a pas été présent pendant plus de secondes dans une barre, cette barre sera sautée et la barre suivante s'ouvrira après celle qui a été manquée.

Dans tous les cas, vous captez l'apparition d'une nouvelle barre et lisez la valeur de l'indicateur.


Actuellement, c'est le cas, mais le tick peut être "fort" et faire chuter la valeur de l'indicateur à certains points, c'est pourquoi je pense, comment s'en débarrasser.

 
Aleksey Vyazmikin:

Maintenant, c'est le cas, mais un tic peut être "fort" et faire baisser la valeur de l'indicateur de quelques points, alors je réfléchis à la façon de m'en débarrasser.

Prenez la valeur de l'indicateur à partir de la première barre, et non à partir de la barre actuelle zéro.

 
Artyom Trishkin:

Prenez la valeur de l'indicateur à partir de la première barre, et non à partir de la barre actuelle zéro.


Intelligent - tout le monde peut le faire :)

Cela pourrait être une solution, merci, je vais y réfléchir à nouveau.

 

Est-il possible d'appelerMqlTick et d'obtenir le ask et le bid, dans la classe incluse ?

Si ce n'est pas le cas, qu'est-ce qui peut être appliqué. Je fais une classe commutable où tous les ordres et positions seront traités.

 
forexman77:

Est-il possible d'appelerMqlTick et d'obtenir le ask et le bid, dans la classe incluse ?

Si ce n'est pas le cas, qu'est-ce qui peut être appliqué. Je fais une classe commutable où tous les ordres et positions seront traités.

Quelle est la question ?

 
Alexey Viktorov:

Quel est le problème ?


J'essaie de prescrire :

MqlTradeRequest   mrequest;   
MqlTradeResult    mresult;         
double ask=latest_price.ask;

l'erreur apparaît.

'=' - illegal assignment use    trade.mqh       39      14
 
forexman77:

J'essaie de prescrire :

l'erreur apparaît.

Placé à l'intérieur de la fonction, l'erreur a disparu.
double ask=latest_price.ask;
Raison: