Erreurs, bugs, questions - page 399

 

papaklass, merci pour la réponse !

Exemple (je vais probablement me répéter) :

Lot minimal = 1,0 ; échelon minimal du lot = 0,1. La cotation commence à baisser, le trader essaie de fermer une position longue de 10,1 lots. Dans le cas d'un marché de nouvelles, l'ordre ORDER_FILLING_AON peut ne pas être exécuté. Il est plus raisonnable d'utiliser le RDER_FILLING_CANCEL. La transaction de vente opposée est partiellement exécutée (de 10,0 lots). La partie restante de la position longue (0,1 lot) continue à subir des pertes. Elle ne peut pas être fermée car le lot minimum de la transaction est de 1.0 lot. C'est-à-dire qu'afin de sortir complètement du marché, le trader doit :

1. Pour encourir des pertes évidentes en achetant au moins 1.0 lot.

2. Essayez d'exécuter une transaction de vente de 1,1 lot avec le paramètre ORDER_FILLING_AON.

Donc, en termes de bon sens, la saisie de ORDER_FILLING_CANCEL etORDER_FILLING_RETURN impose une exigence stricte pour les valeurs du lot minimum et de l'incrément de lot minimum, elles doivent être égales.

Un autre exemple.

Il y a une position longue avec 1.0 lot et les SL/TP sont fixés. Le trader essaie d'effectuer une transaction inverse (vente) dans un volume de 1,1 lot avec un SL/TP spécifié (pour la vente).

Supposons qu'un tel volume soit disponible sur le marché et que la position résultante soit - vendre un volume de 0,1 lot avec un SL/TP spécifié (pour la vente).

Mais il n'y a pas de tel volume et nous avons ORDER_FILLING_CANCEL ? Nous obtiendrons une erreur concernant le mauvais SL/TP. Par conséquent, disons modestement, la sagesse consiste à envoyer SL/TP = 0 dans les transactions croisées avec le paramètre ORDER_FILLING_CANCEL.

Je sais que de nombreux programmeurs MQL5 sont des gens intelligents, mais je crois qu'il serait bon d'obtenir un article des développeurs expliquant l'algorithme de vérification de l'exactitude du placement des commandes.

Je vais répéter ma question. Un tel article existe-t-il ? Si ce n'est pas le cas, espérez-vous qu'il apparaisse bientôt ?

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
papaklass:

Lorsqu'un ordre est exécuté, le volume de la position restante ne peut être inférieur au minimum.

Comment pouvez-vous en être si sûr ?

Un post ci-dessus a donné un exemple (le premier) d'un cas où une telle situation est possible.

Soit le serveur dispose d'une fonctionnalité qui vous empêche de clôturer partiellement un ordre de sorte que le reste soit inférieur au lot minimum. Où cela est-il explicitement écrit dans la documentation ?

 
voix_kas:

Comment pouvez-vous en être si sûr ?

Un post ci-dessus a donné un exemple (le premier) d'un cas où une telle situation est possible.

Soit il existe une règle spéciale sur le serveur qui ne vous permet pas de fermer partiellement les ordres. la fonction Ou bien, il existe un code spécial qui empêche la clôture partielle d'un ordre afin de maintenir le solde en dessous du lot minimum. Où cela est-il explicitement écrit dans la documentation ?

C'est exactement ce qui est écrit sur le serveur (en dernier recours). Peut-être le terminal réagira-t-il aussi à temps pour empêcher une opération manifestement erronée.

Selon toutes les règles logiques, il est impossible d'effectuer la transaction dans un volume inférieur au minimum et une telle transaction qui changera/exposera le volume d'un article à celui qui est inférieur au lot minimum.

 
Interesting:

C'est exactement ce qui est spécifié sur le serveur (en tant qu'autorité finale). Peut-être le terminal réagira-t-il aussi à temps pour empêcher une opération manifestement erronée.

