Buy stop Sell stop Conseiller de la grille en tant que classe

 

J'ouvre un projet

Draft Buy stop Sell stop Conseiller de la grille en tant que classe

Pour tester une stratégie permettant de travailler avec des ordres stop en attente.

L'essence de la transaction : au départ, nous plaçons deux ordres stop en attente (Buy stop et Sell stop). Si l'un d'eux s'est déclenché, supprimez le second (nous le modifierons plus tard, mais pour l'instant, supprimez-le simplement) et de nouveau deux ordres stop en attente.

La signification : un ensemble de positions en accord avec la tendance.

Capture d'écran (résultat lorsqu'il y a une tendance et que plusieurs ordres en attente ont été déclenchés) :

Stop à l'achat Stop à la vente Grille

(un peu plus tard ...).


Comment accéder au code complet: UNIQUEMENT en se connectant au projet, tandis que les pièces seront bien sûr en discussion dans ce fil. L'EE elle-même sera sous la forme d'une classe (*.mqh).


Ajouté :

Lorsque l'EA est en cours d'exécution, les données sont écrites dans un tableau dans OnTradeTransaction. Le format d'enregistrement est le suivant : si nous avons une position d'achat, nous enregistrons '+1' ; si nous avons une position de vente, nous enregistrons '-1'.

Vérifions l'idée du pyramidage (dans le cas où une position a été ouverte dans la direction de la précédente).

 
Vladimir Karputov:

J'ouvre un projet pour tester une stratégie permettant de travailler avec des ordres stop en attente.

L'essence de la transaction : au départ, nous plaçons deux ordres stop en attente (Buy stop et Sell stop). Si l'un d'eux s'est déclenché, supprimez le second (nous le modifierons plus tard, mais pour l'instant, supprimez-le simplement) et de nouveau deux ordres stop en attente.

La signification : un ensemble de positions par tendance.

Photo :

(un peu plus tard ...).


Comment accéder au code complet: UNIQUEMENT en se connectant au projet, tandis que les pièces seront bien sûr en discussion dans ce fil. Le conseiller expert lui-même se présente sous la forme d'une classe (*.mqh).


Je fais actuellement quelque chose de similaire à la commande, mais plus compliqué.

 

Je suivrai le projet avec intérêt...

 
Vasily Bykov:

Je suivrai le projet avec intérêt...


Veuillez préciser, voulez-vous être connecté au projet(Projets - MetaEditor) ?

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 

Salut !


De tels robots sont connus et disponibles. Et quel est le but de votre projet?
 
Alexander Ivanov:

Salut !


L'existence de tels conseillers experts est connue. Et quel est le but de votre projet ?

Les principaux objectifs sont décrits ci-dessus :

  • est de créer une EA comme une classe séparée
  • développement de projets(Projets - MetaEditor)
  • tester une stratégie de trading sur des ordres stop en attente

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 

Je trouve le sujet intéressant. Tout d'abord, la condition "en tant que classe".

Mon "purement en tant que classe" n'a pas fonctionné. L'architecture du système comprend le modèle principal, qui contient les fonctions standard OnInit(), OnTick(), etc. Il déclare également un objet de la classe CExpert - qui possède des fonctions - membres de la classe, qui sont des gestionnaires de tous ces événements. Dans le modèle Main, les fonctions membres sont appelées par des fonctions standard.

Ainsi, nous avons déjà "pas purement sous la forme d'une classe", car il existe des fonctions standard, à partir desquelles les gestionnaires d'événements de la classe EA sont appelés.

Et dans cette architecture, si nous voulons remplacer cette classe très EA, nous devrons réécrire l'ensemble de ce fichier modèle. Le conseiller expert en tant que classe" devrait ressembler à ceci : nous déclarons une classe EA (toute sa description se trouve dans les fichiers d'inclusion), incluons un modèle - et c'est tout.

En d'autres termes, il s'avère que dans le modèle, il devrait y avoir des fonctions standard, un objet hub qui connecte l'EA à ces fonctions standard, et ensuite le fichier principal peut être réduit à une "structure correcte" - déclarer un objet EA et connecter le modèle. Dans ce cas, dans le fichier principal, nous déclarons un objet EA, connectons le modèle principal, l'objet hub enregistre un objet et connecte ses fonctions handler dans le modèle principal aux fonctions d'événement standard.

Il est même possible de mettre en œuvre un grand nombre de CT dans une seule EA - pour cela, plusieurs objets EA sont déclarés et la classe Hub les relie tous aux fonctions principales, et ils fonctionnent indépendamment les uns des autres (bien sûr, lors de la connexion, il faut vérifier la différence entre les magiciens, et les EA elles-mêmes doivent sélectionner les positions de leurs magiciens).


À propos de "connectez-moi au projet" - je suis prêt à me connecter en mode lecture seule - il est peu probable que j'écrive quoi que ce soit, mais je peux regarder, suggérer quelque chose, signaler des erreurs.

 
George Merts:

***

Et de plus, dans cette architecture, si nous voulons remplacer ce même conseiller de classe, nous devrons réécrire tout ce fichier modèle. L'"EA en tant que classe" devrait ressembler à ceci : nous déclarons une classe EA (toute sa description - dans les fichiers include), nous connectons le modèle - et c'est tout.

***

... connecter le modèle et passer les paramètres d'entrée à la classe Expert Advisor


George Merts:

***

A propos de "connectez-moi au projet" - prêt à se connecter en mode lecture seule - il est peu probable que j'écrive quelque chose, mais pour regarder, pour proposer quelque chose, pour signaler des erreurs - je peux.


C'est fait, connecté.

 
Vladimir Karputov:

... connecter le modèle et passer les paramètres d'entrée à la classe EA



C'est fait, c'est branché.

О ! Je l'ai. J'ai les fichiers. Quand j'aurai le temps, je verrai ce qu'il y a là.

 
Ibragim Dzhanaev:

Qui ne peut pas programmer, ne peut pas participer ?


Tout le monde peut participer, mais seuls ceux qui veulent rejoindre le projet(Projets - MetaEditor) auront accès au code COMPLET. Il y aura une discussion sur le projet, donc l'opinion de chacun (programmeur ou utilisateur) sera précieuse.

Проекты - Справка по MetaEditor
Проекты - Справка по MetaEditor
  • www.metatrader5.com
MetaEditor позволяет программистам вести совместную разработку приложений на MQL4/MQL5 удаленно. Специально для этих целей в нем предусмотрены...
 
Ibragim Dzhanaev:

Je ne sais pas programmer, mais j'ai construit votre idée pour 4.



Il n'y a que mql5 ici. L'ancien terminal ne cite pas.

Raison: