Allmänt meddelande

Collapse
No announcement yet.

Ej köpa inom 1 timme från sälj

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

  • Ej köpa inom 1 timme från sälj

    Tjena,

    Jag försöker få till att den inte ska köpa inom en timme från senaste sälj.

    Har skrivit detta, men får bara 0an i retur hur jag än gör med "timme". Kan alltså ta add istället för sub och ändå få 0an i retur.
    Någon som ser vad jag gör för fel?

    datum=date(d)
    timme=sub(datum,0.04)
    under=lasttrade(s,d)
    okköp=if(lt(timme,under),0,1)

  • #2
    Jag skriver så här i mina script där tidspärr1 och tidspärr2 anges i minuter

    tidspärr1:=60
    tidspärr2:=60
    lt1:=LastTrade(S,D)
    lt2:=LastTrade(B,D)
    minSedanSälj:=Mult(Sub(Date(),lt1),1440)
    minSedanKöp:=Mult(Sub(Date(),lt2),1440)
    delay_ok:=gt(minSedanSälj,tidspärr1)
    trans_ok:=gt(minSedanKöp,tidspärr2)

    mvh
    Bertil

    Comment


    • #3
      Ursprungligen postat av Dast Visa inlägg
      Tjena,

      Jag försöker få till att den inte ska köpa inom en timme från senaste sälj.

      Har skrivit detta, men får bara 0an i retur hur jag än gör med "timme". Kan alltså ta add istället för sub och ändå få 0an i retur.
      Någon som ser vad jag gör för fel?

      datum=date(d)
      timme=sub(datum,0.04)
      under=lasttrade(s,d)
      okköp=if(lt(timme,under),0,1)

      Det finns flera sätt att göra det på, men beroende på upplösning kan ett av dem vara enklare. Så frågan blir, vilken upplösning kör du scripten i?

      Comment


      • #4
        Jag kör den i 60 min upplösning.

        Jag såg själv vad det var jag gjort för fel. Hade date(d), ska tydligen bara vara date()

        Den ligger skarpt nu och har redan visat sig fungera

        Comment


        • #5
          Ok, då returnerar Lasttrade(s,d) tidpunkten för start av perioden då senaste sälj skedde, så om du vill veta exakt vilken minut det hände får man ta till andra knep.

          Tex:

          I säljscriptet kan du lagra tidstämpeln från systemklockan Date() i en av de fem cellerna som sparas med transaktionen, tex:

          retval(date(),2)

          så hamnar systemtiden vid sälj i cell 2 i Loggade lokala ordertransar.

          På köpsidan kan du då läsa av tid för senaste sälj med:


          senaste_säljtid=lasttrade(s,2)


          som hämtar värdet i cell på från senaste säljtrans.


          Därefter är det en smal sak att testa att det gått minst 1 timme från tidpunkten:


          minst60min_sedan_sälj=gt(date(),add(senaste_säljtid,div(60,1440)))


          som testar att systemklockan är mer än 60 minuter från senaste sälj.

          Comment


          • #6
            Ah, intressant! Trodde ju att det var mer specifikt än så i lasttrade.
            Ditt sätt att göra det på är ju bra mycket bättre då!
            Tack

            Comment


            • #7
              Det som är en stor fördel är att det blir konto- och instrumentunikt. Man behöver inte slösa globala celler etc.

              Comment


              • #8
                Hänger inte med. Tidpunkten för lasttrade(b,d) är väl mer specifikt än stapelns starttid, dvs tiden precis vid affär. M.a.o. har d i lasttrade inget med det självständiga "d". Dessutom är väl lasttrade redan kontospecifikt. Bertils metod i början av tråden borde fungera(förutom att scriptet inte avslutas rätt av någon anledning).

                Comment


                • #9
                  D är inte mer specifikt än periodtiden. Dvs, den uppdateras endast 1 gång per period. Kör man 60 min-upplösning i scriptet blir det kanske för glest för att vara till nån större nytta. Men visst är LastTrade kontounikt.


                  Comment


                  • #10
                    Jag vet vad D är. Däremot är inte d i lasttrade samma som D. d i lasttrade blir samma som date() vid affär. Dvs det räcker att mäta från senaste affär oberoende av upplösning och ingen lagring av date() behövs. Får gärna motbevisa.

                    Comment


                    • #11
                      Rättelse! Henric har rätt, när det gäller Lasttrade blir faktiskt D mer specifik, så man kan förenkla ännu mer och testa om det gått minst 60 min sedan senaste sälj:

                      minst60min_sedan_sälj=gt(date(),add(lasttrade(s,d),div(60,1440)))

                      Det är allt som behövs, inget retval eller liknande.

                      Comment

                      Working...
                      X