Aide pour le 6ème degré de Poly ! - page 2

 
gooly:

Bonjour dennisj2,

Êtes-vous sûr d'avoir vraiment besoin de votre formule ?

Peut-être que vous devriez d'abord chercher d'autres filtres comme Kalman, Ehlers, Gauss, Jurik (JMA), DEMA. La plupart d'entre eux sont dérivés des filtres de fréquence (physiques) passe-bas et la plupart d'entre eux ont trouvé leur chemin dans le code mt4.

Peut-être qu'un JMA (il existe de nombreuses variantes) avec une période plus longue correspond à ce que vous recherchez ?



Avez-vous des liens que je puisse rechercher ?

 
dennisj2:



SDC - vous êtes maintenant au même niveau que moi - la formule de régression linéaire que j'ai trouvée fonctionne - et il y a deux formules nettement différentes que j'ai trouvées et qui produisent des résultats identiques. Ces formules sont excellentes si la régression linéaire (une ligne de tendance droite) est ce que nous recherchons.

Tout d'abord, quelques documents de référence :

Microsoft : http://office.microsoft.com/en-us/excel-help/linest-HP005209155.aspx

IntegralCalc : https://www.youtube.com/watch?v=1pawL_5QYxE&noredirect=1


Étant donné l'équation de régression linéaire y = mx + b :

Où y = prix, (par exemple, Close[x])

et x = indice (par exemple, Bar[x])

et m = Pente (le coefficient appliqué à chaque paire (x,y))

et b = Intersection en Y (la valeur de base de l'intersection en Y appliquée à chaque paire (x,y))


Méthode A : A partir d'IntegralCalcMéthode B : A partir de Microsoft (où x(overbar) et y(overbar) sont des moyennes)


Même la formule de la ligne de tendance de régression polynomiale au nième degré est relativement facile à appliquer :

Étant donné la formule : y = m1*x1 + m2*x2 + m3*x3 + .... + b

Où les variables x, y, m et b ont la même définition que celle décrite dans l'équation linéaire.

Il semble que j'ai tout, alors que manque-t-il ?

Ce qui manque, c'est le calcul de m (pente) et de b (ordonnée à l'origine) pour une régression polynomiale ; l'équation linéaire pour calculer ces valeurs ne s'applique pas à une régression polynomiale. D'après ce que j'ai appris, la régression polynomiale nécessite une formule qui calcule les moindres carrés sur la base d'un système d'équations polynomiales utilisant une matrice. Regardez les exemples de graphiques ci-dessus. Dans le premier graphique, les lignes poly(6) sont absolument immaculées - les sommets et les creux sont clairement indiqués. Grâce à ces données, je serai en mesure de conserver mes transactions plus longtemps que je ne le fais aujourd'hui, ce qui me permettra de doubler, voire de tripler, le nombre moyen de pips par transaction.

Dans le deuxième graphique, je montre les résultats de la méthode poly(6) par rapport à la méthode i-regr qui utilise une matrice de Gauss pour résoudre les coefficients de pente - et, inutile de le dire, c'est assez inutile en raison de la latence importante de la méthode. D'autre part, une moyenne mobile simple est encore pire - la SMA est beaucoup trop sensible lors des corrections intermédiaires du marché qui pourraient provoquer une réaction excessive de mon EA.

Je suis prêt à payer quelqu'un pour développer un véritable indicateur de régression polynomiale - mais, les résultats doivent absolument refléter les résultats qu'Excel produit. La fonction LINEST() est une boîte noire où beaucoup de vaudou est utilisé pour calculer les coefficients. Tout simplement, j'ai besoin de comprendre ce voodoo.

Mise à jour : j'ai joint un fichier montrant la méthode mise en œuvre dans Excel.


J'ai codé une régression linéaire il y a quelque temps ; voici le lien vers mon code : Régression linéaire Je ne garantis pas qu'il soit 100% correct cependant, je pense avoir identifié un problème avec l'utilisation de l'indice x zéro dans les calculs, que j'ai corrigé quelque temps plus tard.

J'ai également codé une version mobile de ce code, la version mobile crée une parabole similaire à une moyenne mobile lissée parce qu'à chaque barre, elle ne dessine que la dernière coordonnée de la ligne de régression linéaire.

J'ai essayé d'apprendre comment utiliser un poly nominal du 2ème degré pour votre ligne. Je me suis dit que si nous pouvions le faire avec une quadratique, nous pouvions l'étendre à un 6ème degré.

