Allmänt meddelande

Collapse
No announcement yet.

Top/Bottom funktionerna

Collapse
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • #16
    Find() är utmärkt att använda för att komma ihåg när ett villkor var sant senast eller n:te hången bakåt. Då kan man tex använda finf gör att ta fram värden från den botten eller topp som senare ska användas som referens för nästa osv.

    Comment


    • #17
      Har försökt en del med att mäta första toppen mot första och andra botten med hjälp av TOP och BOTTOM men det fungerar mindre bra

      Kanske är det så tredje parametern fungerar?
      Attached Files

      Comment


      • #18
        När T1 är 1% större än B1 och B2 då är det en topp som ger en kurva till nästa topp osv

        går det att lösa?

        Comment


        • #19
          Ursprungligen postat av Rikard Nilsson Visa inlägg
          Find() är utmärkt att använda för att komma ihåg när ett villkor var sant senast eller n:te hången bakåt. Då kan man tex använda finf gör att ta fram värden från den botten eller topp som senare ska användas som referens för nästa osv.

          Jo, jag känner till detta. Jag har som sagt gjort fler försök att lösa problemet med NAT-funktioner men går bet på denna uppgift.

          Kan du inte bara lägga ut top-/bottomfunktionerna så man får en uppfattning om hur de jobbar.

          Comment


          • #20
            Jag sticker ut hakan och påstår att uppgiften i den här tråden är helt omöjlig att lösa med NAT-funktioner, om man inte samtidigt använder sig av en drös globala variabler, en för varje signifikant topp/botten man önskar testa mot.

            Den som lyckas bevisa att jag har fel vinner ära och berömmelse för evig tid framöver, och om vederbörande händelsevis också har vägarna förbi Stockholm bjuder jag självklart även på en god öl.

            Comment


            • #21
              Ja det finns säkert en anledning till varför 4 parametern fungerar som den gör

              Det som är ett sätt att lösa problemt är ett låångt script stapel för stapel men det är lite jobbigt om samma sak går att lösa med några få rader kod

              Comment


              • #22
                Här är ett lite mer utvecklat exempel som definierar både topp och botten, och där man kan mäta mot förrförra topp och botten. Det går ju att definiera en topp eller botten på otaliga sätt, så det är i princip helt upp till hur man vill göra i de första delarna av koden. Det väsentliga som jag ser det är att man därefter kan läsa av värdet från vilken topp eller botten som helst bakåt i tiden och göra beräkningar på de. Då går det även att jämföra tidigare toppar och bottnar mot varandra för att få olika villkor sanna eller falska.

                {definiera topp}
                stapel1:=aref(h,1)
                stapel2:=aref(h,2)
                stapel3:=aref(h,3)
                t1:=lt(stapel1,mult(stapel2,0.998)) {bestäm procent höger sida}
                t2:=lt(stapel3,mult(stapel2,0.995)) {bestäm procent vänster sida}
                t3:=and(t1,t2)

                {definiera botten}
                stapel4:=aref(l,1)
                stapel5:=aref(l,2)
                stapel6:=aref(l,3)
                b1:=gt(stapel4,mult(stapel5,1.003)) {bestäm procent höger sida}
                b2:=gt(stapel6,mult(stapel5,1.005)) {bestäm procent vänster sida}
                b3:=and(b1,b2)


                högsta_senaste_topp=find(t3,50,aref(h,2),1)
                lägsta_senaste_botten=find(b3,50,aref(l,2),1)

                högsta_förrförra_topp=find(t3,50,aref(h,2),2)
                lägsta_förrförra_botten=find(b3,50,aref(l,2),2)


                draw(högsta_senaste_topp,2,rqb)
                draw(lägsta_senaste_botten,3,dgqb)

                draw(högsta_förrförra_topp,4,mqb)
                draw(lägsta_förrförra_botten,5,bqb)

                mult(0,10)
                Attached Files

                Comment


                • #23
                  Vad tror ni om att bygga en breakout-modell runt detta? Entry Long vid notering över förra samt förrförra toppnivåerna, samt Entry Short vid notering under förra samt förrförra bottennivåerna. Detta skulle kunna bli en ganska intressant modell...

                  Comment


                  • #24
                    Jo det skulle säkert gå att få till. Man brukar ju definiera en upptrend som både stigande toppar och stigande bottnar. Bara att mäta senaste och jämföra med föregående. Kanske i tre led för att säkerställa trenden riktigt.

                    Det riktigt coola blir ju när vi kan simulera det!

                    Comment


                    • #25
                      Så här långt kan man ju scripta lite hur som helst, precis som du säger Rikard, men det är ju bara början. Den stora utmaningen blir nu hur man går vidare och löser problemet med den signifikanta toppen/botten.

                      Comment


                      • #26
                        Det är ju bara att skapa följdvillkor baserade på de topp- och bottenvärden man får fram enligt ovan och säga att en signifikant topp ska vara minst x % högre än förra botten osv. Om man har alla befintliga toppar och bottnar i dataserien tillgängliga kan man ju efterbehandla med följdvillkor och få fram vilka av dessa som är signifikanta toppar och bottnar.

                        Comment


                        • #27
                          Just så Rikard, och det är ju nu som svårigheterna tornar upp sig.

                          Ett sätt att gå vidare är ju att skriva:
                          (Här förutsätts grafen vara omx och hö/vä-värdena punkter)

                          vänster:=20
                          höger:=10

                          { Signifikant Topp }
                          villkorT1=ge(sub(högsta_senaste_topp,lägsta_förrförra_botten),vänster)
                          villkorT2=ge(sub(högsta_senaste_topp,lägsta_senaste_botten),höger)
                          villkorT3=and(villkorT1,villkorT2)

                          signifikant_topp=find(villkorT3,500,?,1)

                          Jag ser flera problem med detta:
                          a) kan man använda sig av find() i find() hur som helst?

                          b) villkoret ovan är uppfyllt i stapeln strax till höger om senaste botten. Hur hittar man värdet på toppen? (funkar ?=högsta_senaste_topp? Dvs. har det, av de tidigare villkoren i find()-funktionen, bidats en dataserie av h_s_t-variabeln genom hela diagrammet från vänster till höger?)

                          c) villkorT1 ovan använder sig av lägsta_förrförra_botten. Det är fel den ska ju utgå från senaste "signifikanta_botten", som ännu ej är uträknad.

                          d) om man väljer att räkna ut den signifikanta botten först, måste man ha tillgång till den förra signifikanta toppen, som ännu ej är uträknad, moment 22.

                          e) för att lösa c,d måste man först bestämma ett startvärde, som används som syftvärde för den allra första signifikanta topp/botten i serien för att sedan inte användas mer.

                          osv osv.

                          Många fågor att lösa blir det, men den viktigaste frågan är ändå om find()-funktionen kan användas flera gånger i sig själv helt obehindrat. (Tycker att jag har testat detta tidigare utan avsedd framgång)

                          Visar det sig att find() kan avändas obehindrat i sig själv, finns det gott hopp om, att uppgiften i tråden ska gå att lösa utan globisar.

                          Comment


                          • #28
                            Vet inte om detta är något att spinna på?
                            Det går att sätta villkor för tid och % för ner- och uppgångar.

                            {formation botten-topp-nedgång(trigger)}

                            båttentid1:=10 {max perioder för nedgång innan uppgång}
                            tåppentid1:=10 {max perioder för att topp bildas}
                            båttentid2:=5 {max perioder för nedgång efter topp}
                            båttenpr1:=0.75 {procent ner för första botten}
                            tåppenpr1:=0.75 {procent för att topp bildas}
                            båttenpr2:=0.3 {procent för nedgång efter topp}
                            totid1:=add(add(båttentid1,tåppentid1),båttentid2)

                            första1:=gt(div(sub(hhv(c,båttentid1),c),hhv(c,båttentid1)),div(båttenpr1,100))
                            första2:=and(första1,le(c,llv(c,båttentid1)))
                            första3:=hhvbars(första2,totid1:100)

                            andra1:=gt(div(sub(c,llv(c,tåppentid1)),llv(c,tåppentid1)),div(tåppenpr1,100))
                            andra2:=and(andra1,ge(c,hhv(c,tåppentid1)))
                            andra3:=hhvbars(andra2,totid1:100)

                            tredje1:=gt(div(sub(hhv(c,båttentid2),c),hhv(c,båttentid2)),div(båttenpr2,100))
                            tredje2:=hhvbars(tredje1,totid1:100)

                            i30(
                            trigger1=and(and(lt(tredje2,andra3),lt(andra3,första3)),tredje1)
                            trigger2=and(trigger1,hhv(första1,totid1:100))

                            add(0,0)
                            )
                            Last edited by Henric; 2012-12-01, 18:41. Anledning: ändrat tilldelat namn

                            Comment


                            • #29
                              Här har du precenterat en samling väldigt intressanta villkor Henric, absolut något att spinna vidare på.

                              Jag antar att du med:
                              första3 menar det antal perioder bort där botten1-värdet finns
                              andra3 det antal perioder bort där topp1-värdet finns
                              och tredje3 det antal perioder bort där botten2_värdet finns?

                              Spännande att höra hur du har tänkt dig fortsättningen.
                              Jag menar att när trigger2 är sann, få fram serier på botten1 och topp1 som är ritbara och refererbara bakåt i tiden?

                              EDIT:
                              Är kanske ute och cyklar, men en tanke som slår mig är följande:
                              signT1=if(trigger2,hhv(c,andra3),signT1)
                              signB1=if(trigger2,hhv(c,första3),signB1)

                              draw(signT1,2,bqb)
                              draw(signB1,2,rqb)

                              Frågan är om det kommer att fungera.
                              Vad säger du Henric?

                              Last edited by LillWicke; 2012-12-01, 17:38.

                              Comment


                              • #30
                                Jag såg att det "tredje" inte är linkat i tid, utan bara att nedgången ska ha skett inom viss tid. Jag har linkat i tid. Det går ju lika bra att bara använda första och andra och sedan ett trigger villkor. Det går ju att definiera toppar och bottnar på många sätt. Jag läser ut toppen som rör sig uppåt innan en ny botten.

                                {formation botten-topp-nedgång(trigger)}

                                båttentid1:=15 {max perioder för nedgång innan uppgång}
                                tåppentid1:=15 {max perioder för att topp bildas}
                                båttentid2:=15 {max perioder för nedgång efter topp}
                                båttenpr1:=0.75 {procent ner för första botten}
                                tåppenpr1:=0.75 {procent för att topp bildas}
                                båttenpr2:=0.3 {procent för nedgång efter topp}
                                totid1:=add(add(båttentid1,tåppentid1),båttentid2)

                                första1:=gt(div(sub(hhv(c,båttentid1),c),hhv(c,båttentid1)),div(båttenpr1,100))
                                första2:=and(första1,le(c,llv(c,båttentid1)))
                                första3:=hhvbars(första2,totid1:100)

                                andra1:=gt(div(sub(c,llv(c,tåppentid1)),llv(c,tåppentid1)),div(tåppenpr1,100))
                                andra2:=and(andra1,ge(c,hhv(c,tåppentid1)))
                                andra3:=hhvbars(andra2,totid1:100)

                                tredje1:=gt(div(sub(hhv(c,båttentid2),c),hhv(c,båttentid2)),div(båttenpr2,100))
                                tredje2:=hhvbars(tredje1,totid1:100)


                                i30(
                                trigger1=and(and(lt(tredje2,andra3),lt(andra3,första3)),tredje1)
                                trigger2=and(trigger1,hhv(första1,totid1:100))
                                trigger3=and(trigger2,le(andra3,båttentid2))

                                högsta1=sub(hhvbars(första2,400),hhvbars(andra2,400))
                                högsta2=hhvbars(första2,400)
                                högsta3=if(gt(högsta1,0),hhv(h,högsta2),0)

                                draw(högsta3,2,yqb)
                                draw(mult(första2,20),3,rsbF)
                                draw(mult(andra2,20),4,gsbF)
                                draw(mult(trigger3,20),5,bsbF)

                                add(0,0)
                                )

                                Comment

                                Working...
                                X