![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Si après l'optimisation, il n'y a pas de résultats, cela signifie qu'avec toutes les combinaisons de tous les paramètres dans les plages spécifiées avec l'étape spécifiée, il n'y a pas d'option, lorsque le conseiller expert n'échouerait pas, ou qu'il n'a simplement pas négocié en raison de conditions obligatoires non remplies pour l'ouverture des positions. Essayez de jouer avec la taille du lot, la perte et la taille du dépôt initial, et lisez quelques pages en arrière et regardez le code.
Merci. J'ai parcouru tous les messages, mais je n'ai pas trouvé ma version. Je suis les instructions. Si quelque chose n'allait pas, comment l'optimisation fonctionnerait-elle de toute façon ? Pendant l'optimisation, il effectue quelques transactions, bien que, si je comprends bien, elles soient dix fois moins nombreuses que ce qu'elles devraient être ? Sur la sortie 0.
Et une autre chose, à propos de l'examen du code : je pourrais aussi bien lire le chinois, je ne peux même pas comprendre où la taille des arrêts est réglementée :).
Maintenant, j'ai essayé de lancer les présélections de manière cohérente et de les faire fonctionner pendant un mois, ce n'est pas génial, mais ça marche ! 10 métiers. Et après l'optimisation, il ne veut plus fonctionner du tout.
Une remarque constructive à SHOOTER777. Vous devez créer votre propre perceptron pour chaque indicateur ou en créer un universel pour n'importe quel indicateur, car vous utilisez votre propre indicateur et les "informations sont recueillies" par le perceptron de l'indicateur AO.
De quel indicateur parle-t-on ? Je vais expliquer le sens de la question. Cet EA utilise trois horizons temporels pour déterminer le moment et la direction de l'entrée. La direction du mouvement principal est déterminée sur H4 et cet indicateur n'est connecté à aucun Perceptron. Mais les entrées sur H1 dépendent de l'autre oscillateur, exactement AO, et elles ne sont en aucun cas reliées logiquement. Bien sûr, elle peut être modifiée. Je pensais que c'était aussi facile que sur H4. La seule chose dont vous avez besoin est dans la fonction
double iA_C (int pr){int tmfr=60 ; return(iAO(Symbol(), tmfr, pr));}
pour renvoyer son indicateur.
L'universalisation ne mène qu'à une optimisation de plus en plus longue, alors allez-y. Il y a probablement plus d'une douzaine de clones de cette EA qui sont actuellement testés. J'aimerais entendre des opinions différentes.
Oui. Bonsoir, tout le monde. L'indicateur le plus polyvalent est une ligne, de préférence oblique.
Mais sérieusement, au début du "post" il y avait une question sur le choix de l'ind.
J'ai pensé que je devais appliquer non pas un indicateur d'échantillonnage mais un indicateur d'échantillonnage. Nous pourrions continuer encore et encore
Mais je ne sais pas où cela mènera et cela semble trivial. C'est pourquoi je suggère
Ne vous laissez pas distraire par les fonctions multidevises et de protection, mais testez une seule devise avec différents indicateurs.
indicateurs. Je suppose que SHOOTER a fait ce travail, mais MACD a été utilisé.
Je me demande quels sont les autres ?
Merci.
Bien sûr, on peut tester une paire avec différents indicateurs, comme je l'ai fait toute l'année dernière. Mais en fin de compte, le schéma et l'algorithme que j'ai trouvés ne conviennent qu'à deux ou trois paires. Il est impossible de tester six ou huit paires avec trois ou cinq indicateurs par moi-même. Mais si l'on en teste un, un autre, le troisième, etc., et qu'on les compare ensuite, tout le monde serait gagnant.
Oui. Bonsoir, tout le monde. L'indicateur le plus polyvalent est une ligne, de préférence oblique.
Mais sérieusement, au début du "post" il y avait une question sur le choix de l'ind.
J'ai pensé que je devais appliquer non pas un indicateur d'échantillonnage mais un indicateur d'échantillonnage. Je pourrais continuer encore et encore
Mais je ne sais pas où cela mènera et cela semble trivial. C'est pourquoi je suggère
Ne vous laissez pas distraire par les fonctions multidevises et de protection, mais testez une seule devise avec différents indicateurs.
indicateurs. Je suppose que SHOOTER a fait ce travail, mais MACD a été utilisé.
Je me demande quels sont les autres ?
Merci.
Bien sûr, on peut tester une paire avec différents indicateurs, comme je l'ai fait toute l'année dernière. Mais en fin de compte, le schéma et l'algorithme que j'ai trouvés ne conviennent qu'à deux ou trois paires. Il est impossible de tester six ou huit paires avec trois ou cinq indicateurs par moi-même. Mais si l'on en teste un, un autre, le troisième, etc., et qu'on les compare ensuite, tout le monde serait gagnant.
Répéter ce que nous avons déjà vécu ))))
Il y a de telles lignes dans le code
bool TrBlnc = true ; int StrtBlnc = 3000 ; int DBlnc = 1500 ; int UBlnc = 4000 ;
a déclaré que (TrBlnc = true) est activé pour contrôler le trading en fonction du statut de l'équité.
La négociation s'arrête et n'est pas exécutée si le solde est inférieur à (DBlnc= 1500) de cette valeur ou supérieur à (int UBlnc= 4000).
Contrôle de l'exécution dans la fonction FLG().
Et maintenant, attention ! !! Initialisation
if ( IsOptimization( ) ) TrBlnc = false;//if ( IsTesting( ) ) TrBlnc = false ;
C'est-à-dire que s'il y a optimisation, le contrôle est désactivé, s'il y a un test ou un contrôle réel, il est activé.
J'espère l'avoir bien expliqué. Surveiller le solde initial ou supprimer et désactiver ce contrôle
De quel indicateur s'agit-il ? Permettez-moi d'expliquer le sens de la question. Cet EA utilise trois horizons temporels pour déterminer le moment et la direction de l'entrée. La direction du mouvement principal est déterminée sur H4 et cet indicateur n'est connecté à aucun perceptron. Mais les entrées sur H1 dépendent de l'autre oscillateur, exactement AO, et elles ne sont en aucun cas reliées logiquement. Bien sûr, elle peut être modifiée. Je pensais que c'était aussi facile que sur H4. La seule chose dont vous avez besoin est dans la fonction
double iA_C (int pr){int tmfr=60 ; return(iAO(Symbol(), tmfr, pr));}
pour renvoyer son indicateur.
L'universalisation ne conduit qu'à un temps d'optimisation plus long et plus délicat, alors allez-y. Il y a probablement plus d'une douzaine de clones de cette EA qui sont actuellement testés. J'aimerais entendre des opinions différentes.
Vous avez ajouté un autre indicateur dans une nouvelle version, oui, vous avez écrit une fonction pour lui, où vous retournez sa valeur, mais le Perceptron a été écrit pour la fonction iA_C !!!
double prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at)
{double qw = (q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(1) ;
si (MathAbs(qw)>at) return(qw);else return(0);}
......................................................................................................
......................................................................................................
void H1() { prcptx1 = prcptrnAC(x1,x2,x3,x4,px,tx) ;
prcpty1 = prcptrnAC(y1,y2,y3,y4,py,ty) ;
prcptX1 = prcptrnAC(X1,X2,X3,X4,pX,tX) ;
prcptY1 = prcptrnAC(Y1,Y2,Y3,Y4,pY,tY) ;
Imprimer (Flq ;)
BuSll (0,1,772012000) ;
}
J'ai trouvé un point intéressant :
Le conseiller expert effectue des transactions pendant la journée. À la fin de la journée, je vérifie ses performances - je les compare avec celles d'un testeur exécuté sur la même période. Voilà donc ce qui se passe : il y a des différences. C'est-à-dire les transactions qui ne sont pas similaires à celles effectuées par le conseiller expert attaché au graphique, avec les transactions effectuées par le conseiller expert dans le testeur de stratégie dans la même période. Au début, j'ai pensé qu'il y avait peut-être des irrégularités et j'ai regardé le journal - il est absolument clair. Mais après avoir redémarré le terminal (fermé et rouvert) et relancé le testeur de stratégie, les positions ouvertes et fermées coïncident. J'observe cette situation depuis 3 jours.
Vous avez donc ajouté un autre indicateur dans la nouvelle version, oui, vous avez écrit une fonction pour lui où vous retournez sa valeur, mais le perceptron est écrit pour la fonction iA_C !!!!.
double prcptrnAC(int q1,int q2,int q3,int q4,int pr,int at)
{double qw = (q1-50)+((q2-50)*iA_C(pr)+(q3-50)*iA_C(2*pr)+(q4-50)*iA_C(3*pr))/iA_C(1) ;
si (MathAbs(qw)>at) return(qw);else return(0);}
......................................................................................................
......................................................................................................
void H1() { prcptx1 = prcptrnAC(x1,x2,x3,x4,px,tx) ;
prcpty1 = prcptrnAC(y1,y2,y3,y4,py,ty) ;
prcptX1 = prcptrnAC(X1,X2,X3,X4,pX,tX) ;
prcptY1 = prcptrnAC(Y1,Y2,Y3,Y4,pY,tY) ;
Imprimer (Flq ;)
BuSll (0,1,772012000) ;
}
Revoyons tout ça.
L'indicateur, que j'ai ajouté dans la nouvelle version, est conçu pour déterminer la direction de la tendance sur le cadre temporel supérieur H4. Il n'est en aucun cas lié au perceptron, qui détermine les points d'entrée sur les plus petites échéances. Le fait que dans les premières versions j'ai utilisé l'oscillateur AO H4 et H1 est juste mon choix, une coïncidence si vous voulez.
Dans la fonction H1 il est également possible de changer les perceptrons, indépendamment de l'indicateur principal, je pense que ce n'est pas difficile, tout le monde peut le faire pour lui-même, je donnerai un exemple plus tard, mais je ne rendrai probablement pas ce bloc universel, il est trop lent et compliqué.