Selon toutes les règles logiques, il n'est pas possible d'exécuter une transaction avec un volume inférieur au lot minimum et une telle transaction qui changera/exposera le volume de la position à celui qui est inférieur au lot minimum.

Où et comment est écrit exactement "sur le serveur..." ?

Il y a une mauvaise chose dans vos messages : la spéculation. Désolé pour l'opposition directe. :-)

Donnez-moi un lien spécifique dans la documentation où il est explicitement écrit : il est interdit d'exécuter partiellement une transaction de sorte que le solde soit inférieur au lot minimum.

 
voix_kas:

Où et comment est-il écrit "sur le serveur..." ?

Il y a une mauvaise chose dans vos posts : la spéculation. Désolé pour l'opposition directe. :-)

Donnez-moi un lien précis dans la documentation où il est explicitement écrit : interdire l'exécution partielle d'une transaction pour que le solde soit inférieur au lot minimum.

Essayez chez Alpari (si je ne me trompe pas, leur lot minimum est de 0,10) avec un script sans aucun contrôle pour ouvrir un lot de disons 0,01.

Voyez ce que la réponse (informations dans la structure) renvoie sur ce compte.

Vous pouvez également essayer d'exécuter le conseiller expert avec un lot de 0,01 dans le testeur de stratégie sur les comptes de 2010.

Après cela, nous poursuivrons la conversation de fond sur ce qui est possible et où.

voix_kas:

Donnez-moi un lien spécifique dans la documentation, où il est clairement écrit : il est interdit d'exécuter partiellement une transaction de sorte que le solde soit inférieur au lot minimum.

Un atome d'hydrogène peut-il être plus petit qu'un atome d'hydrogène ? C'est probablement possible, mais ce ne serait plus notre univers ni "nos" lois physiques...

Et dans quelle section de la documentation cela doit-il être indiqué, dans "ABC" ou "Fondements des mathématiques" ?

Désolé pour l'opposition directe. :-)

Automated Trading Championship 2010
  • championship.mql5.com
Automated Trading Championship 2010
 
Interesting:

Essayez sur Alpari (si je ne me trompe pas, ils ont un lot minimum de 0.10) avec un script sans aucun contrôle pour ouvrir un lot de disons 0.01.

Voir ce qui est renvoyé sur ce compte dans la réponse (informations dans la structure).

Vous pouvez également essayer d'exécuter le conseiller expert avec un lot de 0,01 dans le testeur de stratégie sur les comptes de 2010.

Après cela, nous poursuivrons la conversation de fond sur ce qui est possible et où.

Désolé pour l'opposition directe. :-)

Cher Monsieur, vous avez lu ma question.

Je ne demande pas s'il est possible d'effectuer une transaction avec un volume inférieur au lot minimum fixé sur un compte/type de compte particulier. Bien sûr que non.

Ma question est la suivante : du point de vue du concept MQL5, est-il acceptable d'exécuter une transaction avec un lot partiel inférieur au lot minimum autorisé (bien sûr, nous parlons de ORDER_FILLING_CANCEL etORDER_FILLING_RETURN).

Et nous ne parlons pas de conclusions empiriques, mais d'exigences/limitations spécifiques du "moteur" MQL5, qui ont été officiellement publiées.

 
voix_kas:

Cher Monsieur, vous avez lu ma question.

Je ne demande pas s'il est possible d'effectuer une transaction avec un volume inférieur au lot minimum fixé dans un compte/type de compte particulier. Bien sûr que non.

Ma question est la suivante : du point de vue du concept MQL5, est-il acceptable d'exécuter une transaction avec un lot partiel inférieur au lot minimum autorisé (bien sûr, nous parlons de ORDER_FILLING_CANCEL etORDER_FILLING_RETURN).

Je ne parle pas de conclusions empiriques, mais d'exigences/limitations spécifiques du "moteur" MQL5 qui ont été officiellement publiées.

