Allmänt meddelande

Collapse
No announcement yet.

Antal perioder sedan köp

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

  • Antal perioder sedan köp

    Den här frågan har säkert svarats på förut kan dock inte hitta något i forumet.

    Finns det något enkelt sätt att räkna ut hur många perioder som gått sedan ett köp gjordes med en viss intrady uppplösning?

    I LastTrade kan man ju få tiden för köpet, så är det bara att räkna skillanden mellan tid nu och LastTrade tid och dividera med intraday upplösningen?

    Perioder:=Div(Sub(Date(),LastTrade(B,D)),30)

    Om det går flera dagar sen köp måste man kanske också kompensera för tid där börsen inte är öppen?

  • #2
    Konstanten D returnerar databastid med den periodupplösning som scriptet körs i. Enklast borde vara att göra ett villkor som testar om databastiden är samma period som senaste köptid, och därefter mäta med TopBars hur många perioder sedan det villkoret var sant senast:

    köptid:=lasttrade(b,d)
    köpperiod:=and(ge(d,köptid),le(aref(d,1),köptid))
    perioder_sedan:=topbars(köpperiod,100,1)
    i5(
    högsta=hhv(b,perioder_sedan)
    draw(högsta,2,dgqb)
    mult(0,1)
    )

    Lite mer info om TopBars():

    http://www.autostock.se/NATscriptref...RS_d_p_n_.html


    Det räknar bara databastid, så ingen kompensation behöver göras för den tid då börsen är stängd.

    Comment


    • #3
      Tackar!

      Egentligen är jag ute efter högsta värdet sedan senaste köp och då ska man nu kunna skriva som fortsättning:

      HögstaSedanKöp:=HHV(H,perioder_sedan)

      ...eller finns det ett enklare sätt att göra det?

      Comment


      • #4
        Ett enklare sätt är kanske att ta ut den flytande delen ur Stoploss Mini:

        i5(
        start=if(ge(d,lasttrade(b,d)),b,0)
        maxhittills=hhv(start,4000)
        draw(maxhittills,2,bqb)
        and(0,0)
        )

        Comment


        • #5
          Ok och om jag vill köra i 30 minuter och returnera högsta värdet blir det rätt om jag skriver så här? :

          i30(
          start=if(ge(d,lasttrade(b,d)),h,0)
          maxhittills=hhv(start,100)
          draw(maxhittills,2,bqb)
          and(0,0)
          )

          Comment


          • #6
            Korrekt, det körs i 30-minutersupplösning och returnerar B (alltså köpkursen). Man kan använda Close också, men B kan vara smart om man handlar minifutures etc som kanske inte har så sstor volym.

            Comment


            • #7
              Ursprungligen postat av Rikard Nilsson Visa inlägg
              Konstanten D returnerar databastid med den periodupplösning som scriptet körs i. Enklast borde vara att göra ett villkor som testar om databastiden är samma period som senaste köptid, och därefter mäta med TopBars hur många perioder sedan det villkoret var sant senast:

              köptid:=lasttrade(b,d)
              köpperiod:=and(ge(d,köptid),le(aref(d,1),köptid))
              perioder_sedan:=topbars(köpperiod,100,1)
              i5(
              högsta=hhv(b,perioder_sedan)
              draw(högsta,2,dgqb)
              mult(0,1)
              )

              Lite mer info om TopBars():

              http://www.autostock.se/NATscriptref...RS_d_p_n_.html


              Det räknar bara databastid, så ingen kompensation behöver göras för den tid då börsen är stängd.

              Hej,

              jag provade att koppla på detta exempel med lite olika trail & error varianter.
              Tror inte jag får det att fungera, i vissa upplösningar ritas streck ut, men jag vet inte vad det är :-) Tror inte det är mina köp transaktioner ialla fall.

              Jag är ute efter scriptdel som kan mäta antal dagar (perioder) sedan köp, för den exit jag skrivit om i annan tråd.

              Är tacksam för hjälp.

              Comment


              • #8
                Hej,

                när jag provar att skriva till cell, för att se vad skriptet spottar ut sig jag får ut "99". Har även provat med 1, 2, 5 istället för 100 i topbars(buy_period,100,1) och får då relativt (invärde -1), dvs 0, 1, 4. Blir inte så klok på manualen heller.

                Har också provat på olika konton med olika köp datum för samma instrument. Men får samma resultat. dvs 99. Borde ju fått olika tycker jag, eller känner detta skript bara av om man handlat ett visst instrument i vilken depå som helst?

                Funderar på om man för att få ut antal dagar sedan ska ta, inparameter (antal perioder sedan som nu är 100 - returvärde på tobars (dvs 100-99) = 1 för att komma fram till antal perioder sedan. Då gissar jag att skriptet menar att det är en period (idag) som senaste transaktionen inträffade).

                buy_time:=lasttrade(b,d)
                buy_period:=and(ge(d,buy_time),le(aref(d,1),buy_time))
                periods_since:=topbars(buy_period,100,1)

                setgvarif(periods_since,152,eqv(cum(1),1)) {trace periods since to cell}

                Det jag vill uppnå är att veta antal dagar sedan köp, perioder inte så viktigt.

                Tacksam för hjälp!

                Comment


                • #9
                  Om du bara vill ha dagar sedan köp behövs inga celler:

                  buy_day:=int(lasttrade(b,d))
                  today:=int(d)
                  days:=sub(today,buy_day)


                  Comment


                  • #10
                    Hej,

                    Det finns väll ingen log man kan skriva till, så därför skrev jag till celler för att se vad som kommer ut.

                    Nu provade jag med
                    buy_day:=int(lasttrade(b,d))
                    today:=int(d)
                    days:=sub(today,buy_day)
                    setgvarif(buy_day,150,eqv(cum(1),1))
                    setgvarif(today,151,eqv(cum(1),1))
                    setgvarif(days,152,eqv(cum(1),1))

                    och får "days" cell 152 till: -42
                    Jag borde få 0 eller 1 för idag tänkte jag?
                    Attached Files

                    Comment


                    • #11
                      Jag körde följande kalkyl (alltså utan celler) på LargeCap-listan och fick resultat enligt bild, ALFA är köpt idag så det stämmer (0 dagar sedan köp) och STE-R köptes för 5 börsdagar sedan. Är du säker på att inga andra script skriver till samma celler?



                      buy_day:=int(lasttrade(b,d))
                      today:=int(d)
                      sub(today,buy_day)
                      Attached Files

                      Comment


                      • #12
                        Hej Rikard,

                        Jag lade in samma kalkyl som du. Jag får vissa värden som kan stämma för instrument köpta för länge sedan. Instrument köpta idag försvinner dock ur listan. För att bekräfta min hypotes köpte och sålde jag ett instrument. Det försvann också ur listen. Så borde vara en bugg. i den version jag kör (1.3.3.7) eller så gör jag inte lika som du. Du får ju 0 för instrument köpta idag. Vilken version kör du?

                        Comment


                        • #13
                          Hm, försvinner ur listan? Om du sorterar på kolumnen för dagar, kommer det inte upp då? Eller finns instrumentet inte alls i listan?

                          Jag kör 1.3.3.7

                          Comment


                          • #14
                            Hej,

                            instrumentet försvinner helt ur listan. Listan hade två instrument.
                            minifuture long och short. med köp gjorda idag försvann de. Tar jag kakylatorn med annan kalkyl kommer de tillbaka.
                            Attached Files

                            Comment


                            • #15
                              Det låter som att du kryssat i "Operera endast på öppnade papper" i kalkylredigeringsmenyn?

                              Comment

                              Working...
                              X