Symboles personnalisés. Erreurs, bogues, questions, suggestions. - page 15

 
Roman:
Ce qui n'est pas clair, c'est que dans le message concernant le bogue n° 20, j'ai indiqué le paramètre ID et la raison de l'incohérence.
SYMBOL_TRADE_EXEMODE
SYMBOL_TRADE_CALC_MODE
Ce sont des modes complètement différents, qui ne s'appliquent pas au problème.

Cela devrait être plus clair.

Et si vous voulez utiliser un autre identifiant de ENUMSYMBOL_FILLING_XXX
Il n'y a pas d'identifiantpourSYMBOL_FILLING_RETURN!

C'est vrai - il n'y en a pas. Ce ne sont pas des identifiants - ce sont des drapeaux. Parce que SYMBOL_FILLING_RETURN existe toujours. Et les deux autres drapeaux peuvent être les deux ou l'un des deux :

Lors de l'envoi d'un ordre, vous pouvez spécifier une politique pour remplir le volume déclaré dans l'ordre de transaction. Les variantes autorisées d'exécution des ordres par volume pour chaque symbole sont indiquées dans le tableau ci-dessous. Il est possible de définir non pas un seul mode pour chaque symbole, mais plusieurs modes grâce à une combinaison de drapeaux. Lacombinaison des indicateurs est exprimée par l'opération OU (|) logique , par exemple SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC. Pour vérifier si un mode particulier est autorisé pour un instrument, le résultat du ET logique (&) doit être comparé au drapeau de mode.

Politique de remplissage

Identifiant

Valeur

Description

Tous/Aucun

SYMBOLE_REMPLISSAGE_FOK

1

Cette politique d'exécution signifie que l'ordre ne peut être exécuté qu'à hauteur du volume spécifié. S'il n'y a pas assez de volume de l'instrument financier disponible sur le marché à ce moment-là, l'ordre ne sera pas exécuté. Le volume requis peut être compilé à partir de plusieurs offres actuellement disponibles sur le marché.

Tout/Partiel

TOUT_REMPLISSAGE_IOC

2

Dans ce cas, le trader accepte d'effectuer une transaction avec le volume maximum disponible sur le marché dans la limite du volume spécifié dans l'ordre. Si l'exécution complète n'est pas possible, l'ordre sera exécuté pour le volume disponible, et le volume non exécuté de l'ordre sera annulé. La possibilité d'utiliser des ordres IOC est définie sur un serveur de trading.

Retourner à

Il n'y a pas de CIO

Ce mode est utilisé pour les ordres au marché (Achat et Vente), les ordres à cours limité et les ordres stop-limite et uniquement dans les modes "Exécution au marché" et "Exécution en bourse". En cas d'exécution partielle, un ordre au marché ou à cours limité avec un volume résiduel n'est pas supprimé mais reste en vigueur.



  • Si SYMBOL_FILLING_FOK est présent, mais queSYMBOL_FILLING_IOC ne l'est pas , SYMBOL_FILLING_MODE renvoie 1. En même temps, il y a un "retour".
  • Si l'indicateur SYMBOL_FILLING_IOC est présentmais pas l'indicateur SYMBOL_FILLING_FOK, SYMBOL_FILLING_MODE renvoie 2. Dans ce cas, il y a un "retour".
  • S'il existe un indicateur SYMBOL_FILLING_FOK et un indicateur SYMBOL_FILLING_IOC (), SYMBOL_FILLING_MODE renvoie 3. En même temps, il y a un "retour".
D'où la conclusion : le "retour" est toujours là, et les deux autres modes sont déterminés par la présence de drapeaux.
 
Artyom Trishkin:

Exact - non. Ce ne sont pas des identifiants - ce sont des drapeaux. Parce que SYMBOL_FILLING_RETURN est toujours là. Et les deux autres drapeaux - peuvent être les deux ou un seul :

Mais ce n'est pas un comportement explicite, ce qui est trompeur.
Et la documentation ne dit pas que SYMBOL_FILLING_RETURN est toujours présent.
Pourquoi ne pas l'activer explicitement ? SYMBOL_FILLING_RETURN

Veuillez me montrer un exemple de la façon d'activer correctement l'indicateur de remplissage de la bourse.

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_RETURN);

