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

 
Aleksandr Slavskii #:

Comment connaître l'heure de clôture d'une position dans le testeur ?

J'ouvre les positions 1, 2, 3

Fermeture des positions 3, 2, 1

Ni dans le rapport du testeur, ni dans le testeur lui-même, je n'ai trouvé comment trouver l'heure de clôture d'une position particulière.

Il en va de même pour le rapport rédigé par le testeur, il n'y a aucun moyen de connaître l'heure de clôture d'une position.


J'ai besoin de connaître l'heure d'ouverture et de fermeture d'une position. Comment faire ?

fxsaber dans une de ses bibliothèques écrit : "Merci aux développeurs d'avoir créé les caches de Tester et d'avoir aidé à ouvrir ses formats.

Je n'ai pu trouver que le format des fichiers opt.

Si quelqu'un sait où, sur le forum, ils divulguent les fichiers tst - format de passe unique, merci de me donner un lien, je pourrai peut-être y trouver le position_ID.

fxsaber si vous lisez, merci de répondre.

Recherche d'une transaction de sortie de marché

DEAL_ENTRY_IN

Entrée sur le marché

DEAL_ENTRY_OUT

Sortie du marché

DEAL_ENTRY_INOUT

inversion

DEAL_ENTRY_OUT_BY

Clôture avec une contre-position

et rechercher l'ID de la position sur le ticket de cette transaction

DEAL_TICKET

Ticket de la transaction. Numéro unique attribué à chaque transaction.

long

DEAL_ORDER

Ordre sur la base duquel la transaction a été exécutée.

long

DEAL_TIME

Heure d'exécution de la transaction

datetime

DEAL_TIME_MSC

Heure de la transaction en millisecondes depuis le 01.01.1970

long

DEAL_TYPE

Type d'opération

ENUM_DEAL_TYPE

DEAL_ENTRY

Direction de la transaction - entrée sur le marché, sortie du marché ou renversement de tendance

ENUM_DEAL_ENTRY

DEAL_MAGIC

Nombre magique pour la transaction (voirORDER_MAGIC)

long

DEAL_REASON

Raison ou source de la transaction

ENUM_DEAL_REASON

DEAL_POSITION_ID

Identifiant de la position à l'ouverture, à la modification ou à la clôture de laquelle cette transaction a participé. Chaque position possède un identifiant unique, qui est attribué à toutes les transactions exécutées sur l'instrument pendant la durée de vie de la position.

long


En règle générale, l'heure de sortie du marché d'une transaction correspond à l'heure de clôture de la position.

 
Alexey Viktorov #:

Cherchez ...

Je vous remercie. Mais ce n'est pas du tout ce que je cherche.

Apparemment, je n'ai pas réussi à formuler la question correctement :(

Je cherche à savoir comment extraire des informations sur les positions d'un fichier ReportTester.xlsx ou .tst .

Ce que vous suggérez n'est pas dans le rapport.

 
MrBrooklin #:

   //лот = процент риска от баланса / (размер стоплосса * Размер минимального изменения цены в валюте депозита / Минимальный шаг изменения цены в пунктах)
   eLot=AccountInfoDouble(ACCOUNT_BALANCE)*eRisk/100/(MathAbs(ePrice-eStopLoss)*SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_SIZE));
 
Aleksei Stepanenko #:

Merci, Alexey, pour le code ! Demain, j'examinerai votre formule plus en détail.

Cordialement, Vladimir.

 
Il n'y a pas de quoi.)
Ici, le prix et la perte sont des prix. Si votre perte est en pips, utilisez le point.
 
Aleksei Stepanenko #:
Il n'y a pas de quoi)
Ici, le prix et la perte sont des prix. Si votre perte est en pips, utilisez le point.

Alexey, si je convertis le stop loss en points, j'obtiens un non-sens. Le fait est que dans le script, j'ai utilisé une formule trouvée sur Internet. Je ne sais plus où, c'était il y a longtemps. J'ai créé un tableau dans Excel à l'aide de cette formule et je l'ai utilisée lorsque c'était nécessaire. Voici à quoi cela ressemble :

C'est pourquoi j'ai fait appel à la communauté pour clarifier la véracité de cette formule. La formule elle-même dans le tableau Exel ressemble à ceci :

лот = (баланс * риск (в %) * 0,01) / (стоп-лосс (в пунктах) * курс валюты (в моем случае в руб.))

Cordialement, Vladimir.

 

Vladimir, tout fonctionne

input int eLoss=2000;
input double eRisk=5.0;

double eLot=AccountInfoDouble(ACCOUNT_BALANCE)*eRisk/100/(eLoss*SymbolInfoDouble(eSymbol,SYMBOL_POINT)*SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_VALUE)/SymbolInfoDouble(eSymbol,SYMBOL_TRADE_TICK_SIZE));
 
Aleksei Stepanenko #:

Vladimir, tout fonctionne

Alexey, désolé, mais nous ne nous sommes pas compris. Le malentendu vient plutôt de moi. Je pensais que vous recommandiez d'appliquer un point dans ma fonction. ))

Cordialement, Vladimir.

 
Ah, j'ai compris)
 
Aleksei Stepanenko #:

Vladimir, tout fonctionne

Beaucoup de divisions sans vérifier le diviseur à zéro. Explosif.