"Erreur "Ordre introuvable
3 réponses
odomike
Il y a 12 ans #111948
Bonjour,
J'ai décidé de créer un EA basé sur le système de trading manuel SonicR (http://www.forexfactory.com/showthread.php?t=114792). Au lieu d'utiliser les mêmes indicateurs personnalisés qu'ils ont utilisés dans la stratégie, j'ai décidé d'utiliser les indicateurs standard de MT4 (EMA 34 High et Low, CCI Period 63, SMA 10 Close) pour répliquer la stratégie. Ceci afin de m'assurer que je ne rencontre aucun problème avec l'EA Wizard de SQ. Je n'ai pas eu de problèmes pour configurer la stratégie et les règles de trading dans SQ, mais après avoir sauvegardé le fichier .mql4 et testé à nouveau dans Metatrader 4, j'obtiens toujours cette erreur "ORDER CANNOT BE FOUND" dans le journal du testeur et l'EA ne place aucun trade du tout. C'est très déroutant car j'ai passé en revue la stratégie et les règles de trading encore et encore pour m'assurer qu'il n'y avait pas d'erreurs et je n'en vois vraiment pas. Alors pourquoi est-ce que je reçois ces erreurs ?
Quelqu'un peut-il m'aider à résoudre ce problème ? J'apprécie vraiment tous vos gestes de gentillesse.
Merci d'avance.
~Michael.
N.B : Comme je n'ai pas utilisé d'indicateurs personnalisés pour créer cette stratégie, vous pouvez la reproduire très facilement sur votre ordinateur.
0
stearno
Il y a 12 ans #123679
Odomike,
Le problème est que 3 règles se croisent au-dessus/en dessous en même temps dans cet EA. Une bonne règle de base consiste à ne faire passer qu'une seule règle au-dessus/au-dessous alors que les autres règles utilisent > ou < à la place.
J'ai placé vos indicateurs sur un graphique pour montrer pourquoi.
Les petites lignes verticales bleues indiquent le moment où la bougie passe en dessous de la MA1, puis de la MA2, et enfin lorsque le CCI passe en dessous du niveau 2. Il y a 6 bougies entre le croisement du premier MA et le croisement du CCI. Comme elles ne se croisent pas toutes exactement au même moment, c'est la raison pour laquelle vous obtenez le message d'erreur.
Vous devez donc utiliser le Cross Below/Above pour le dernier élément qui se croisera dans la séquence des trois indicateurs. Par exemple, si l'indicateur CCI est toujours le dernier à se croiser, vous pouvez utiliser ces règles :
Longues
L'indice CCI dépasse le niveau 1
Offre > MA1
Offre > MA2
Si un indicateur n'est pas toujours le dernier à se croiser, ce qui signifie qu'ils peuvent se croiser dans n'importe quel ordre, vous pouvez alors rédiger les règles en conséquence. Vos règles pourraient donc être les suivantes :
Longues
((( L'indice CCI dépasse le niveau 1
Offre > MA1
Offre > MA2)
OR (CCI > Niveau 1
L'offre passe au-dessus de la MA1
Offre > MA2)
OR (CCI > Niveau 1
Offre > MA1
L'offre passe au-dessus de la MA2)))
J'espère que cela vous aidera.
-Stearno
0
odomike
Il y a 12 ans #123711
0
stearno
Il y a 12 ans #124327
Michael,
De bonnes questions.
Pour limiter le temps, j'ai joint des captures d'écran de ce que je fais personnellement. J'utilise l'heure comparée à une variable. Je définis ensuite les variables dans les paramètres pour les heures que je souhaite négocier.
Personnellement, j'utilise deux séries d'heures afin d'avoir la possibilité d'effectuer des transactions sur deux sessions dans la même journée (par exemple, London Open et NY Open). J'utilise des paramètres pour définir les variables afin d'optimiser ces paramètres. Vous pouvez prendre cette même idée et faire de nombreuses variations qui correspondent le mieux à ce que vous voulez.
Je pense que votre stratégie est bonne. Avez-vous essayé de la tester ? Au fait, j'ai constaté qu'il est toujours préférable de commencer par un backtest pour voir si les ordres sont exécutés et ainsi de suite. Mais ensuite, je fais un backtest visuel pour observer les indicateurs que l'EA va utiliser sur le graphique afin de voir visuellement chaque fois que l'EA est censé ouvrir ou fermer un ordre et de m'assurer qu'il fait ce que je veux. Je peux alors déduire pourquoi ce n'est pas le cas et apprendre à mieux dire à l'ordinateur, par le biais de ces conditions, comment faire ce que je veux qu'il fasse.
Pour ce qui est de vos autres questions, à savoir quand utiliser >< et quand utiliser la croix au-dessus/en dessous.
Un moyen facile de s'en souvenir, que j'utilise pour les différencier, est le suivant : les croix au-dessus / au-dessous, le début de la barre doit être d'un côté et la fin de la barre de l'autre côté.
Avec ><, c'est beaucoup plus lâche, car choisir cette option revient à dire que la barre doit être au-dessus ou au-dessous de l'élément de comparaison. Il n'est pas important de savoir si la barre est passée au-dessus maintenant, si elle a été au-dessus il y a plusieurs barres, si elle a toujours été au-dessus, etc. Tout ce qui compte, c'est qu'au moment où l'EA exécute cette règle, la barre doit être supérieure ou inférieure à (au-dessus ou au-dessous).
J'ai inclus un petit graphique pour l'illustrer avec des images. La ligne rouge est la moyenne mobile.
Si je dis Close[1] < Moyenne mobile, j'obtiens la barre 'A' ;.
Si je dis que Close[1] > Moyenne mobile, j'obtiendrai la barre 'C'.
Si je dis que Close[1] passe au-dessus de la moyenne mobile, j'obtiens la barre ' B'.
Fondamentalement, nous devons nous demander : "À ce moment-là (dans l'exemple ci-dessus, nous utilisons la clôture de la dernière barre à ce moment-là, Close[1]), est-ce que je veux que mon indicateur soit au-dessus de la clôture, en dessous de la clôture, ou est-ce que je veux que le bas de la dernière barre soit d'un côté de l'indicateur et le haut de l'autre côté.
Un exemple pourrait peut-être vous aider. Voici un exemple de ce que j'ai appris en utilisant ces comparaisons :
Lorsque l'on utilise > 30 pips. Ainsi, lorsque l'ordre à 29 pips de profit et que l'ordre suivant est passé à 30 pips, la règle a déclenché l'action de fermer 50% de l'ordre. Sur la barre suivante, l'ordre est passé à 31 pips de profit. Devinez ce qui s'est passé. Le profit de l'ordre est toujours supérieur à 30 pips. L'action a donc été déclenchée à nouveau et a clôturé 50% de l'ordre. Cela a continué jusqu'à ce qu'il n'y ait plus qu'un mini-lot et qu'il ne soit plus possible de fermer 50%. Mais je dois dire que le backtesting était amusant parce que lorsque je regardais l'EA visuellement, il fermait les ordres comme une mitrailleuse.
J'ai donc compris que la cause de ce problème était que j'avais utilisé Profit > 30 pips. Et ce dont je ne me souvenais pas, c'est que 31, 32, 33, 34 pips sont tous supérieurs à 30. J'ai donc utilisé close 50% lorsque Profit croise plus de 30 pips. Cela a fonctionné, il est passé de 29 à 30 pips en une barre, et a ensuite clôturé 50% de mon ordre. Maintenant, quand il est passé à 31, 32, 33, 34 pips de profit, il n'a pas fermé d'autres ordres.
Mais le problème avec cette règle était que le profit redescendait à 25, puis remontait à 29 et 30 et que l'ordre était clôturé à 50% parce que la règle était à nouveau satisfaite (ce qui n'a rien à voir, mais la façon dont j'ai résolu le problème était que lorsque la règle fixait la valeur d'une variable à 2). (Cela n'a rien à voir, mais la façon dont j'ai résolu le problème était que lorsque la règle fermait 50% de l'ordre, elle fixait également la valeur d'une variable à 2. J'ai ensuite ajouté une autre condition à la règle qui disait de ne pas faire de fermeture partielle lorsque cette variable = 2. Cela a résolu mon problème et a permis de ne fermer l'ordre qu'une seule fois.)
J'espère que ce qui précède vous aidera.
-Stearno
0
Affichage de 3 réponses de 1 à 3 (sur un total de 3)