Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1386
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
C'est drôle) ça ne devrait pas l'être)
Si la bataille est terminée - négociez avec un spread normal, retirez simplement sa "limite" dans l'entrée et ignorez la transaction si le spread est supérieur à la limite.
Les spreads peuvent être étirés par des dillings sans rollover.
J'ai pas mal d'écarts, de 10 à 45 unités.
Je dois attendre l'écran 45.
En même temps, la fonction compte une moyenne de 17, ce qui est tout à fait satisfaisant.
Il monte à 100-140 pendant 1 heure après le rollover, je vais exécuter le code et voir comment il se comporte.
Vous pourriez cependant le prescrire de cette façon :
Il devrait fonctionner correctement.
Je n'aime pas cette logique.
La première entrée de la fonction :
res = 0;
Par conséquent, la condition
n'est pas satisfaite.
Et je ne veux pas entrer davantage dans les détails. Pourquoi cette condition est-elle soudaine ?
Je ne comprends pas la logique de tout ça.Je n'aime pas cette logique.
La première entrée de la fonction :
res = 0;
Par conséquent, la condition
n'est pas rempli.
Et je ne veux pas en parler davantage. Pourquoi cette condition soudaine ?
Je ne comprends pas la logique de tout ça.1. cette condition ne concerne que l'heure qui suit le retournement, alors que l'heure est de 22 heures. Mais ce n'est qu'au premier démarrage, alors que le terminal fonctionne toujours avec le conseiller expert, ce qui signifie qu'il n'est vide qu'une seule fois.
Il faudrait peut-être aussi le déclarer comme statique en cas de changement de calendrier.
2. if(tc>LONG_MAX-1) = on remet à zéro la variable tc si on a dépassé les limites admissibles de long. Il est peu probable que cela se produise, car le terminal est parfois surchargé, par exemple le week-end.
---
Code modifié, cela doit être définitif :
P.S. Mettez-le à l'épreuve
P.S. J'ai révisé le code
----
P.S.S.S. J'ai ajouté 1 heure de plus après le rollover, sinon j'ai un spread très élevé sur certains dealers.
La variante finale a travaillé 20 heures et le résultat est étonnant.
L'écart quotidien moyen est de 10 à 45 pps, mais la plupart du temps il est de 10 à 17 pps, l'écart moyen a été calculé comme étant de 19 %.
Merci à tous pour votre participation, si vous avez quelque chose à ajouter - écrivez !
Peut-être devrait-il également être déclaré statique, en cas de changement de calendrier.
J'ai compris, ça a l'air de fonctionner, je retire "ça ne devrait pas"), maintenant il me reste juste à comprendre les moments de remise à zéro/affectation.
J'ai vu une discussion sur le forum, mais je ne la trouve pas.
J'ai besoin de me limiter à une position sur une barre qui peut être ouverte à tout moment, c'est une option maintenant, mais c'est "lourd" à mon avis.
Comment peut-on le remplacer pour l'alléger ?
J'ai vu une discussion sur le forum, mais je ne la trouve pas.
Besoin d'être limité à une position sur un bar qui peut être ouvert à tout moment, c'est une option maintenant, mais c'est "lourd" à mon avis
Comment peut-on le remplacer pour l'alléger ?
"Vous devez vous limiter à une seule position sur la barre, qui peut être ouverte à tout moment..."
En termes trop généraux, voulez-vous dire qu'une fois sur la barre de ce symbole, vous pouvez envoyer OrderSend?
"Vous devez vous limiter à une seule position sur la barre, qui peut être ouverte à tout moment..."
la formulation est trop générale, voulez-vous dire qu'une fois par barre dans ce symbole vous pouvez envoyer OrderSend?
Oui. Le conseiller expert travaille sur l'échelle de temps H1 et peut ouvrir une position à 10:17, il ne doit pas en ouvrir une autre avant 11:00, c'est-à-dire sur la barre actuelle.
Oui. L'EA travaille sur le cadre temporel H1 et peut ouvrir une position à 10:17, vous devez vous assurer qu'avant 11:00, c'est-à-dire sur la barre actuelle - il ne s'ouvre plus.
Yep, encore une fois, je pense que le diable est dans les détails.
ouvrir une position - mettre un "ban flag" et/ou enregistrer le "temps" (peu importe lequel, tant que c'est le même (source) pour la comparaison)
un nouveau bar est ouvert - le "ban flag" est activé...
Question : Que se passe-t-il si la position a changé d'une manière ou d'une autre ?
Exemple de la façon dont je définis une nouvelle barre - diviseur doTB en secondes, pour H1 c'est 3600.0
BARii[].time - temps des barres avec M1, mais il peut être arbitraire et avec n'importe quelle division, s'il est supérieur ou égal à 1, cela signifie le "temps" de différentes "barres".
Yep, encore des conditions incomplètes à mon avis, "le diable est dans les détails", en termes simples si le texte
ouvert une position - mettre un "drapeau de bannissement" et/ou économiser le "temps" (peu importe lequel, tant qu'il s'agit de la même (source) pour la comparaison)
un nouveau bar est ouvert - le "ban flag" est activé...
Question : Que se passe-t-il si la position a changé d'une manière ou d'une autre ?
Exemple de la façon dont je définis une nouvelle barre - diviseur doTB en secondes, pour H1 c'est 3600.0
BARii[].time - temps des barres avec M1, mais il peut être arbitraire et avec n'importe quelle division, s'il est supérieur ou égal à 1, il signifie le "temps" de différentes "barres".
Je n'étais pas satisfait de l'option utilisant des drapeaux à ce moment-là ; je ne me souviens pas pourquoi, mais je l'ai remplacée par
OK, je vais réfléchir à une autre mise en œuvre
Je n'étais pas satisfait de l'option drapeaux à l'époque, je ne me souviens plus pourquoi, mais je l'ai remplacée par
Ok, je vais réfléchir à une autre implémentation.
Et que retient cette mise en œuvre ? Similaire à mon code détermine deux fois dans une "barre" ou dans différents. Juste dans ma variante "vrai" quand dans différentes "barres", dans votre variante "vrai" quand dans une seule barre, il suffit de contourner la comparaison == avec "0" en particulier l'entier, wo, et je peux probablement changer la condition à >0,0 ou >0,9, besoin de réfléchir....