Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 238
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
Pouvez-vous suggérer la chose suivante, il y a N EAs sur le compte, qui sous certaines conditions peuvent tous ouvrir un ordre en même temps, chacun d'entre eux ne vérifie pas plus d'un ordre sur le compte, mais parfois je me retrouve avec N ordres, que puis-je faire ?
Contactez-les, ils devineront probablement la raison et proposeront à distance une solution ;)
Bonjour, je voudrais à nouveau poser une question sur le placement d'un stop sur le dernier ordre.
Je tiens à préciser que dans le testeur, il arrive qu'un stop ne soit pas placé sur le dernier ordre.
Cela ne s'est pas produit jusqu'à présent sur les tests avant. Mais comme on dit, pourquoi attendre ?)
Code
Pouvez-vous suggérer la chose suivante, il y a N EAs sur le compte, qui sous certaines conditions peuvent tous ouvrir un ordre en même temps, chacun d'entre eux ne vérifie pas plus d'un ordre sur le compte, mais parfois je me retrouve avec N ordres, que puis-je faire ?
lire les articles
Pause entre les transactions
Erreur 146 ("Trade flow busy") et comment y rem édierlire les articles
Pause entre les transactions
Erreur 146 ("Trade flow busy") et comment y rem édierMerci ! !!
Êtes-vous sûr que cette partie du code est la source du problème ? D'après ce que vous avez montré, il est difficile de tirer des conclusions - il y a beaucoup de variables inconnues et vous ne pouvez pas voir l'ouverture elle-même.
Pour trouver la raison vous-même, imprimez ou affichez les valeurs des variables avec des commentaires. Vous pourrez alors voir leurs valeurs à tout moment.
Ceci est basé sur le conseiller expert eOpenByTime de M. Kim. J'ai également ajouté un stop suiveur, fermé à la fin de la semaine et ouvert à un certain jour de la semaine. Sous cette forme, le conseiller expert fonctionne comme il se doit.
L'ouverture du marché se fait de la manière suivante, j'ai ajouté seulement le jour d'une semaine d'ouverture du marché mais il n'y a rien à redire ici.
Pour être honnête, je ne comprends pas bien pourquoi TimeCurrent est comparé à TimeCurrent + TimeTradeOpen où TimeTradeOpen est un paramètre externe du type TimeTradeOpen = "19:51". (C'est en fait le temps d'ouverture de poste dont nous avons besoin.) Je ne comprends pas non plus pourquoi cette comparaison fonctionne. La durée est le temps pendant lequel le conseiller expert va essayer d'ouvrir une position.
Par analogie, j'ai ajouté la clôture d'une position le vendredi.
Jusqu'à présent, tout fonctionnait.
Puis j'ai voulu ajouter une condition qui regarde un chandelier à une heure donnée et un jour donné de la semaine, si le chandelier est haussier, alors on vend, s'il est baissier, alors on achète.
De la même manière, j'ai copié ces 3 lignes, qui ont fonctionné auparavant, mais maintenant, pour une raison quelconque, elles ne veulent plus.
Ensuite, le code pour l'ouverture de la position suit. TimeTradeIf a un format similaire TimeTradeIf = "19:51" et est également défini par des paramètres externes.
Le code entier est assez long, avez-vous besoin d'insérer ?
Bonjour, je voudrais à nouveau poser une question sur le placement d'un stop sur le dernier ordre.
Je tiens à préciser que dans le testeur, il arrive qu'un stop ne soit pas placé sur le dernier ordre.
Cela ne s'est pas produit jusqu'à présent sur les tests avant. Mais comme on dit, pourquoi attendre ?)
Code
J'ai trouvé le problème. Le code est OK. C'est l'écrivain qui demande l'impossible ;))
Il est basé sur le conseiller expert eOpenByTime de l'estimé M. Kim. J'ai également ajouté un stop suiveur, fermé à la fin de la semaine et ouvert à un certain jour de la semaine. Sous cette forme, l'EA fonctionne comme il se doit.
L'ouverture du marché est effectuée de la manière suivante, seul le jour de la semaine de l'ouverture du marché est ajouté par moi mais il n'y a pas de place pour l'erreur ici.
Pour être honnête, je ne comprends pas bien pourquoi TimeCurrent est comparé à TimeCurrent + TimeTradeOpen, où TimeTradeOpen est un paramètre externe du type TimeTradeOpen = "19:51". (C'est en fait le temps d'ouverture de poste dont nous avons besoin.) Je ne comprends pas non plus pourquoi cette comparaison fonctionne. La durée est le temps pendant lequel le Conseiller Expert va essayer d'ouvrir une position.
Par analogie, j'ai ajouté la clôture d'une position le vendredi.
Jusqu'à présent, tout fonctionnait.
Puis j'ai voulu ajouter une condition qui regarde un chandelier à une heure donnée et un jour donné de la semaine, si le chandelier est haussier, alors on vend, s'il est baissier, alors on achète.
De la même manière, j'ai copié ces 3 lignes, qui ont fonctionné auparavant, mais maintenant, pour une raison quelconque, elles ne veulent plus.
Ensuite, le code pour l'ouverture de la position suit. TimeTradeIf a un format similaire TimeTradeIf = "19:51" et est également défini par des paramètres externes.
Le code entier est assez long, dois-je le coller ?
Pour être honnête, j'ai déjà oublié quel est le problème. Dans cette section de code, je vois que seules les positions courtes sont vérifiées et que l'ouverture des positions courtes est également spécifiée :
Pour être honnête, j'ai oublié quel est le problème. Dans cette section de code, je vois que seules les positions courtes sont vérifiées et que seules les positions courtes sont ouvertes :
La variable Sell est externe et contient true ou false, 1 ou 0, respectivement,
Celle de Kim est eOpenByTime.
La logique, l'algorithme des actions, est défectueux.
S'il veut bien laisser tomber la fonction start() et les variables, ce qu'elles portent, alors nous pourrons proposer quelque chose.
Artem, c'est correct, la variable Sell est externe et porte la valeur true ou false, 1 ou 0 respectivement,
J'ai regardé celui de Kim, eOpenByTime.
La logique, l'algorithme des actions, est défectueux.
S'il voulait bien montrer la fonction start() et les variables, ce qu'elles portent, alors nous pourrions suggérer quelque chose.
L'idée est la suivante : si une bougie est haussière un certain DayOfWeekIf à un certain moment TimeTradeIf, alors Sell = vrai (vendre), si elle est baissière, alors Sell = faux (acheter).
Il devrait l'être, mais dans le test, je ne reçois que des échanges à vendre.
eOpenByTime permet d'ouvrir une transaction à un moment donné, j'en ai ajouté d'autres à un jour de la semaine donné if (DayOfWeek()==DayOfWeekOpen, où DayOfWeekOpen = 1,2,3,4,5
Je joins le code en deux parties, il n'y a pas d'autre solution, j'ai mis en évidence la condition problématique. Tout fonctionne comme il se doit sans lui, c'est-à-dire que nous mettons en place Sell et ouvrons une affaire au bon moment, le bon jour de la semaine.
Seul le chalut a été coupé.