Wijziging ???Regressies uit het verleden afwijkend???.
Results 1 to 4 of 4

Thread: Wijziging ???Regressies uit het verleden afwijkend???.

  1. #1
    2 Bijlage(n) Ik zou dit interieur willen aanpassen om geen objecten te gebruiken, maar ik kan er niet helemaal achter komen hoe.

    Alle suggesties worden zeer op prijs gesteld!
    Ingevoegde code/ --------------------------------------------- --------------------- /| verleden regressie afgeweken.mq4 |/| Copyright � 2006, tageiger, ook bekend als [email protected] |/| http://www.metaquotes.net |/ ------------------------------------------------------------ ------------------- #property copyright Copyright � 2006, tageiger, aka [email protected] #property link http://www.metaquotes.net #property indior_chart_window #property indior_buffers 7 #property indior_color1 Bruin #property indior_color2 Limoen #property indior_color3 Limoen #property indior_color4 Bruin #property indior_color5 Bruin #property indior_color6 Bruin #property indior_color7 Bruin/---- invoerparameters int periode=0;*default 0 betekent dat het kanaal de open tijd vanaf x bars terug zal gebruiken op welke tijdsperiode de indior ook is gekoppeld. men kan veranderen in 1,5,15,30,60...etc om de starttijd te vergrendelen op een specifieke periode, en dan de vergrendelde kanalen bekijken op een andere tijdsperiode...*/extern int LR.length=56 ;/bars terugregressie begint extern dubbel std.channel.1=0.618;/1e kanaal extern dubbel std.channel.2=1.618;/2e kanaal extern dubbel std.channel.3=0;/3e kanaal/---- interne buffers dubbel gemiddelde.Buffer#91;#93;; dubbel hoog.1.Buffer#91;#93;; dubbel laag.1.Buffer#91;#93;; dubbel hoog.2.Buffer#91;#93;; dubbel laag.2.Buffer#91;#93;; dubbel hoog.3.Buffer#91;#93;; dubbel laag.3.Buffer#91;#93;; int init() {*---- lijnverschuivingen bij tekenen SetIndexShift(0,JawsShift); SetIndexShift(1,TeethShift); SetIndexShift(2,LipsShift);/---- eerste posities overgeslagen bij tekenen*/SetIndexDrawBegin(0,LR.length); SetIndexDrawBegin(1,LR.lengte); SetIndexDrawBegin(2,LR.lengte); SetIndexDrawBegin(3,LR.lengte); SetIndexDrawBegin(4,LR.lengte); SetIndexDrawBegin(5,LR.lengte); SetIndexDrawBegin(6,LR.lengte);/---- 3 indior buffers mapping SetIndexBuffer(0,mean.Buffer); SetIndexBuffer(1,hoge.1.Buffer); SetIndexBuffer(2,laag.1.Buffer); SetIndexBuffer(3,hoge.2.Buffer); SetIndexBuffer(4,laag.2.Buffer); SetIndexBuffer(5,high.3.Buffer); SetIndexBuffer(6,laag.3.Buffer);/---- tekeninstellingen SetIndexStyle(0,DRAW_LINE,0); SetIndexPijl(0,158); SetIndexStyle(1,DRAW_LINE,0); SetIndexPijl(1.158); SetIndexStyle(2,DRAW_LINE,0); SetIndexPijl(2.158); SetIndexStyle(3,DRAW_LINE,0); SetIndexPijl(3.158); SetIndexStyle(4,DRAW_LINE,0); SetIndexPijl(4.158); SetIndexStyle(5,DRAW_LINE,0); SetIndexPijl(5.158); SetIndexStyle(6,DRAW_LINE,0); SetIndexPijl(6.158);/---- indexlabels SetIndexLabel(0,gemiddelde); SetIndexLabel(1,1st Std omhoog); SetIndexLabel(2,1st Std naar beneden); SetIndexLabel(3,2e Std omhoog); SetIndexLabel(4,2e standaard naar beneden); SetIndexLabel(5,3e Std omhoog); SetIndexLabel(6,3e standaard naar beneden);/---- initialisatie voltooid return(0);} intdeinit() {ObjectDelete(periode m LR.length TL);} int start() { ObjectDelete(periode m LR.length TL); int limiet; int counted_bars=IndiorCounted(); als(counted_barslt;0) return(-1); if(counted_barsgt;0) counted_bars--; limit=Bars-counted_bars;/---- main loop for(int i=0; ilt;limit; i ) {/lineaire regressieberekening int start.bar=i LR.length, end.bar=i; int n=start.bar-end.bar 1;/---- prijswaarden berekenen.. Lineaire regressieberekening double value=Close#91;end.bar#93;; dubbel a,b,c; dubbel sumy=waarde; dubbele somx=0,0; dubbele sumxy=0.0; dubbele somx2=0,0; for(int ii=1; iilt;n; ii ) { value=Close#91;end.bar ii#93;; som =waarde; sumxy =waarde*ii; sumx =ii; somx2 =ii*ii; } c=somx2*n-somx*somx; als(c==0.0) terugkeer; b=(somxy*n-somx*somy)/c; a=(somy-somx*b)/n; dubbel LR.price.2=a; dubbel LR.price.1=a b*n; mean.Buffer#91;i#93;=NormalizeDouble(LR.price.2,Di gits);*---- maximale afwijkingsberekening (3e afwijkingslijn) dubbel max.dev=0; dubbele afwijking=0; dubbele dwaarde=a; for(int i.1=0; i.1lt;n; i.1 ) { value=Close#91;end.bar i.1#93;; dwaarde =b; deviatie=MathAbs(waarde-dwaarde); if(max.devlt;=afwijking) max.dev=afwijking; } *///Lineaire regressie trendlijn ObjectDelete(periode m LR.length TL); ObjectCreate(periode m LR.lengte TL,OBJ_TREND,0,Time#91;start.bar#93;,LR.price.1,Ti me#91;end.bar#93;,LR.price.2); ObjectSet(periode m LR.lengte TL,OBJPROP_COLOR,Oranje); ObjectSet(periode m LR.lengte TL,OBJPROP_WIDTH,2); ObjectSet(periode m LR.lengte TL,OBJPROP_RAY,false);/...standaarddeviatie... dubbel x=0,x.sum=0,x.avg=0,x.sum.squared=0,std.dev=0; for(int iii=i; iiilt;start.bar; iii ) { x=MathAbs(Close#91;iii#93;-ObjectGetValueByShift(periode m LR.length TL,iii)); x.som.kwadraat =(x*x); } std.dev=MathSqrt(x.som.kwadraat/((start.bar-end.bar)-1));/Afdrukken(LR.price.1, LR.price.1, LR.Price.2, LR.price.2, standaard.dev, standaard.dev);/...standaarddeviatie kanalen... high.1.Buffer#91;i#93;=mean.Buffer#91;i#93; (std.channel.1*std.dev); low.1.Buffer#91;i#93;=gemiddelde.Buffer#91;i#93;-(std.channel.1*std.dev); hoge.2.Buffer#91;i#93;=gemiddelde.Buffer#91;i#93; (std.kanaal.2*std.dev); low.2.Buffer#91;i#93;=gemiddelde.Buffer#91;i#93;-(std.channel.2*std.dev); hoge.3.Buffer#91;i#93;=gemiddelde.Buffer#91;i#93; (std.channel.3*std.dev);//max.dev; low.3.Buffer#91;i#93;=mean.Buffer#91;i#93;-(std.channel.3*std.dev);//max.dev; } ObjectVerwijderen(punt m LR.lengte TL); return(0);}/ ----------------------------------------- -------------------------


    In het bijzonder zou ik graag willen weten hoe ik moet omgaan met ingevoegde code x=MathAbs(Close#91;iii#93;-ObjectGetValueByShift(period m LR.length TL,iii)); (Ook heb ik de 3 verschillende STD-kanalen ook niet nodig - ik heb er maar 1 nodig).

    https://www.aforexa.com/attachments/...1770557129.mq4

    https://www.aforexa.com/attachments/...5844417906.ex4

  2. #2
    Welke vergelijking gebruikt ObjectGetValueByShift?

  3. #3

    Quote Originally Posted by ;
    Welke vergelijking gebruikt ObjectGetValueByShift?
    Als ik me de geometrie van de middelbare school herinner (voor mij is dat het midden van de jaren 70!), en als de functie zich gedraagt ??????zoals de online help van MT4 zegt (ik heb het nog nooit gebruikt), dan: de functie van een trendlijn is gedefinieerd door (x0,y0) en (x1,y1) waarbij x0 en x1 twee datum/tijd-waarden zijn en y0 en y1 de overeenkomstige prijswaarden op die tijden zijn. Dan zou y = ObjectGetValueByShift(trendline name,x) de prijs y moeten retourneren voor elke datetime waarde x, op die trendlijn. Algebra�sch zou dit moeten resulteren in iets als y = (y1-y0)(x-x0)/(x1-x0) y0 Google zoiets als lineaire vergelijkingen of y=mx c voor een bewijs. Mijn geheugen is misschien niet zo goed. LOL.

  4. #4
    Bedankt, dat helpt. Het wordt verwarrend met dit interieur, want wat ik wil is de OVERSCHILDERBARE helling van de lineaire regressie bij de staafverschuiving die ik specificeer, niet de NIET-OVERSCHILDERBARE helling. Het zijn twee verschillende dingen.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.