Je vais lire vos liens et voir si je peux apprendre quelque chose,

 
SDC:

J'ai codé une régression linéaire il y a quelque temps ; voici le lien vers mon code : Régression linéaire Je ne garantis pas qu'il soit 100% correct, je pense avoir identifié un problème avec l'utilisation de l'indice x zéro dans les calculs, que j'ai corrigé quelque temps plus tard.

J'ai aussi codé une version mobile de cette régression, la version mobile crée une parabole similaire à une moyenne mobile lissée parce qu'à chaque barre, elle ne dessine que la dernière coordonnée de la régression linéaire.

J'ai essayé d'apprendre comment utiliser un poly nominal du 2ème degré pour votre ligne. Je me suis dit que si nous pouvions le faire avec une quadratique, nous pouvions l'étendre à un 6ème degré.

Je vais lire vos liens et voir si je peux apprendre quelque chose,


SDC : Je suis d'accord - un quadratique pourrait ne pas être suffisant, mais j'ai tendance à croire qu'un cubique pourrait être suffisant pour étendre à des degrés plus élevés.
 
dennisj2:


Avez-vous des liens que je peux rechercher ?

Juste google : indicateur mt4

et ensuite un des noms..

Peut-être que vous ajoutez (lowpass) filtre.

Certains sont dans la base de code mt4 - certains seulement pas et nous ne devrions pas poster des liens externes ...

 
DDC : J'ai un autre lien - qui pourrait être exactement ce dont nous avons besoin
 
N'oubliez pas que la régression est un ajustement de courbe et que, comme quelqu'un l'a déjà fait remarquer, les régressions modifient la peinture. Je ne suis pas sûr de la valeur prédictive de l'ajustement de courbe pur. D'après mes propres expériences, leur valeur prédictive n'était pas très bonne.
 
rocketman99:
N'oubliez pas que la régression est un ajustement de courbe et, comme quelqu'un l'a déjà souligné, les régressions repeignent. Je ne suis pas sûr de la valeur prédictive de l'ajustement pur des courbes. D'après mes propres expériences, leur valeur prédictive n'était pas très bonne.



Rocketman,

Je suis en partie d'accord avec vous, dans la mesure où les modèles de régression ont tendance à repeindre les tendances historiques et ne sont pas très fiables. C'est clairement le cas de l'indicateur i-regr - j'ai regardé cet indicateur fonctionner en direct ces derniers jours et je peux honnêtement dire que cet indicateur n'offre aucune valeur pour trois raisons : 1) il est hypersensible aux corrections à court terme, et 2) sa latence sévère (avec l'EA e-regr) au moment où l'indicateur peint la borne inférieure du point d'entrée pour les positions longues, ou la borne supérieure pour les positions courtes, le marché a largement dépassé les points d'entrée et, dans la plupart des cas, est contraire à la tendance du marché, et 3) d'après la seule observation, lorsque le marché se dirigeait vers le haut, l'indicateur pointait vers le bas, et vice-versa, donc son utilisation comme indicateur de tendance directionnelle est fiable à 50% au mieux.

La semaine dernière, l'USDJPY tournait autour de la zone 102.35-102.50, i-regr a montré une tendance du marché à la baisse (il s'était incurvé vers le bas et se déplaçait vers le bas), e-regr a émis une vente, puis l'indicateur juste 5 périodes après est passé à long et a repeint comme s'il avait toujours été long alors que l'USDJPY avançait jusqu'à 104.20).

Pour appuyer le point de vue selon lequel les indicateurs de type re-paint n'offrent aucune valeur et ne sont pas fiables - étant donné ce que j'ai vu travailler dans les librairies MQL4 disponibles, je vous assure que je comprends la frustration exprimée par ceux qui ont travaillé avec ces indicateurs - étant donné ce que nous avons, rien ne fonctionne. Cela dit, je n'ai toujours pas vu d'indicateur de régression polynomiale fiable qui calcule jusqu'au 6e degré. Je peux également assurer qu'une fois que nous aurons une régression polynomiale fiable, les résultats seront spectaculaires.

 
dennisj2:



Rocketman,

Je suis en partie d'accord avec vous, dans la mesure où les modèles de régression ont tendance à repeindre les tendances historiques et ne sont pas très fiables. C'est clairement le cas de l'indicateur i-regr - j'ai regardé cet indicateur fonctionner en direct ces derniers jours et je peux honnêtement dire que cet indicateur n'offre aucune valeur pour trois raisons : 1) il est hypersensible aux corrections à court terme, et 2) sa latence sévère (avec l'EA e-regr) au moment où l'indicateur peint la borne inférieure du point d'entrée pour les positions longues, ou la borne supérieure pour les positions courtes, le marché a largement dépassé les points d'entrée et, dans la plupart des cas, est contraire à la tendance du marché, et 3) d'après la seule observation, lorsque le marché se dirigeait vers le haut, l'indicateur pointait vers le bas, et vice-versa, donc son utilisation comme indicateur de tendance directionnelle est fiable à 50% au mieux.

La semaine dernière, l'USDJPY tournait autour de la zone 102.35-102.50, i-regr a montré une tendance du marché à la baisse (il s'était incurvé vers le bas et se déplaçait vers le bas), e-regr a émis une vente, puis l'indicateur juste 5 périodes après est passé à long et a repeint comme s'il avait toujours été long alors que l'USDJPY avançait jusqu'à 104.20).

Pour appuyer le point de vue selon lequel les indicateurs de type re-paint n'offrent aucune valeur et ne sont pas fiables - étant donné ce que j'ai vu travailler dans les librairies MQL4 disponibles, je vous assure que je comprends la frustration exprimée par ceux qui ont travaillé avec ces indicateurs - étant donné ce que nous avons, rien ne fonctionne. Cela dit, je n'ai toujours pas vu d'indicateur de régression polynomiale fiable qui calcule jusqu'au 6e degré. Je peux également vous assurer qu'une fois que nous aurons une régression polynomiale fiable, les résultats seront spectaculaires.




Je ne suis pas un mathématicien, mais mon expérience avec toute forme de régression n'a pas été très bonne. Comme vous le notez, il existe de nombreuses façons de faire des régressions qui peuvent finalement aboutir à un meilleur ajustement de la courbe statistique. Mais la question de son pouvoir prédictif reste posée.

Si vous voulez vraiment aller à fond dans ce domaine, vous devez étudier R et essayer certaines des régressions avancées disponibles (recherchez ARIMA, ARCH/GARCH, etc. sur Google) : http://talksonmarkets.files.wordpress.com/2012/09/time-series-analysis-with-arima-e28093-arch013.pdf.

J'ai passé des semaines sur ce sujet et j'ai également étudié la co-intégration et mon succès était proche de zéro.

Je ne pense pas que le codage de MQL4 soit à la hauteur pour cette analyse statistique avancée.

 

Eh bien, hmmm hmmm.....

I don't think MQL4 coding is up to the task for this advanced statistical analysis.

tout peut être fait dans MQL, ce n'est pas le facteur limitant. Il semble que le portage d'une de cessources serait suffisant :
http://rosettacode.org/wiki/Polynomial_regression

Résoudre une régression P6 (polynôme du 6ème degré) revient à résoudre un système de 6 équations avec 6 variables sur une fonction numérique discrète, ce qui n'est peut-être pas simple, mais pas impossible à faire.

Je peux regarder plus tard quelle méthode exacte est utilisée dans i_regr.mq4.

mon expérience avec toute forme de régression n'est pas très bonne.

Je suis d'accord, c'était le but de mon premier commentaire. Parce que ... que faisons-nous ? Nous ajustons une partie de la courbe aléatoire (le PA (Price Action) réel) à P6, dans ce cas. Et nous nous attendons à ce que le prochain point de PA agisse comme s'il était une continuation de cette courbe ?

OK, il semble que Dennis utilise cette courbe comme une fonction de transformation de PA à faible latence, et cela a un certain sens, mais dans quelle mesure cela peut-il être bon ? Cela doit être fait sur un TF plus élevé à cause du filtrage du bruit, et je ne pense pas qu'il sera possible d'éviter les pertes lorsque PA entre dans une fourchette, ce qui est le problème avec ce type de stratégie de trading.


cet indicateur n'offre aucune valeur pour trois raisons : 1) il est hypersensible aux corrections à court terme, et 2) sa latence sévère (avec l'EA e-regr) au moment où l'indicateur peint la borne inférieure du point d'entrée pour les positions longues, ou la borne supérieure pour les positions courtes, le marché s'est déplacé bien au-delà des points d'entrée et, dans la plupart des cas, est contraire à la tendance du marché, et 3) d'après la seule observation, lorsque le marché se dirigeait vers le haut, l'indicateur pointait vers le bas, et vice-versa donc son utilisation comme indicateur de tendance directionnelle est fiable à 50% au mieux.

Eh bien, l'i-regr ne fonctionne pas si mal. Pour le voir en action, il suffit d'utiliser le mode visuel backtest de e-regr.mq4 et de déposer l'indicateur dans la fenêtre de test.
Je suppose qu'il utilise une sorte de régression rapide ou d'interpolation, mais ses résultats ne sont pas si mauvais. Il suit le PA et s'adapte à la courbe.

Vos points :
1) tous les indicateurs le sont. Ceci est généralement résolu en ajoutant un autre type d'indicateur comme filtre, ou un TF plus élevé.
2) bien, avec un meilleur ajustement de la courbe, la latence s'améliorera. mais le problème principal n'est pas la latence mais les critères d'entrée de l'e-regr. le déclenchement de la contre-tendance sur les bords d'un canal de taille constante ? sans récupération adéquate pour le changement de tendance ? sans véritable gestion de l'argent ? ridicule.
mon idée principale serait l'entrée/sortie sur le changement de direction de la courbe de régression, mais je ne suis toujours pas sûr qu'un indicateur complet de repeint soit bon pour cela.

Quoi qu'il en soit, j'ai eu l'impression que vous utilisiez l'intersection de deux courbes de régression avec un coefficient de détermination différent pour l'entrée/sortie.

 
T

Oui comme l'a dit Graziani nous pouvons coder n'importe quoi dans mql4, tout dépend de la façon dont nous comprenons l'implémentation de ces mathématiques.

En ce qui concerne la peinture, ce ne sera pas un problème, la seule barre qui nous intéresse est la barre zéro, la barre de négociation du prix actuel. La façon dont je coderais ceci (en supposant que nous puissions comprendre les mathématiques) est que l'équation sera effectuée sur les prix des n dernières barres, la valeur résultante pour la barre zéro sera dessinée, la ligne sur toutes les barres précédentes sera laissée comme elle était lors du calcul précédent. D'une part, il n'est pas nécessaire de réadapter la ligne entière à tout historique de graphique lorsque nous ne pouvons négocier que sur la barre zéro et, d'autre part, cela montrerait un historique réel de la façon dont la ligne a été appliquée à chaque barre lorsqu'elle était la barre de prix en direct.

À partir du lien Dennis Posted Polynominal Regression, j'ai trouvé cela très intéressant du point de vue d'un indicateur adaptatif.

"Dans la régression polynomiale, différentes puissances de la variable X (X, X2, X3...) sont ajoutées à une équation pour voir si elles augmentent le r2 de manière significative. On effectue d'abord une régression linéaire, en adaptant une équation de la forme Y=a+bX aux données. Ensuite, une équation de la forme Y=a+b1X+b2X2, qui produit une parabole, est ajustée aux données. Le r2 augmentera toujours lorsque vous ajoutez un terme d'ordre supérieur, mais la question est de savoir si l'augmentation du r2 est significativement plus importante que prévu en raison du hasard. Ensuite, une équation de la forme Y=a+b1X+b2X2+b3X3, qui produit une ligne en forme de S, est ajustée et l'augmentation de r2 est testée. On peut continuer ainsi jusqu'à ce que l'ajout d'un autre terme n'augmente pas r2 de manière significative".

Cela pourrait être tout ce que nous avons besoin de savoir pour le coder, remarquez comment l'auteur écrit y=a+b1X+b2X2 au lieu de y=ax2+bx+c ? C'est ce qui me perturbait, je pensais que c devait être un coefficient complètement différent. Il semble, d'après cet article, que les coefficients c, d, e, f, g dans y=ax6+bx5+cx4+dx3+ex2+fx+g sont directement liés à b, que nous connaissons déjà par la régression linéaire, c'est-à-dire la pente.

Ceci dit, j'ai du mal à croire que ce soit aussi simple que cela ? Pourquoi écrire a,b,c,d,e,f,g, coefficients si cela peut vraiment être écrit y=a+b1X+b2X2+b3X3+b4X4+b5X5+b6X6? De plus, comme l'a dit Dennis, d'autres articles semblent suggérer que la pente et l'interception, comme dans une régression linéaire, ne s'appliquent pas à la régression poly. Parfois, je me demande s'ils n'inventent pas ces choses au fur et à mesure.

En dehors de cela, l'article semble impliquer que r2 peut être utilisé pour mesurer à quel point la ligne s'adapte à la courbe des données alors que nous testons les augmentations de l'équation de la polyligne par degré,

Je pense que r2 a peut-être quelque chose à voir avec la variance ? Quelqu'un peut-il dire avec certitude ce qu'est r2 ?