LECTURE SEULEMENT

Le forum est désormais une archive en lecture seule.

Pour les rapports de bogues et les questions relatives à la plateforme → [email protected]

Notre communauté vit sur Discord et YouTube - rejoignez-nous !

JOIGNEZ-NOUS SUR Discord YouTube

"Erreur "Ordre introuvable

3 réponses

odomike

Abonné, bbp_participant, communauté, 32 réponses.

Visiter le profil

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

Client, bbp_participant, communauté, 379 réponses.

Visiter le profil

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

Abonné, bbp_participant, communauté, 32 réponses.

Visiter le profil

Il y a 12 ans #123711

Merci beaucoup stearno. J'ai décidé de ne pas poursuivre la construction de mon EA basé sur le système SonicR. J'ai remarqué quelques lacunes qui ont motivé ma décision.
J'ai décidé de construire un autre EA basé sur le RSIOMA_V2 l'indicateur. J'ai ajouté l'indicateur personnalisé à l'EA Wizard et il a reconnu toutes les propriétés de l'indicateur. Dans les paramètres de ma stratégie, j'ai ajouté les propriétés de l'indicateur parmi les paramètres configurables par l'utilisateur pour l'EA. Maintenant, dans les règles de la stratégie, j'ai fait ceci ... 
 
SpreadInPips <= Marge maximale autorisée (La valeur par défaut est 2. J'essaie d'utiliser cette valeur pour éviter les coups de fouet dus aux communiqués de presse pendant que l'EA est en train de négocier).
RSIOMA passe en dessous de Sell_Trigger (La valeur par défaut de RSIOMA est 14 et celle de Sell_Trigger est 70).
 
L'idée est qu'une fois que le RSIOMA oscillant plonge et passe en dessous de 70, une opération de vente doit être déclenchée. Voilà pour la règle d'entrée en position courte.
 
Ensuite, pour la règle de l'entrée longue :
 
SpreadInPips <= MaxAllowedSpread
RSIOMA passe au-dessus de Buy_Trigger (La valeur par défaut de Buy_Trigger est 30)
 
Même principe que le déclenchement de la vente ... RSIOMA dépasse 30 et l'EA déclenche une opération d'achat.
Et lorsque la tendance est déjà en marche et qu'il y a un léger renversement, puis que la tendance se poursuit, alors.. :
 
SpreadInPips <= MaxAllowedSpread
RSIOMA passe en dessous de Buy_Trigger
 
OU
 
SpreadInPips <= MaxAllowedSpread
RSIOMA passe au-dessus deSell_Trigger
 
Mon problème est que je ne sais pas quand utiliser et quand utiliser les croisements en dessous ou les croisements au dessus ou comment configurer tout pour que tout fonctionne bien. Et je continue à obtenir cette erreur ennuyeuse dans le journal du testeur de stratégie : "BROKER STOP DIFFERENCE : 0.00". Je ne sais pas ce que cela signifie. Cette erreur apparaît une fois que l'EA démarre et ensuite, l'EA ne place pas de trades. Et j'obtiens toujours cette erreur :
 
"TestGenerator : unmatched data error (high value 171.18600 at 2014.03.12 09:05 is not reached from the least timeframe, high price 171.17400 mismatches)"
 
Je vous prie de m'aider.
 
Deuxièmement, comment puis-je contrôler le temps pendant lequel l'EA effectue des transactions et le temps pendant lequel il ne doit pas effectuer de transactions ? Disons par exemple :
 
1. Je veux que mon EA commence à trader de 1:00 à 6:00 GMT, puis s'arrête et ne place plus de trades.
2. Elle reprend ensuite de 8h00 GMT à 20h00.
 
Comment puis-je y parvenir ? Je sais que l'assistant EA peut effectuer de telles tâches, mais avec difficulté. Je pense que je ne fais pas quelque chose de correct et j'obtiens toujours une erreur chaque fois que j'essaie de faire fonctionner ce système.
 
Merci encore pour votre aide et votre soutien. Je vous en suis très reconnaissant.
——————————————————————————————
 
N.B : L'image ci-jointe montre les points d'entrée possibles pour les ordres d'achat et de vente dans le graphique présenté. Et les 2 dernières parties des règles de la stratégie ne sont pas dans le fichier source que j'ai joint. Merci de m'aider.
Fichier : RSIOMA_v2.mq4

0

stearno

Client, bbp_participant, communauté, 379 réponses.

Visiter le profil

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&#039 ;.  

 

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)