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

 

J'ai rencontré un moment inexpliqué. Le compte est réel. Le robot place un ordre en attente et suit ensuite le cours. Une fois que le prix a "attrapé" l'ordre en attente, il ouvre une position de VENTE avec un stop loss et un take profit spécifiés. Jusqu'à présent, il n'y a aucun problème. Ensuite, le prix évolue dans la direction que je souhaite et, selon mon idée, il devrait fonctionner sur le take profit, qui est de 50 points. Mais ce n'est pas le cas. Malgré le fait que le prix actuel est tombé en dessous du niveau du prix auquel la position a été ouverte plus la taille de l'écart, c'est-à-dire 50 + 14 pips, la position a été clôturée avec la taille de 36 pips du prix d'ouverture. Et ainsi de suite de temps en temps, d'une transaction à l'autre. Je lance le robot sur le testeur et je constate que toutes les positions fermées ont une taille de 50 pips, comme cela devrait être le cas.

Y a-t-il vraiment une déviation constante, et avec une taille approximativement égale à la taille de l'écart de 14 pips ? Il y a quelque chose d'étrange, vous ne trouvez pas ? Voici le journal d'un des trades d'hier.

KE      0       05:36:02.089    Trades  '1000008949': modify #1021600709 sell stop 0.04 EURUSDrfd -> price: 1.07870, sl: 1.07970, tp: 1.07820) done in 8.663 ms
RK      0       05:45:14.097    Trades  '1000008949': deal #1021883094 sell 0.04 EURUSDrfd at 1.07870 done (based on order #1021600709)
RJ      0       07:49:46.015    Network '1000008949': scanning network for access points
PJ      0       07:49:46.873    Network '1000008949': scanning network finished
IR      0       10:51:16.238    Trades  '1000008949': market buy 0.04 EURUSDrfd, close #1021600709 sell 0.04 EURUSDrfd 1.07870
FF      0       10:51:16.258    Trades  '1000008949': accepted market buy 0.04 EURUSDrfd, close #1021600709 sell 0.04 EURUSDrfd 1.07870
JF      0       10:51:16.558    Trades  '1000008949': market buy 0.04 EURUSDrfd, close #1021600709 sell 0.04 EURUSDrfd 1.07870 placed for execution
OI      0       10:51:16.558    Trades  '1000008949': order #1021607738 buy 0.04 / 0.04 EURUSDrfd at market done in 316.213 ms
EF      0       10:51:16.558    Trades  '1000008949': deal #1021888944 buy 0.04 EURUSDrfd at 1.07834 done (based on order #1021607738)

Cordialement, Vladimir.

 
MrBrooklin ordre en attente et suit ensuite le cours. Une fois que le prix a "attrapé" l'ordre en attente, il ouvre une position de VENTE avec un stop loss et un take profit spécifiés. Jusqu'à présent, il n'y a aucun problème. Ensuite, le prix évolue dans la direction que je souhaite et, selon mon idée, il devrait fonctionner sur le take profit, qui est de 50 points. Mais ce n'est pas le cas. Malgré le fait que le prix actuel est tombé en dessous du niveau du prix auquel la position a été ouverte plus la taille de l'écart, c'est-à-dire 50 + 14 pips, la position a été clôturée avec la taille de 36 pips du prix d'ouverture. Et ainsi de suite de temps en temps, d'une transaction à l'autre. Je lance le robot sur le testeur et je constate que toutes les positions fermées ont une taille de 50 pips, comme cela devrait être le cas.

Y a-t-il vraiment une déviation constante, et avec la même taille, approximativement égale à la taille de l'écart de 14 pips. Il y a quelque chose d'étrange, vous ne trouvez pas ? Voici le journal des transactions.

Cordialement, Vladimir.

Peut-être ai-je oublié quelque chose, mais je pense que vous devez comprendre ce que sont lesoffres et les demandes.

 
Vladimir Deryagin #:

J'aipeut-être oublié quelque chose, mais je pense que vous devez déterminer ce que sont lesoffres et les demandes.

J'ai également commencé à douter et j'ai pensé que le problème se trouvait dans le code. Mais alors j'aurais les mêmes problèmes dans le testeur de stratégie. Mais tout va bien dans le testeur de stratégie ! J'ai mis en évidence le temps d'exécution en rouge dans le processus de clôture d'une transaction. Peut-être est-ce là le problème ?

Cordialement, Vladimir.

P.S. Aujourd'hui, j'ai eu 3 transactions et elles ont été clôturées avec une déviation de 10, 14 et 15 points. Cela ressemble à une déviation. ((

 
Bonjour, un écart de 15 à 20 pips à un prix à cinq chiffres est normal. Et 50 pips ne sont pas suffisants pour une prise. Si le profit est du même ordre que le spread, vous n'aurez pas de chance. Bien que cela dépende de qui vous êtes.
 
Aleksei Stepanenko #:
Bonjour, un écart de 15 à 20 pips à un prix à cinq chiffres est normal. Et 50 pips ne sont pas suffisants pour une prise. Si le profit est du même ordre que le spread, vous n'aurez pas de chance. Bien que cela dépende de qui vous êtes.

Bonjour Alexey, je suis d'accord que ce n'est pas la stratégie la plus idéale pour un robot, mais tant qu'elle donne un profit stable, laissez-la fonctionner. Moins c'est mieux, mais mieux c'est.

J'en viens maintenant à ma question. J'ai regardé tous les logs et j'ai remarqué que depuis le 1er février, le temps de clôture des trades a fortement augmenté - de 50-70 msk à 330-450 msk. Je vais demander à mon courtier en devises ce qui s'est passé.

Cordialement, Vladimir.


 

Pourriez-vous me dire s'il est possible de changer l'ID d'un Expert Advisor dans la table "Trade" ?

Ou disons qu'il y a un script qui définit des ordres SellLimit,

trade.BuyLimit(1,10.75,NULL,0,0,0,0,0,0,0,0,NULL) ;

Comment et où spécifier le numéro d'identification dans la commande pour que cet ordre puisse être récupéré par un Expert Advisor avec un ID similaire ?

 
BOBEF #:

Pourriez-vous me dire s'il est possible de changer l'ID d'un Expert Advisor dans la table "Trade" ?

Ou disons qu'il y a un script qui place des ordres SellLimit,

trade.BuyLimit(1,10.75,NULL,0,0,0,0,0,0,0,0,NULL) ;

Comment et où spécifier le numéro d'identification dans la commande afin que cet ordre puisse être récupéré par un Expert Advisor avec un ID similaire ?

 trade.SetExpertMagicNumber(magic);
 trade.BuyLimit(1,10.75,NULL,0,0,0,0,NULL);
 
Alexey Viktorov #:

Merci de votre attention.
 

Ce qui peut être erroné

int aaa = StringFind(Set, txt);

Set - la chaîne de caractères recherchée.

txt - ce que nous recherchons.

pourquoi aaa = -1 ? ??

En général, une variable de type chaîne peut être différente de la même variable de type chaîne.

chaîne a = "A" ;

chaîne c = "A" ;

Dans quels cas est-il possible que a!=c ?

 

Existe-t-il un moyen d'annuler l'affichage des erreurs de connexion à la base de données ?
Par exemple, la fonction DatabaseOpen() affiche une erreur chaque fois que la base de données est verrouillée et que la fonction ne peut pas y accéder.
Mais il s'agit d'une situation de travail normale pour moi, je vais attraper cette erreur moi-même et l'afficher si nécessaire.

Par conséquent, tout le journal est rempli de messages concernant la base verrouillée.

2023.02.13 18:57:21.917 database error, database is locked