Il y a longtemps, j'ai écrit des indicateurs de régression linéaire dans MQL3, j'ai commencé à les réécrire dans 4, ils ne fonctionnent pas. Spécialistes s'il vous plaît aidez-moi à écrire ou à corriger une erreur.
- Je vais écrire l'indicateur gratuitement
- Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6.
- [ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4.
Et une autre similaire : la régression hyperbolique (je ne trouve pas non plus l'erreur).
//+------------------------------------------------------------------+ //| гиперболическая регрессия.mq4 | //| Copyright © 2008, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" //#property indicator_chart_window #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //---- input parameters extern int nn=21; //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); //---- double barr, as, bs,cs,ds,e, f,k,LR,ExtMapBuffer1[]; int n,n1; // Индикатор Гиперболической Регресии for (barr=0;barr<=100;barr++){ for (n=1;n<=nn;n++){ n1=barr+n-1; as=as+1/n; bs=bs+1/(n*n); cs=cs+Close[n1]; ds=ds+Close[n1]/n; } e=nn*bs-as*as; f=cs*bs-ds*as; k=nn*ds-as*cs; f=f/e; k=k/e; LR = f+k/nn; as=0; bs=0; cs=0; ds=0; ExtMapBuffer1[n]=LR; } //---- return(0); } //+------------------------------------------------------------------+
Recherche de https://www.mql5.com/ru/code
https://forum.mql4.com/ru/10446/page13
Merci, intéressant, mais où est-ce que je me suis trompé dans l'indicateur ?
kvn:
Merci, intéressant, mais où est-ce que je me suis trompé dans l'indicateur ?
C'est vrai,c'est raté.
Merci, intéressant, mais où est-ce que je me suis trompé dans l'indicateur ?
Rosh:
C'est vrai -j'ai fait une erreur.
kvn:
Merci, intéressant, mais où est-ce que je me suis trompé dans l'indicateur ?
Merci, intéressant, mais où est-ce que je me suis trompé dans l'indicateur ?
C'est vrai -j'ai fait une erreur.
Vous savez lire, n'est-ce pas ? Alors dites-moi où. Et merci beaucoup.
kvn:
Littéraire, hein ? Alors dites-moi où, et merci beaucoup.
On a beaucoup parlé de ce sujet ici. Je ne peux que vous donner une idée générale : l'équation de la somme des écarts types de la courbe d'approximation avec autant de paramètres donnés que vous le souhaitez. Ensuite, les dérivées partielles de chaque paramètre sont trouvées et mises à zéro. Le système d'équations linéaires résultant permet de trouver tous les paramètres nécessaires. L'algorithme, comme vous pouvez le voir, est simple, et ne demande aucune créativité.
Rosh:
C'est vrai,c'est raté.
kvn:
Merci, intéressant, mais où est-ce que je me suis trompé dans l'indicateur ?
Merci, intéressant, mais où est-ce que je me suis trompé dans l'indicateur ?
C'est vrai,c'est raté.
Littéraire, hein ? Alors dites-moi où, et merci beaucoup.
Ce que vous dites n'est pas exactement une régression linéaire. La technique LR est décrite dans mon indicateur.
//L'indicateur est construit à l'aide de la formule : LR = at+b
//où LR - prix "moyen" prévu pour la clôture,
//t - point dans le temps, Pt - prix de clôture des n dernières périodes.
//a = (n*SUMM(t*Pt) -SUMM(t)*SUMM(Pt))/(n*SUMM(t^2) - (SUMM(t))^2) - angle tangent de la ligne de régression,
//b = 1/n*(SOMME(Pt) - a*SUMM(t)), - décalage horizontal}
Mais lorsque je l'exécute, j'obtiens d'abord des données erronées (lorsque n=1-100,) et ensuite n=22 et les valeurs correctes sortent. Il y a une petite erreur quelque part et je n'arrive pas à la trouver.
Je soupçonne que l'erreur se trouve dans l'opérateur de boucle.
//L'indicateur est construit à l'aide de la formule : LR = at+b
//où LR - prix "moyen" prévu pour la clôture,
//t - point dans le temps, Pt - prix de clôture des n dernières périodes.
//a = (n*SUMM(t*Pt) -SUMM(t)*SUMM(Pt))/(n*SUMM(t^2) - (SUMM(t))^2) - angle tangent de la ligne de régression,
//b = 1/n*(SOMME(Pt) - a*SUMM(t)), - décalage horizontal}
Mais lorsque je l'exécute, j'obtiens d'abord des données erronées (lorsque n=1-100,) et ensuite n=22 et les valeurs correctes sortent. Il y a une petite erreur quelque part et je n'arrive pas à la trouver.
Je soupçonne que l'erreur se trouve dans l'opérateur de boucle.
Bien que je n'aime pas wikipedia, je vous propose un lien vers celui-ci sur le sujet de la régression linéaire. J'ai également trouvé ceci sur un certain blog - http://cmacfm.mazoo.net/archives/000936.html
Je ne discuterai pas de LR. ALORS OÙ EST L'ERREUR DANS LE CODE INDICATEUR ???????
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