Je viens de le vérifier manuellement, tout se ferme bien. J'ai ouvert l'achat de 0,21 lot et fermé la vente de 0,2 lot, l'achat reste sur le marché 0,01 lot alors que le minimum était de 0,1 lot. Je l'ai vérifié sur le quadruple un et il n'y a pas d'erreurs dans la fermeture partielle là non plus.
 
papaklass:

Lorsqu'un ordre est exécuté, le volume de la position restante ne peut être inférieur au volume minimum. Il sera un multiple du volume minimum, mais pas inférieur.

Donnez-moi un exemple de la façon dont vous pouvez modifier une position de 0,01 lot, le lot minimum possible étant de 0,1. Vous répondrez alors à votre propre question.

Votre interprétation est claire. Mais regardez la documentation :

SYMBOL_VOLUME_MIN Volume minimum pour une transaction

SYMBOL_VOLUME_STEP Pas minimum de changement de volume pour la conclusion d'une transaction

C'est-à-dire que des transactions (et donc des ordres) avec un volume de 0,1, 0,11, 0,12 ... sont possibles dans notre exemple. etc.

et impossible sont 0,09, 0,08, 0,07 ... etc.

Exactement des transactions, rien n'est dit sur le volume de la position.

Voici un exemple : nous avons acheté 1,0 lot, nous le fermons partiellement avec une vente de 0,95 (cela correspond aux conditions de granulation du volume), la position restante est de 0,05 lot. Et nous ne pouvons pas la fermer maintenant.

Nous devons d'abord augmenter la position à au moins 1,05 (un ordre ne peut être inférieur à 0,1), puis la fermer complètement.

Il est absurde que nous ne puissions pas fermer complètement un poste ouvert.

Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
sergey1294:
Je viens de le vérifier manuellement et il se ferme parfaitement. J'ai ouvert une position d'achat avec 0,21 lot et fermé une position de vente avec 0,2 lot. 0,01 lot est resté sur le marché alors que le minimum était de 0,1 lot. J'ai également vérifié sur la 4. Il n'y a pas d'erreurs dans la fermeture partielle là aussi.

La position restante de 0.01 lot est-elle fermée par une transaction opposée de même volume ?

C'est-à-dire qu'une transaction de vente avec un volume de 0,01 est réalisée (bien sûr, en fermant complètement la position ouverte) ?

 
voix_kas:

Cher Monsieur, vous avez lu ma question.

Je ne demande pas s'il est possible d'effectuer une transaction avec un volume inférieur au lot minimum fixé dans un compte/type de compte particulier. Bien sûr que non.

Ma question est la suivante : du point de vue du concept MQL5, est-il acceptable d'exécuter une transaction avec un lot partiel inférieur au lot minimum autorisé (bien sûr, nous parlons de ORDER_FILLING_CANCEL etORDER_FILLING_RETURN).

Nous ne parlons pas de conclusions empiriques, mais d'exigences/restrictions spécifiques à MQL5 qui ont été officiellement publiées.

La réponse est simple : ce n'est pas possible et ce n'est pas permis, quelles que soient les conditions (sinon, c'est en même temps dans SD). Et non seulement "nous" serions scandalisés en tant que testeurs de la partie client, mais aussi les courtiers qui testent la partie serveur).

Pour répondre à la partie technique de votre question, je répondrai que le contrôle existe dans la partie client (terminal et testeur), et sans aucun doute dans la partie serveur.

Le contrôle de la partie client est nécessaire, d'une part, pour détecter à l'avance toutes sortes de violations des conditions et des règles de négociation et, d'autre part, pour réduire la charge du serveur et empêcher les "attaques" par des demandes incorrectes (le terminal ne se contentera pas d'envoyer une demande au serveur s'il détecte une violation des règles de négociation ou une erreur flagrante dans la demande).

À son tour, le serveur (en tant que dernière instance) vérifiera aussi nécessairement l'exactitude de la demande de transaction (y compris l'exactitude des conséquences attendues de l'exécution de cette demande).

Raison: