Règles de structure. Apprendre à structurer des programmes, explorer les possibilités, les erreurs, les solutions, etc. - page 8

 
GaryKa:

Nous devrons alors introduire une rétroaction entre l'"exécutant" et l'"analyseur" et, en outre, intégrer les paramètres de cette exécution non idéale dans le modèle mathématique de l'analyseur.

Quel est l'effet du retour d'information dans ce cas ? Supposons que vous vouliez acheter le produit à 1,00 rouble, mais que votre performance non idéale a été réalisée à 1,02. L'analyseur ne peut rien y changer.

Elle ne peut pas être modifiée - l'analyseur doit travailler avec la nouvelle valeur. Si vous voulez dire que vous aviez un SL de 0,98, et que vous devez maintenant le déplacer vers la différence. c'est-à-dire 1,00. Je pense qu'il est plus facile de changer la logique - acheter d'abord, et ensuite mettre le SL à une distance fixe du prix d'exercice.

 
A100:

Quel est l'effet du retour d'information dans ce cas ? Disons que vous vouliez acheter à 1,00 rouble et que l'opération a été exécutée à 1,02 rouble.

Dans le cas d'une redirection. Ou dans le cas d'un ordre à cours limité, lorsque vous devez égaliser votre portefeuille après le déclenchement de la limite.

 
TheXpert:

Dans le cas d'une redirection. Ou dans le cas d'une égalisation de portefeuille après un déclenchement de limite.

C'est difficile à dire dans le cas de l'égalisation des portefeuilles. Et je pense que la question de la re-requête devrait être résolue dans le bloc d'exécution - des requêtes répétées dans des limites précises - par exemple 10 requêtes avec une pause jusqu'à ce que le prix s'éloigne de plus de 50 points du prix souhaité.

L'analyseur peut indiquer à l'avance à l'exécuteur ce qu'il doit faire en cas d'échec - répéter ou "abandonner".

 

Ne croyez pas que je fais le malin, mais regardez à nouveau cette architecture d'écriture d'un CT de combat. Il n'y a pas de retour d'information.

Il existe des positions virtuelles et un environnement de négociation réel qui s'adapte à la virtualité.

Dans ce cas, il importe peu qu'il y ait une compensation dans la plate-forme ou dans un autre système comptable.

 
TheXpert:
Ce n'est qu'un exemple de ce dont je parlais - la partie trading dépend de la stratégie.
Ça n'a pas à l'être. Si vous développez une représentation intelligente des positions et organisez un travail correct avec elles, le type d'exécution n'affectera pas la logique du conseiller expert lui-même. Dans mon moteur, par exemple, le type d'exécution est défini par un simple enum. Si vous voulez des ordres à cours limité, allez-y ; si vous voulez des ordres stop, allez-y. Prenons un ordre stop avec l'indication du slippage maximum sur celui-ci. En fait, il s'agit d'un ordre à cours limité dont le prix est inférieur au prix actuel de la valeur du slippage. Cela signifie que nous pouvons nous contenter d'ordres à cours limité dans tous les cas. Le problème du dépassement de volume peut être facilement résolu. Si le conseiller expert décide que le volume requis n'est pas atteint, il ouvre une deuxième position dans la même direction. Au niveau de la classe de base, les couvertures sont prises en charge de manière transparente et ne posent aucun problème. En outre, la décision d'ouvrir ou non une deuxième position en cas de volume insuffisant peut être déléguée au niveau de la classe de base. Ensuite, nous pouvons simplement décrire le mode, dans lequel la classe de base sera forcée d'inclure de nouvelles positions dans la liste des positions à traiter. Le module de stratégie les récupère et les traite selon ses propres règles.
 
hrenfx:

Ne croyez pas que je fais le malin, mais regardez à nouveau cette architecture d'écriture d'un CT de combat. Il n'y a pas de retour d'information.

Il y en a une, à un niveau inférieur, elle ne peut pas ne pas être là.

C-4:

Ça ne devrait pas dépendre.

Ok, ça ne devrait pas l'être, ça ne devrait pas l'être. Et tu dois encore apprendre à faire des dessins. Et les images sont des abstractions.
 
hrenfx:

Ne croyez pas que je fais le malin, mais regardez à nouveau cette architecture d'écriture d'un CT de combat. Il n'y a pas de retour d'information.

C'est l'architecture normale, du moins à mon goût assez bien.


Il existe des positions virtuelles et un environnement de négociation réel qui s'adapte à la virtualité.

C'est exactement ce qu'ils soutiennent ici à propos de la complexité et de l'absence de fiabilité du synchroniseur (le mien, dans ce cas).


Dans ce cas, il n'est même pas important que la compensation soit dans la plate-forme ou dans un autre système comptable.

J'ai un pilote similaire pour quatre, écrit alors que cinq n'était même pas encore sorti. Les positions de compensation sont introduites dans le pilote, et celui-ci les traduit en quatre ordres "réduisant" tous les lots au fur et à mesure que le jeu progresse.
 
TheXpert:

Il existe, à un niveau inférieur, il ne peut pas ne pas exister.

OK, ça n'a pas à l'être, ça n'a pas à l'être. Et tu dois encore apprendre à faire des dessins. Et les images sont des abstractions.
Nous ne sommes pas allés dans les académies Muhinsky !
 
TheXpert:

Il existe, à un niveau inférieur, il ne peut pas ne pas exister.

OK, ça n'a pas à l'être, ça n'a pas à l'être. Et tu dois encore apprendre à faire des dessins. Et les images sont des abstractions.
Une exception importante : la logique des algorithmes HFT est en fait décrite par la façon dont ils sont exécutés.
 
Je pensais juste que si MQL5 supportait l'héritage multiple et qu'une classe pouvait déclarer des méthodes abstraites, cela ouvrirait la voie à l'utilisation d'interfaces, ce qui serait génial pour les grands projets.