Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
lorsque vous démarrez votre Metatrader, l'EA doit vérifier si une transaction est ouverte.
Je ne fais que la boucle de décompte pour vérifier les transactions s'il y en a une.
Si je le règle au début sur un et que OrdersTotal() >0 alors je le fais vérifier les transactions if(.......> || .......> ){faire la boucle....
vous êtes sûr de m'avoir donné le code qui vous a donné les résultats montrés ci-dessus ? je l'ai testé sur la période 1440 (1 JOUR) et aucune transaction n'a été exécutée. cependant quand je l'ai changé pour 1M beaucoup de transactions ont été exécutées.
OK, c'est parti : ...... Je vais essayer d'aider si je peux.
Cette question sur Ma_Shift est une question que j'ai depuis un certain temps et pour laquelle je n'ai jamais pu obtenir une réponse claire.
Si vous remarquez que dans votre code vous utilisez un décalage de 8 sur vos moyennes mobiles.... qu'est-ce que cela signifie ?
Cela fait une différence de 3 pip dans la valeur de cette bougie de 08:00 comme indiqué ici dans la fenêtre de données.
Ce qui nous amène à la question suivante : à quoi sert le paramètre "Shift" à la fin ?
Eh bien, lorsque vous passez la souris sur votre graphique avec la fenêtre de données ouverte et que vous vous déplacez de bougie en bougie
vous verrez les chiffres changer pour la 5 SMA au fur et à mesure que vous allez de bougie en bougie...
C'est à cela que sert la dernière valeur SHIFT... en gardant à l'esprit que la bougie actuelle qui est dessinée est la bougie zéro...
est la bougie zéro... la dernière bougie terminée est la bougie 1, donc s'il y a 1000 bougies au total sur votre
votre graphique, elles sont numérotées à l'envers de 999 sur le bord gauche de votre graphique à 0 où vous êtes actuellement.
Donc si vous voulez savoir quelle était la valeur de la 5 SMA il y a 5 bougies terminées, vous mettez un 5 à cet endroit.
vous mettez un 5 à ce dernier endroit... bien sûr, au fur et à mesure que le temps passe... la bougie 5 sera remplacée par la bougie suivante.
Maintenant, comme cela a été mentionné ... si vous obtenez toujours la valeur de la bougie 0 ... alors cette valeur change constamment avec le prix.
change avec le prix. Donc, vous pouvez prendre un signal et ensuite l'indicateur se repeint sur vous ... mais si vous êtes
mais si vous demandez toujours l'information de la bougie 1, il est fait et ne changera pas....
J'espère que cela vous aidera...
J'ai tout refait, j'ai corrigé la boucle, le slippage, j'ai fixé les valeurs de la moyenne mobile et du RSI, je me suis assuré que toutes les positions ouvertes sont fermées avant de commencer une nouvelle position. Mais quand je le backtest, rien ne se passe, aucun achat/vente n'a été exécuté... quel est le problème ?
la fonction init() ne s'exécute qu'au démarrage et non pas à chaque tick comme la fonction start(). vous devrez remettre les moyennes mobiles dans la fonction start au lieu de la fonction init() pour que cela fonctionne et qu'il y ait toujours de nouveaux chiffres...
Retravaillé
Ajouter une fonctionnalité où l'EA vérifiera s'il y a des ordres en attente avant de décider d'ouvrir une nouvelle position. S'il y a un ordre en attente ou ouvert, il ne tentera pas d'en ouvrir d'autres.at
je vois que tout le monde utilise une boucle pour vérifier s'il y a une position ouverte avant d'acheter, je ne vois pas la logique de cela. tant que OrdersTotal est > 0 il y a des ordres ouverts et mon EA ne cherchera pas à ouvrir d'autres positions.
J'ai corrigé la boucle décroissante.
Cette fois-ci, il me donne l'erreur 138 OrderClose qui ne peut être résolue en ajoutant refreshrates()
et je finis toujours par perdre de l'argent alors que je ne devrais pas.
Je ne vois rien d'autre à corriger...
Retravaillé
Ajouter une fonctionnalité où l'EA vérifiera s'il y a des ordres en attente avant de décider d'ouvrir une nouvelle position. S'il y a un ordre en attente ou ouvert, il ne tentera pas d'en ouvrir d'autres.at
je vois que tout le monde utilise une boucle pour vérifier s'il y a une position ouverte avant d'acheter, je ne vois pas la logique de cela. tant que OrdersTotal est > 0 il y a des ordres ouverts et mon EA ne cherchera pas à ouvrir d'autres positions.
J'ai corrigé la boucle décroissante.
Cette fois-ci, il me donne l'erreur 138 OrderClose qui ne peut être résolue en ajoutant refreshrates()
et je finis toujours par perdre de l'argent alors que je ne devrais pas.
Je ne vois rien d'autre à corriger...
Pourquoi avez-vous placé la logique d'ouverture d'un achat avant de vérifier les transactions que votre EA a ouvertes sur votre compte ? ???.
Que va-t-il se passer maintenant ? ??? avec la programmation que vous avez jusqu'à présent ?
Supposons que vous ayez un compte sur lequel fonctionne votre EA. Vous ouvrez manuellement un trade pour GBPUSD.
Combien de transactions y a-t-il dans OrdersTotal() ?
Votre code.... pour BUY
Que fait-il maintenant ? et pour quelle raison ?
Pourquoi avez-vous placé la logique d'ouverture d'un achat avant de vérifier les transactions que votre EA a ouvertes sur votre compte ? ???.
Que va-t-il se passer maintenant ? ??? avec la programmation que vous avez faite jusqu'à présent ?
Supposons que vous ayez un compte sur lequel fonctionne votre EA. Vous ouvrez manuellement un trade pour GBPUSD.
Combien de transactions y a-t-il dans OrdersTotal() ?
Votre code.... pour BUY
Que fait-il maintenant ? et pour quelle raison ?
acheter uniquement si les conditions d'achat ont été remplies et si aucune position n'a été ouverte.
acheter seulement si les conditions d'achat ont été remplies et si aucune position n'a été ouverte.
Supposons que vous ayez un compte fonctionnant avec votre EA. Vous ouvrez manuellement un trade pour GBPUSD.
La condition sera-t-elle vraie
Vous pouvez me laisser jeter un coup d'œil à vos codes ?
Je veux savoir pourquoi j'ai échoué et comment le faire correctement.
.
Votre message à moi je peux vous donner le code complet directement.....
Ce ne sera pas gratuit. Pour cela, vous devez utiliser la sectionJobs et payer pour l'obtenir...
Vous l'obtiendrez alors là
.
Une autre façon est de lire vos sujets bien
Nous vous aidons ici à apprendre comment le programmer vous-même. C'est une aide gratuite.
Nous vous montrons vos erreurs et vous aidons dans la direction à résoudre.
Je montre le code que j'ai au moment où vous avez appris une façon de l'écrire ....
Pas besoin de payer et vous pouvez à ce moment-là le comparer avec le code que vous avez fait ici avec l'aide de ce forum.
....
ma dernière question n'a toujours pas reçu de réponse
Supposons que vous ayez un compte fonctionnant avec votre EA. Vous ouvrez manuellement un trade pour GBPUSD.
La condition sera-t-elle vraie ?
.
. Dans l'autre sujetOrderClose error 138
vous avez été très bien aidé(RaptorUK et WHRoeder merci pour les explications, je pense que c'est très bien fait).
.
Une autre question que j'ai pour vous est
Pourquoi avez-vous changé le Timeframe dans ce calcul de la moyenne mobile ?
Ce n'est pas la même chose que ce que j'ai donné,
Il ne calcule pas la bonne valeur sur l'autre graphique Daily.
.
Donc, prenez le temps d'apprendre et de pratiquer et lisez attentivement l'aide que vous recevez ici sur ce forum.
ou vous payez quelqu'un pour programmer pour vous sur un site comme Jobs.
Vous pouvez me laisser jeter un coup d'œil à vos codes ?
Je veux savoir pourquoi j'ai échoué et comment le faire correctement.
.
Votre message à moi je peux vous donner le code complet directement.....
Ce ne sera pas gratuit. Pour cela, vous devez utiliser la sectionJobs et payer pour l'obtenir...
Vous l'obtiendrez alors là
.
Une autre façon est de lire vos sujets bien
Nous vous aidons ici à apprendre comment le programmer vous-même. C'est une aide gratuite.
Nous vous montrons vos erreurs et vous aidons dans la direction à résoudre.
Je vous montre le code que j'ai au moment où vous avez appris une façon de l'écrire ....
Pas besoin de payer et vous pouvez à ce moment-là le comparer avec le code que vous avez fait ici avec l'aide de ce forum.
....
ma dernière question n'a toujours pas reçu de réponse
Supposons que vous ayez un compte fonctionnant avec votre EA. Vous ouvrez manuellement un trade pour GBPUSD.
La condition sera-t-elle vraie ?
.
. Dans l'autre sujetOrderClose error 138
vous avez été très bien aidé(RaptorUK et WHRoeder merci pour les explications, je pense que c'est très bien fait).
.
Une autre question que j'ai pour vous est
Pourquoi avez-vous changé le Timeframe dans ce calcul de la moyenne mobile ?
Ce n'est pas la même chose que ce que j'ai donné,
Il ne calcule pas la bonne valeur sur l'autre graphique Daily.
.
Donc, prenez le temps d'apprendre et de pratiquer et lisez attentivement l'aide que vous recevez ici sur ce forum.
ou vous payez quelqu'un pour programmer pour vous sur un site comme Jobs.
Est-ce queOrdersTotal() est censé révéler le montant total des ordres en attente et des ordres au marché, qu'ils aient été ouverts par l'EA ou manuellement ?
Je pensais de cette façon. Mon EA vérifie toujours s'il y a des ordres ouverts et s'il y en a, il n'ouvre plus d'ordres et il n'ouvre de nouveaux ordres que lorsqu'il n'y en a plus.
Je pense que cela fonctionne bien car ma section de résultats me montre la séquence d'ordres 1,1,2,2,3,3,4,4 ce qui signifie qu'un ordre est fermé avant qu'un nouvel ordre soit ouvert.
Les variables de la moyenne mobile et du RSI ont changé pour des raisons de test. Je l'ai expérimenté sur différentes périodes de temps mais je ne l'ai pas modifié quand je l'ai posté ici.
et le plus bizarre de tout, mon code n'exécute QUE les ordres d'achat. il n'a jamais exécuté ne serait-ce qu'un seul... ordre de vente. c'est tout simplement bizarre,
En résumé, les problèmes que je rencontre encore maintenant.
1. il n'exécute que l'achat mais jamais la vente malgré le fait que j'ai codé la vente.
2. je fais toujours des profits négatifs, ce qui, j'en suis sûr, n'est pas le but de cette stratégie.