Allmänt meddelande

Collapse
No announcement yet.

kodsnutt som tittar tillbaka till visst datum...

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

  • kodsnutt som tittar tillbaka till visst datum...

    Hej,
    Kan någon hjälpa mig med en kodsnutt så mitt script kan leta efter högsta och lägsta notering sedan ett visst datum som jag kan välja som en variabel?

    detta skall användas i mitt hedge-script för utställda optioner, så jag vill kunna räkna på högsta samt lägsta noteringen sedan jag tog optionspositionen, men jag fattar inte hur jag ska göra...

    Tack på förhand
    nyrn2k

  • #2
    dagarbakåt:=30
    högsta:=hhv(h,dagarbakåt)
    lägsta:=llv(l,dagarbakåt)
    draw(högsta,2,gqb)
    draw(lägsta,3,rqb)


    Det här fungerar utmärkt i dagsupplösning, men om du vill använda det inuti ett intradayscript kan man använda cmpref() för att läsa in dagskurser som extra objekt.

    Comment


    • #3
      tack, men detta hjälper mig inte riktigt med mitt problem.

      detta scriptet tittar 30 dagar bakåt varje dag,
      jag vill att mitt script tittar tillbaka till ett datum jag valt, det kan vara idag, igår eller ett halvår bakåt...

      Comment


      • #4
        jag vill allstå skriva in i scriptet ungefär så här:

        datum:=20120314
        dagarbakåt:=sub(idag,datum)

        högsta:=hhv(h,dagarbakåt)
        lägsta:=llv(l,dagarbakåt)
        draw(högsta,2,gqb)
        draw(lägsta,3,rqb)
        Last edited by nyrn2k; 2012-03-14, 22:19.

        Comment


        • #5
          mitt problem är allstå att omvandla ett vanligt datum (som är inputen) till motsv autostock-datum...

          Comment


          • #6
            så här står det i scriptreferensen om date() :

            Används för att ta reda på datum och klockslag
            Returnerar ett numeriskt värde där heltalsdelen är datum och decimaldelen är tid på dygnet.

            Date() returnerar tex 2,67
            där 2 motsvarar datum och
            0,67 motsvarar tid på dygnet enligt formeln
            0,67 * 24 timmar = 16,08 timmar efter midnatt

            det är inte helt solklart vad 2 betyder, det kan vara andra dagen i veckan eller andra dagen i en månad eller andra dagen på året, eller för den delen något helt annat...

            När det inte går att läsa sig till vad saker betyder och hur dom fungerar är det inte så lätt att försöka bygga ett script som beter sig som man vill...

            Comment


            • #7
              Bra läsning om datum
              http://www.autostock.se/vbulletin/sh...ighlight=datum
              http://www.autostock.se/vbulletin/showthread.php?t=2164

              Comment


              • #8
                Så här står det i en av trådarna du länkade till:

                1)
                Date() = Systemklockan som registrerar "just nu" vare sig det är helg eller börsen är öppen. Mer noggrann men funkar bäst för körning i realtid inte backtesning?

                Det är riktigt, men med animera i analysbänken animeras varje minut fram hela tiden.

                Date kan också användas för att skapa en konstant från ett datum t.ex Date(20100306) ger dig ett datum du kan beräkna från.
                Det kan även göras med klockslag om man beräknar om det till decimaldel ex. Date(20100306.5) för kl 12.00 den 6 mars.
                Date(20100306)-stuket använde jag rätt mycket för att göra undantag i villkor vid rapportdatum osv.
                Gjorde ett gäng definitioner för alla rapportdatum för att se om man skulle undvika handel då eller inte osv

                ----------------
                Då borde jag ju kunna göra på detta sätt:

                datum:=20120314
                dagarbakåt:=sub(int(d),date(datum))
                högsta:=hhv(h,dagarbakåt)
                lägsta:=llv(l,dagarbakåt)
                draw(högsta,2,gqb)
                draw(lägsta,3,rqb)

                skulle detta ha funktionen att leta reda på högsta resp. lägsta notering sedan den 14/3 2012 oavsett vilket senare datum vi är på nu?

                Comment


                • #9
                  så här kanske funkar, plockar ut h+l för 20120311
                  (Hoppas den gör det i morgon också när datumet ändras)

                  datum:=20120311
                  dagarbakåt:=sub(int(d),date(datum))
                  Högsta:=Aref(h,dagarbakåt)
                  lägsta:=Aref(l,dagarbakåt)
                  draw(högsta,2,gqb)
                  draw(lägsta,3,rqb)
                  Last edited by BRB_67; 2018-10-22, 14:38.

                  Comment


                  • #10
                    nej det är inte så jag tänkt, det plockar ju h + l för datumet 20120311.

                    jag är ute efter högsta h och lägsta l, från och med 20120311
                    om min kod funkar på det sättet är jag nöjd.
                    Jag skulle gärna få en bekräftelse på det, eller iaf. det inte funkar på det sättet, ett förslag på något som gör det.

                    Comment


                    • #11
                      ojsan, missförstod frågan.
                      antar att det blir find kommandot då
                      Last edited by BRB_67; 2012-03-15, 13:34.

                      Comment


                      • #12
                        så då.

                        datum:=20120301
                        dagarbakåt:=sub(int(d),date(datum))

                        högsta:=hhv(h,dagarbakåt)
                        lägsta:=llv(l,dagarbakåt)

                        värde1:=find(1,dagarbakåt,högsta,1)
                        värde2:=find(1,dagarbakåt,lägsta,1)
                        draw(värde1,4,gqb2)
                        draw(värde2,5,rqb2)

                        Comment


                        • #13
                          På omxs30 indexet i daily fungerar den bakåt till 20120213 men 20120212 blir nåt fel på low och den får en lägre low än verkligt, kanske en spik nedåt i databasen eller så har jag gjort nåt fel.
                          Last edited by BRB_67; 2012-03-15, 13:10.

                          Comment


                          • #14
                            varför behövs

                            värde1:=find(1,dagarbakåt,högsta,1)
                            värde2:=find(1,dagarbakåt,lägsta,1)

                            ?

                            dom kommer ju hela tiden att returnera samma sak som

                            högsta:=hhv(h,dagarbakåt)
                            lägsta:=llv(l,dagarbakåt)

                            inte sant?

                            Comment


                            • #15
                              Ursprungligen postat av nyrn2k Visa inlägg
                              varför behövs

                              värde1:=find(1,dagarbakåt,högsta,1)
                              värde2:=find(1,dagarbakåt,lägsta,1)

                              ?

                              dom kommer ju hela tiden att returnera samma sak som

                              högsta:=hhv(h,dagarbakåt)
                              lägsta:=llv(l,dagarbakåt)

                              inte sant?
                              Jo, sant...
                              Sitter och experimenterar med en liknade sak och krånglade till det.

                              datum:=20120213
                              dagarbakåt:=sub(int(d),date(datum))

                              högsta:=hhv(h,dagarbakåt)
                              lägsta:=llv(l,dagarbakåt)

                              draw(högsta,4,gqb2)
                              draw(lägsta,5,rqb2)

                              Fungerar likadant när jag testar men samma fel uppstår

                              Comment

                              Working...
                              X