Je m'embrouille avec ces drapeaux non explicites.

 
Roman:

Mais ce n'est pas un comportement explicite qui est trompeur.
Et la documentation ne dit pas que SYMBOL_FILLING_RETURN est toujours présent.
Pourquoi ne pas le définir explicitement ? SYMBOL_FILLING_RETURN

S'il vous plaît, montrez-moi un exemple de la façon de définir correctement le drapeau pour le remplissage des échanges.

Parce que je suis confus par ces drapeaux non explicites.

Zéro - si aucun autre drapeau n'est nécessaire.

 
Roman:

Mais ce n'est pas un comportement explicite qui est trompeur.
Et la documentation ne dit rien sur le signe que SYMBOL_FILLING_RETURN est toujours présent.

Pourquoi ne pas le définir explicitement ? SYMBOL_FILLING_RETURN

Veuillez me montrer un exemple de la façon de définir correctement le drapeau pour le remplissage de l'échange.

Parce que je suis confus par ces drapeaux non explicites.

Voici un extrait de la documentation :

"Dans les modes d'exécution "Par marché" et "Bourse", la politique de remplissage "Retour" est toujours autorisée pour tous les types d'ordres. L'admissibilité des autres types est vérifiée à l'aide des propriétés SYMBOL_FILLING_FOK et SYMBOL_FILLING_IOC. "

 
Artyom Trishkin:

Zéro - si aucun autre drapeau n'est requis.

Définit zéro, définit Aucun.
None n'est pas un remplaçant de l'échange.
Si j'essaie de cette façon

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC);

SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC renvoie également None au lieu de 3 comme vous l'avez dit ci-dessus.

En fin de compte, comment puis-je régler correctement le remplissage de l'échange ?

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_RETURN);
 

Et puis il y a ça.

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, 3);

Définit All, ce qui est identique à All allowed.

Et dans la documentation, dans la colonne "Valeur", il n'y a rien, vide !
Et dans la colonne "Identifiant" de la ligne "Retour", je suggère encore de spécifier la bonne combinaison pour les drapeaux !
Pourquoi ne pas simplement ajouterSYMBOL_FILLING_RETURN avec la valeur 3, de manière claire et compréhensible pour tous.

 
Roman:

Remplir des drapeaux sur mesure dans quel but pratique ?

 
Roman:

Définit zéro, définit Aucun.
None n'est pas un remplaçant de l'échange.
Si j'essaie de cette façon

SYMBOL_FILLING_FOK & SYMBOL_FILLING_IOC renvoie également None, et non 3 comme vous l'avez dit ci-dessus.

En fin de compte, comment puis-je régler correctement le remplissage de l'échange ?

CustomSymbolSetInteger(SName, SYMBOL_FILLING_MODE, SYMBOL_FILLING_FOK | SYMBOL_FILLING_IOC);
 
Artyom Trishkin:

Voilà, cette combinaison établit tout. Merci.
Mais convenez que cette combinaison ne semble pas évidente.
Nous n'utilisons pas de "Pas" logique lors de la définition des propriétés

Si ce n'est pasSYMBOL_FILLING_FOK ou pasSYMBOL_FILLING_IOC
alors le
SYMBOL_FILLING_RETURN caché-"Toujours là" estutilisé

Dans votre combinaison, nous disons plutôt explicitement, définissez FOK ou IOC.
Dans le remplissage de l'échange, il n'y a pas d'OFC ou d'IOC, c'est donc trompeur.

Il est donc logique que cette combinaison soit ajoutée à la documentation, dans la colonne"Identificateur" et sa valeur 3
Ou mieux encore d'ajouter
SYMBOL_FILLING_RETURN

Alors le bug n°20 est exclu des bugs.
Mais n'oubliez pas que la caractéristique d'explicitation est violée.

 
fxsaber:

Remplir des drapeaux sur mesure dans quel but pratique ?

Pour afficher correctement les spécifications de l'outil.
Il est également possible que ces modes soient utilisés quelque part dans les profondeurs du terminal.
Dans le testeur ou ailleurs, j'ai donc l'habitude de tout remplir de manière explicite.

Raison: