Besoin d'aide - page 4

 
a007 #:

J'ai trois questions simples : l'avenir de l'humanité dépend des réponses :

1. D'où vient l'idée de l'EA (qui l'a suggérée, où l'ai-je lue, ...) ?

2. quels sont les signes (comment puis-je savoir que cela fonctionne, comment puis-je le comprendre) que cela ne fonctionne que sur une fenêtre, et que cela ne s'ouvre pas sur la seconde ?

3. Pourquoi ajouter une autre fenêtre, pourquoi une seule fenêtre n'est-elle pas suffisante ?

1. pendant le test, je ne peux encore dire qu'une seule chose, j'ai trouvé l'astuce sur le réseau, pendant longtemps allé dans cette direction, mais a estimé que quelque chose manquait), et puis finalement vu une chose intéressante sur le réseau, qui a donné toutes les réponses dont j'ai besoin), je pense que beaucoup sur l'essence de l'idée de savoir, et peut-être quelqu'un est déjà couper les choux en utilisant cet algorithme ... Je ne sais pas ), c'est en apparence, mais je n'ai rien vu de semblable dans les sources publiques depuis de nombreuses années, donc je dois le tester sur mes genoux .... J'utilise Excel, j'y ai vissé les cotations, je l'ai bourré de formules et de calculs, et je le fais toujours comme ça, je n'ai pas fixé mon statut pour le reporting depuis 4 jours, j'ai fixé le tableau mais les profits sans réinvestissement depuis 5 jours sont en moyenne de 30% par jour, pas un martin, sans optimisation, sans indicateurs, je me fiche de quel broker, les drawdowns n'ont pas été observés, les retournements sont lents, ce qui permet d'ouvrir facilement dans le bon sens, aujourd'hui les profits sont aussi dans les 30%. Si vous m'aidez à compléter le hibou pour le test, je posterai les rapports de MT4 pour la période de test.
2. oui les signes sont simples, d'abord vous mettez le hibou sur une fenêtre, tout fonctionne, ensuite vous le mettez sur la deuxième fenêtre, dans la fenêtre apparaît, mais rien ne se passe, les commandes ne s'ouvrent pas.
3) Jusqu'à présent, la situation est la suivante : un signal d'entrée est généré, je choisis la liste des paires requises dans les paramètres d'entrée, j'indique la direction et je l'envoie à la fenêtre du graphique ; selon les règles, par exemple 6 signaux apparaissent et pour chaque signal une liste différente d'ordres, dans ce mode hibou je dois envoyer le deuxième et ensuite le troisième ... dans différentes fenêtres pour ouvrir consécutivement 6 commandes de différentes portées de la liste.
Afin de tout ouvrir dans une seule fenêtre, nous devrions ajouter toutes les mathématiques de l'algorithme qui donnerait des signaux pour l'ouverture séquentielle de 6 ordres, mais c'est un sujet séparé pour le travail du programmeur individuel.
À ce stade, je vois la solution comme suit, si vous suggérez quelque chose de mieux, cela ne me dérange pas, en cas de résultats positifs des tests (de préférence en MT), il sera déjà logique et intéressant de créer une machine automatisée à part entière, alors que tout va beaucoup mieux, et nous verrons.

 
Sergey Korsunov #:

Tout est fait, ça marche très bien, merci
mais lors de la compilation il y a des avertissements, qu'est-ce que ça veut dire ? et comment les supprimer ?

OrderSend dans MQL4

Renvoie le numéro de ticket attribué à l'ordre par le serveur commercial ou -1 en cas d'échec. Pour obtenir les informations relatives à l'erreur, vous devez appeler la fonction GetLastError().


Mais la valeur retournée s'envole vers le néant. Ce n'est pas crucial, bien sûr, mais ce n'est pas le meilleur style de programmation.

F1 vous aidera, il y a aussi un petit exemple

 
Pour le moment, j'ai obtenu le résultat souhaité avec mon code, que j'ai modifié avec votre aide, et je vous en remercie.
Le conseiller expert a commencé à ouvrir la liste des symboles requis dans de nouvelles fenêtres.
demain, je devrai corriger l'ensemble du code, et ce n'est pas un petit, et c'est un peu désordonné), mais il semble fonctionner), je n'ai aucune expérience et aucune connaissance.
 
Sergey Korsunov #:
Pour l'instant, j'ai obtenu le résultat dont j'ai besoin avec mon propre code, que j'ai modifié avec votre aide, et je vous remercie beaucoup.
Le conseiller expert a commencé à ouvrir la liste des symboles requis dans de nouvelles fenêtres.
demain, je devrai corriger l'ensemble du code, et ce n'est pas un petit, et c'est un peu désordonné), mais cela fonctionne), je n'ai pas assez d'expérience et de connaissances.

Vous devez apprendre à écrire un code court dès maintenant. Comparez votre version avec la mienne.

Supprimez les fonctions et les parenthèses superflues, et organisez les parties répétitives avec des fonctions.

La moitié du texte du programme doit être commentée sur 3 niveaux :

1. L'ensemble du programme est clair, complet et sans redondance.

2. A des parties particulières du programme : Fonctions, boucles, ...

3. Aux opérateurs individuels.

 
a007 #:

Vous devez apprendre à écrire un code court dès maintenant. Comparez votre version avec la mienne.

Jetez les fonctions et les parenthèses inutiles, et organisez les parties répétitives avec des fonctions.

La moitié du texte du programme doit être commentée sur 3 niveaux :

1. L'ensemble du programme est clair, complet et sans redondance.

2. A des parties particulières du programme : Fonctions, boucles, ...

3. Aux opérateurs individuels.

Je n'en suis qu'au tout début, je ne fais que commencer ;)
Ma version originale comportait plus de 8 000 lignes O_o ;)
Le code est exactement 2 fois plus court après les corrections d'hier, mais il est aussi très proche du vôtre.
Hier, il m'a fallu une journée entière pour le réécrire.
Si vous m'aidez à terminer ce que j'ai commencé, je vous en serai très reconnaissant.

Le robot a bien fonctionné avec cette stratégie aujourd'hui.
Mon travail principal est juste d'ouvrir les ordres dans le bon ordre et il l'a bien fait.
La seule chose que j'ai foiré aujourd'hui est de ne pas faire attention à la taille du lot par défaut, tous sur l'ouverture avec un lot de 0,01, et a dû lot 1,0 à définir, juste inattention, il pourrait certainement redémarrer 1 lot, mais que trop paresseux).

Le résultat de la négociation aujourd'hui strategiki (à 1 lot) +50% !
Pendant que j'écrivais ce post, j'ai obtenu plus de 65% de PROFIT dans Excel)

Dossiers :
Screenshot_7.jpg  421 kb
 
a007 #:

............ transforme des pièces répétitives en fonctions.


c'est exactement ce qui manque dans le code, mais je ne sais pas comment le faire
tout mon code consiste en des répétitions

 
Sergey Korsunov #:
l'EA a commencé à ouvrir la liste d'instruments requise dans de nouvelles fenêtres.

Qu'est-ce que vous appelez de nouvelles fenêtres ? Dans Windows, il y a un programme différent qui tourne dans chaque fenêtre ! Utilisez-vous beaucoup de terminaux ? Pourquoi avez-vous besoin de nouvelles fenêtres ?

L'EA doit fonctionner sur un seul graphique. Il doit envoyer des ordres au serveur. Dans quelles fenêtres la liste s'ouvre-t-elle ?

 
a007 #:

Qu'est-ce que vous appelez des nouvelles fenêtres ? Dans Windows, il y a un programme différent qui tourne dans chaque fenêtre ! Utilisez-vous beaucoup de terminaux ? Pourquoi avez-vous besoin de nouvelles fenêtres ?

L'EA doit fonctionner sur un seul graphique. Il doit envoyer des ordres au serveur. Dans quelles fenêtres la liste s'ouvre-t-elle ?

Je vais essayer de le décrire à l'adresse
. À ce stade, le robot n'est nécessaire que pour l'ouverture des ordres selon certaines règles pendant le test de la stratégie.
Nous n'avons qu'un seul terminal.
Les nouvelles fenêtres sont nécessaires uniquement pour l'ouverture de nouveaux ordres dans une séquence cyclique.
Cela se présente comme suit :
Je lance le bot dans la première fenêtre, il ouvre 6 ordres avec différents symboles en considérant la liste.
J'ouvre la liste suivante de 6 ordres dans la deuxième fenêtre, mais avec des paramètres légèrement différents dans la fenêtre des paramètres d'entrée, etc.
Après l'ouverture de tous les ordres dans les fenêtres, je supprime tous les bots afin qu'après la fixation d'un profit par un bot supplémentaire qui ferme toutes les positions, le bot ne les ouvre pas à nouveau.
Pour l'instant 6 fenêtres sont suffisantes, bien sûr, je peux travailler dans une seule fenêtre et supprimer le bot à chaque fois que de nouvelles commandes sont ouvertes, mais c'est trop de problèmes).
Si vous êtes intéressé, je peux vous montrer la partie fonctionnelle du code.
Lors de l'ouverture de nouveaux ordres, vous devez définir deux paramètres dans les réglages, le troisième si nécessaire (le sens de la transaction est l'achat ou la vente).
Pour le moment le bot fait son travail, parfois il ralentit un peu lors de l'ouverture des commandes, mais je pense que c'est juste à cause d'un code trop long).
La variante avec un fichier texte contenant une liste d'instruments simplifierait le code de manière incommensurable et accélérerait considérablement son travail.


 
Sergey Korsunov #:

Il n'y a qu'un seul terminal.
De nouvelles fenêtres ne sont nécessaires que pour ouvrir de nouveaux ordres dans une séquence cyclique.
Cela ressemble à ceci : je lance le bot dans la première fenêtre, ...

Je l'ai. Vous confondez les fenêtres et les graphiques. Le terminal est une application Windows. Chaque application fonctionne dans sa propre fenêtre. Comme le terminal est le même, la fenêtre est la même.

Vous démarrez le robot dans différentes fenêtres, puis vous attendez, puis vous le fermez... Vous perdez beaucoup de temps avec ça.

Le robot doit être unique et faire tout le travail en même temps. Puis sur les 100 dollars réels et 2 semaines de test.

S'il perd, bon débarras. S'il se remplit - reconstituez le dépôt.

 
Sergey Korsunov #:

Je vais essayer de décrire
. À ce stade, le robot n'est nécessaire que pour ouvrir des ordres selon certaines règles pendant les tests de stratégie.
Il n'y a qu'un seul terminal.
De nouvelles fenêtres sont nécessaires uniquement pour l'ouverture de nouveaux ordres dans une séquence cyclique.
Cela se présente comme suit :
Je lance le bot dans la première fenêtre, il ouvre 6 ordres avec différents symboles en considérant la liste.
J'ouvre la liste suivante de 6 ordres dans la deuxième fenêtre, mais avec des paramètres légèrement différents dans la fenêtre des paramètres d'entrée, etc.
Après l'ouverture de tous les ordres dans les fenêtres, je supprime tous les bots afin qu'après la fixation d'un profit par un bot supplémentaire qui ferme toutes les positions, le bot ne les ouvre pas à nouveau.
Pour l'instant 6 fenêtres sont suffisantes, bien sûr, je peux travailler dans une seule fenêtre et supprimer le bot à chaque fois que de nouvelles commandes sont ouvertes, mais c'est trop de problèmes).
Si vous êtes intéressé, je peux vous montrer la partie fonctionnelle du code.
Lors de l'ouverture de nouveaux ordres, vous devez définir deux paramètres dans les réglages, le troisième si nécessaire (le sens de la transaction est l'achat ou la vente).
Pour le moment le bot fait son travail, parfois il ralentit un peu lors de l'ouverture des commandes, mais je pense que c'est juste à cause d'un code trop long).
L'option d'un fichier texte avec une liste de symboles simplifierait le code et accélérerait considérablement son travail.


La deuxième liste et les réglages dépendent-ils de la première série de commandes, ou bien toutes les listes et les réglages sont-ils connus à l'avance ? J'aimerais jeter un coup d'œil à la partie fonctionnelle. Vous écrivez que les paramètres doivent être modifiés pour la deuxième liste/le deuxième ensemble d'ordres, mais vous ne précisez pas de quoi ils dépendent.

Raison: