Questions des débutants MQL5 MT5 MetaTrader 5 - page 563
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Oui, je demande à propos de MQL 5 ? Oui, il faut accéder aux données du symbole actuel. Les données sont nécessaires dans le code EA. J'ai donc besoin, par exemple, de connaître le prix de clôture de la barre qui précède la barre actuelle.
Consultez l'exemple pour CopyTime
Oui, je demande à propos de MQL5 ? Oui, il faut accéder aux données du symbole actuel. Les données dont nous avons besoin dans le code de l'Expert Advisor. Ainsi, par exemple, j'ai besoin de connaître le prix de clôture de la barre qui précède la barre actuelle.
Vous devriez lire un peu la documentation.
Voici un exemple d'obtention du prix de clôture et des indicateurs tampons
...
Voici un exemple d'obtention du prix de clôture ainsi que des tampons de l'indicateur.
Bonjour à tous !
J'obtiens des données sur l'historique des transactions dans le testeur en utilisant l'événement OnTrade.
Et voici ce que j'obtiens dans les journaux.
0 22:58:16.487 Core 1 2016.04.01 00:00 Nombre de barres dans l'historique du terminal pour le symbole-période GBPUSD en ce moment = 7729
JR 0 22:58:16.487 Core 1 2016.04.01 03:00:00 Tentative de transaction 0 avec le lot 0.01
EL 0 22:58:16.487 Core 1 2016.04.01 03:00:00 market buy 0.01 GBPUSD sl : 1.43033 tp : 1.44034 (1.43646 / 1.43654 / 1.43646)
GO 0 22:58:16.487 Core 1 2016.04.01 03:00:00 deal #2 buy 0.01 GBPUSD at 1.43654 done (based on order #2)
GE 0 22:58:16.487 Core 1 2016.04.01 03:00:00 transaction effectuée [#2 acheter 0.01 GBPUSD à 1.43654].
NK 0 22:58:16.487 Core 1 2016.04.01 03:00:00 ordre exécuté acheter 0.01 à 1.43654 [#2 acheter 0.01 GBPUSD à 1.43654].
HI 0 22:58:16.487 Core 1 2016.04.01 03:00:00 ticket=1
HM 0 22:58:16.487 Core 1 2016.04.01 03:00:00 prix=0.0
HH 0 22:58:16.487 Core 1 2016.04.01 03:00:00 time=2016.04.01 00:00
CR 0 22:58:16.487 Core 1 2016.04.01 03:00:00 ticket=2
ID 0 22:58:16.487 Core 1 2016.04.01 03:00:00 price=1.43654
OP 0 22:58:16.487 Core 1 2016.04.01 03:00:00 time=2016.04.01 03:00
D'où vient le premier commerce à prix nul ? Je ne le fais pas :-).
Je ne le fais pas :-) Expliquez-moi, s'il vous plaît.
Z.P. Je pense que je l'ai. La première affaire a un bénéfice de 10K. Je ne sais pas quoi en faire mais c'est quand même étrange. Pourquoi ?
Et voici une autre question. La transaction (achat à 1.43654) n'a pas encore été ouverte. Comment est-il apparu dans l'histoire ?
J'ai besoin d'obtenir des données UNIQUEMENT sur les transactions fermées dans le tableau comme dans MQL4. Comment faire ?
P.S. Filtrer par DEAL_ENTRY_OUT ?
Avez-vous essayé de réinstaller le terminal ?
Mauvais exemple. La variable stockant le handle de l'indicateur dans MQL5 doit être déclarée dans le "header" - dans la zone des variables globales du programme, obtenir le handle dans OnInit(). Ce n'est qu'alors que vous pourrez vous référer à la poignée de l'indicateur pour obtenir des données de n'importe où dans le programme.
Je ne suis pas tout à fait d'accord avec vous pour obtenir un handle, car la fonction OnInit() est exécutée une fois et il n'y a pas de garantie à 100% que l'indicateur sera créé dès la première fois. Vous avez peut-être raison au sujet de la déclaration d'une variable, mais je veux savoir si la documentation suivante dit quelque chose de pire que la variante avec une variable statique
Les variables locales déclarées avec le mot clé static conservent leurs valeurs tant que la fonction existe. À chaque appel ultérieur d'une fonction, ces variables locales contiennent les valeurs qu'elles avaient lors de l'appel précédent.
Filtrer par DEAL_ENTRY_OUT
Je ne suis pas tout à fait d'accord avec vous pour obtenir un handle, car la fonction OnInit() est exécutée une fois et il n'y a pas de garantie à 100% que l'indicateur sera créé dès la première fois. Vous avez peut-être raison en ce qui concerne la déclaration d'une variable, mais je veux savoir à quel point l'option d'une variable statique est mauvaise dans la documentation
...
À cette fin, OnInit() vérifie si le manche de l'indicateur est créé. Si le handle de l'indicateur n'a pas été créé, OnOnit() doit retournerINIT_FAILED. C'est-à-dire que le handle de l'indicateur n'est créé qu'une seule fois et uniquement dans OnInit(). Ce n'est pas "4" - ce n'est pas le désordre et l'errance et la déclaration de poignées dans tous les coins du programme.