Allmänt meddelande

Collapse
No announcement yet.

Kurvanpassning

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

  • Kurvanpassning

    Inom signalanalysen är det vanligt att man gör kurvanpassningar. Man kan göra polynomanpassningar där man väljer att anpassa kurvan till t.ex ett fjärdegradspolynom med minsta kvadratmetoden.

    Ett annat sätt är att beskriva en kurva är genom att bygga upp den med ett antal sinussignaler (fourieranalys).

    Är det någon av er som sysslat med att anpassa aktiegrafer med någon av dessa metoder?

    Tanken är att om man lyckas beskriva en kurva matematiskt att man då kan förutsäga (med viss sannolikhet) hur kursrörelsen fortsätter.
    Med vänlig hälsning
    Bertil

  • #2
    All teknisk analys anser jag är en form av kurvanpassning eftersom man med historiskt data försöker förutsäga hur fortsättningen ska bli. Men just rytmiska fenomen är något jag själv fastnat för, med månadseffekten som skolexempel. Titta även på Phase Locked Loop-scripten som mäter avståndet mellan toppar och bottnar för att försöka hitta nästa. Det bör absolut gå att bygga olika saker som kan hitta "resonansfrekvenser" i marknaden som går att handla på.

    Comment


    • #3
      Problemet är ju som alltid övergången mellan trend och konsolidering

      http://www.walterbressert.com/MS4-T1.htm

      Comment


      • #4
        Visst all form av teknisk analys är ju någon form av kurvanpassning. Det finns många tekniska verktyg i NAT som jag inte använt ännu då jag inte har någon hands on känsla för dem.

        Jag studerar ju kurvan i realtid och föröker att hitta tydliga kurvformer som indikerar uppgång eller nedgång, det är ju därför jag har så många triggerscript. Men det svåra är ju att filtrera bort brus från trender.

        Om man ser kurvan som sammanvägd av flera sinuskurvor där de som har högre frekvens även har mindre amplitud så vill man filtrera bort de högfrekventa för att kunna se grundfrekvensen i den handelsperiod man är intresserad av, i mitt fall 1-8 timmar. Det är därför jag eftersöker någon form av filtreringsverktyg annat än medlevärdesbildningar som jag bygger nästan alla mina script kring. Jag har t.ex labbat med sammanvägning av olika medelvärdeskurvor samt tidsförkjutningar av dem för att få bort bruset. Har även subtraherat medelvärdeskurvor med olika medelvärden från varandra för att ta kvdratroten ur skillnaden och sedan addera resultatet till den långsamma medelvärdeskurvan. Då får man ett snabbt medelvärde med mindre överslängar. Har dock inte lyckats att tjäna punkter på dessa script i analysbänken.

        Vad gäller tidseffekter så försöker jag ju också att identifiera dem. Jag har ju speciella script som verkar endast de första 7 minutrarna på handelsdagen och andra stop loss script som verkar efter kl 15 innan handeln på USA börserna börjar påverka europa osv.
        mvh
        Bertil


        Edit. Bifogar ett exempel från idag. Man ser att en sinuskurva är överlagrad på en nedåtlutande kurva, men jag känner inte till några verktyg där jag kan identifiera sinusrörelsen och subtrahera den för att identifiera den sluttande kurvan och så trigga på den. Man kanske till och med skulle vänta till en sinustopp innan man säljer.
        Attached Files
        Last edited by Bertil; 2013-06-14, 12:33.

        Comment


        • #5
          Regressionskurvor kan ofta vara användbara. Nedanstående är ritat i 1-minutsupplösning med:

          linreg(c,20)


          Attached Files

          Comment


          • #6
            Har labbat ett antal timmar med linreg kurvor. Har testat att få fram raka linjer med lite större antal medelvärden och linreg i linreg mm.
            Kan få till script som ger några punkters vinst per termin, men scripten passar inte ihop med mina övriga script. Får fortsätta testa mer senare.
            Med vänlig hälsning
            Bertil

            Comment


            • #7
              re

              Om du söker intradagsscript, så titta då mer på nivåbaserad handel, snarare än indikatorbaserad. Indikatorer kan funka bra i swingperspektivet dock.

              Comment


              • #8
                Jag studerar ju realtidskurvorna och har upptäckt att ibland så bildas en mjuk cirkelbågsformad övergång istället för en vass topp eller dal. Jag skulle vilja trigga på en sådan cirkelbåge när radien är större än 3-4 punkter och formen är hyfsat cirkelformad. Har någon en idé vilka funktioner i NAT man skulle kunna använda för detta. Bifogar bildexempel från idag där den tänkta cirkelbågen skulle gå från kl 12-14.
                Med vänlig hälsning
                Bertil
                Attached Files

                Comment


                • #9
                  Här är en funkttion som är mycket användbar i platta marknader. Jag har väntat länge på att den ska ingå bland NAT-funktionerna.
                  http://www.autostock.se/vbulletin/sh...daptive+moving

                  Comment


                  • #10
                    Ursprungligen postat av Bertil Visa inlägg
                    Edit. Bifogar ett exempel från idag. Man ser att en sinuskurva är överlagrad på en nedåtlutande kurva, men jag känner inte till några verktyg där jag kan identifiera sinusrörelsen och subtrahera den för att identifiera den sluttande kurvan och så trigga på den. Man kanske till och med skulle vänta till en sinustopp innan man säljer.
                    Det är här fraktalanalysen (Elliot) kommer in. Som jag sagt tidigare, börsen är inte aritmetisk den är geometrisk och det finns tyvärr inga bra verktyg i NAT för att analysera geometrin.

                    Det finns ett verktyg Topp/bottom-funktionerna som skulle kunna användas till detta, men idag är de skrivna alltför trubbigt. Det fjärde parametern används bara till att ange rörelse på antingen vänstra eller högra sidan om extrempunkten. Funktionen skulle behöva kompletteras med ytterligare en parameter så att värden kan bestämmas på både vänstra och högra sidan om extrempunkten. På så sätt skulle vågorna kunna kategoriseras in i olika magnituder varvid det skulle bli ganska lätt att avhålla sig från handel när magnituderna är för låga, eller att man går in och säljer på ett tidigare stöd eller köper på ett tidigare motstånd.

                    Jag hoppas att topp2-och bottom2-funktionerna snart skall vara här.
                    Hur blir det med det Rikard?

                    Comment


                    • #11
                      Ursprungligen postat av Bertil Visa inlägg
                      Jag studerar ju realtidskurvorna och har upptäckt att ibland så bildas en mjuk cirkelbågsformad övergång istället för en vass topp eller dal. Jag skulle vilja trigga på en sådan cirkelbåge när radien är större än 3-4 punkter och formen är hyfsat cirkelformad. Har någon en idé vilka funktioner i NAT man skulle kunna använda för detta. Bifogar bildexempel från idag där den tänkta cirkelbågen skulle gå från kl 12-14.
                      Med vänlig hälsning
                      Bertil
                      Puh, nu har jag gjort ett script enligt ovan med hjälp av medelvärdeskurvor. Ökar vinsten på E-terminen med 4 punkter (triggar en gång) samt ökar vinsten på G-terminen med 7.5 punkter (triggar 1 gång). Påverkar inte D och F-terminerna. Jag justerade ju in scriptet för att trigga på G-terminen. De 4 pluspunkterna på E-terminen fick jag på köpet. Min simulerade vinst från 20 mars till dags dato är nu uppe i 345.5 punkter.
                      mvh
                      Bertil
                      Bifogar bild där triggen visas

                      Här är scriptet om någon är intresserad:

                      { Mitt Cirkel1 köp vänd }
                      { 130718 }
                      innehav:=Portfolio(v)
                      ok_att_handla:=Lt(innehav,0)
                      stycken1:=5
                      stycken2:=21

                      trappa1:=0.02
                      trappa2:=0.4
                      trappa3:=2
                      trappa4:=9
                      trappa5:=1.2

                      tidspärr1:=25
                      tidspärr2:=25
                      lt1:=LastTrade(S,D)
                      lt2:=Portfolio(D)
                      minSedanShort:=Mult(Sub(Date(),lt1),1440)
                      minSedanTrans:=Mult(Sub(Date(),lt2),1440)
                      delay_ok:=gt(minSedanShort,tidspärr1)
                      trans_ok:=gt(minSedanTrans,tidspärr2)

                      i1(
                      { efter kl 10.30}
                      tid1=gt(int(mult(frac(d),1440)),630)
                      { före kl 17.12}
                      tid2=lt(int(mult(frac(d),1440)),1032)


                      carpe=Div(Add(b,s),2)
                      nuslang1=Mov(Aref(carpe,1),stycken1,s)
                      dåslang1=Mov(Aref(carpe,3),stycken1,s)
                      gammelslang1=Mov(Aref(carpe,50),stycken1,s)
                      urslang1=Mov(Aref(carpe,100),stycken1,s)

                      storslangA=Mov(carpe,stycken2,e)
                      storslangB=Aref(storslangA,50)
                      storslangC=Aref(storslangA,100)
                      storslangD=Aref(storslangA,1)

                      skillnad=Abs(Sub(nuslang1,storslangA))

                      diffis=Hhv(skillnad,90)

                      minsta=Llv(storslangA,200)
                      största=Hhv(storslangA,200)

                      villkor1=Lt(Abs(Sub(nuslang1,storslangA)),trappa2)
                      villkor2=Lt(Abs(Sub(gammelslang1,storslangB)),trappa2)
                      villkor3=Lt(Abs(Sub(urslang1,storslangC)),trappa2)
                      villkor4=Gt(Sub(storslangA,storslangB),trappa3)
                      villkor5=Gt(Sub(storslangC,storslangB),trappa3)
                      villkor6=Lt(Abs(Sub(minsta,storslangB)),trappa2)
                      villkor7=Gt(Sub(nuslang1,dåslang1),trappa1)
                      villkor8=Lt(Sub(största,minsta),trappa4)
                      villkor9=Gt(Sub(storslangA,storslangD),trappa1)
                      villkora=Lt(diffis,trappa5)

                      Draw(storslangD,2,mqb0)
                      Draw(storslangA,3,bqb0)
                      Okey=And(And(And(And(And(villkor1,villkor2),villkor3),villkor4),villkor5),villkor6)
                      köpa=And(And(And(And(okey,villkor7),villkor8),villkor9),villkora)

                      ditt_köpscript=And(And(And(And(köpa,tid1),tid2),delay_ok),trans_ok)
                      Draw(Sub(nuslang1,Mult(köpa,5)),1,dgqb0)
                      köpsignal=And(ditt_köpscript,ok_att_handla)
                      Mult(köpsignal,25)
                      )
                      Attached Files
                      Last edited by Bertil; 2013-07-18, 22:53.

                      Comment


                      • #12
                        He, He.
                        Bertil, du är för härlig.
                        Så du har 52 script nu.

                        Comment


                        • #13
                          Ursprungligen postat av LillWicke Visa inlägg
                          He, He.
                          Bertil, du är för härlig.
                          Så du har 52 script nu.
                          Jag tog bort ett script som inte var aktivt och har ännu inte gjort säljmotsvarigheten till cirkeltriggen så jag har fortfarande bara 50 script, fast det är väl bara en tidsfråga innan jag har 52.

                          LillWicke du sa ju själv att börsen är geometrisk och skall man handla flera gånger under en dag så måste man ju identifiera de geometriska pusselbitarna och bygga upp sin handel med dessa bitar. Det tidsödande är ju att simulera fram de bitar som fungerar bra och skippa de andra.
                          mvh
                          Bertil

                          Comment


                          • #14
                            Ursprungligen postat av Bertil Visa inlägg
                            LillWicke du sa ju själv att börsen är geometrisk och skall man handla flera gånger under en dag så måste man ju identifiera de geometriska pusselbitarna och bygga upp sin handel med dessa bitar. Det tidsödande är ju att simulera fram de bitar som fungerar bra och skippa de andra.
                            mvh
                            Bertil
                            Absolut, det är jättebra jobbat Bertil, kreativitet behövs i mängder. Vad jag menade var mer att det är lite synd (nu när börsen är geometrisk) att vi inte har fler geometriska verktyg att jobba med när vi bygger scripten, speciellt sådana verktyg som man av erfarenhet vet fungerar.

                            Comment


                            • #15
                              Det lite fiffiga i scriptet ovan som kan vara ett tips är

                              skillnad=Abs(Sub(nuslang1,storslangA))
                              diffis=Hhv(skillnad,90)
                              villkora=Lt(diffis,trappa5)

                              Genom att först ta skillnaden mellan en kurva som bygger på få medelvärden och en kurva som har många medelvärden och sedan ta Hhv på detta samt sätta ett villkor på detsamma gör att man kan identifiera partier som är mjuka dvs inte taggiga.
                              mvh
                              Bertil

                              Comment

                              Working...
                              X