Allmänt meddelande

Collapse
No announcement yet.

Dynamiska perioder

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

  • Dynamiska perioder

    Jag kör simuleringar på ca 80 aktier. Det blir omfattande och varje år kan ta 40 minuter med minut-animering. Ett villkor kräver i vissa lägen en lookback på 500 perioder. Det blir ingen skillnad på tid i simulatorn om jag bara använder maxantal eller dynamiska perioder. Det blir exakt samma ms. Väljer simulatorn den optimala eller använder den bara maxperioder? Blir det i så fall någon skillnad live?

    Alt1:
    perV:=if("beräkning",500,1)
    villkor1="beräkning"
    villkor2=hhv(villkor1,perV:500)
    ….

    Alt2:
    perV:=if("beräkning",500,1)
    villkor1="beräkning"
    villkor2=hhv(villkor1,500)
    ….

    Alt3:
    perV=if("beräkning",500,1)
    villkor1="beräkning"
    villkor2=hhv(villkor1,perV:500)
    ….

  • #2
    Den kör max eftersom det är reserverat som minne. Det jag märkt som sparar tid i sim är Loop med dynamiskt antal varv. Kör något sånt i DuoCycle. Den gick otroligt segt att simulera men blev snabbare med färre varv på ”onödiga” tider på dagdn.

    Comment


    • #3
      I detta fall har det ingen betydelse om den kör max(förutom tiden). Det skulle kunna uppstå situationer då man inte vill använda max och då blir det fel. Själva funktionen blir egentligen helt onödig. Kanske fungerar live, men då går det inte att testa. Jag ska prova loop. Har du något exempel på loop där dynamiskta varv används.

      Comment


      • #4
        Kolla koden i DuoCycle, där ändras antal varv beroende på tid på dagen.

        Comment


        • #5
          Jag så att DuoCycle är open source.

          Det gäller att göra rätt för det går inte att debugga genom att stega värdena i en loop.

          =========================
          I sammanställning formler finns följande:

          Loop(mr1,3) loopar scriptet till minnesref mr1 3 gånger

          Loop(mr1,3,GT(c,o),W) loopar scriptet till minnesref mr1 max 3 gånger eller så länge som C är större än O enligt villkor i parameter 3.
          =====================================


          Loopen körs alltså alltid en gång oavsett villkor för loopen?
          Anger "W" att loopen körs så länge räknaren <=3 eller så länge c>o

          Loop(mr1,3,GT(c,o))
          Kommer loopen ovan att körs så läng räknaren är mindre <=3 och att o inte varit >=c under något varv.
          Last edited by Henric; 2019-04-09, 12:17.

          Comment


          • #6
            Stämmer fint.

            Comment


            • #7
              Är vald period i extraobjekt hårdkodat vid kompilering eller går det att välja period dynamiskt. Tex

              per=xxxxxx
              cmpref(c,per,a)

              Edit: Provade. Det går att kompilera. Körningen gav signaler, men stannade sedan med felmeddelande.
              Last edited by Henric; 2019-04-09, 14:31.

              Comment


              • #8
                Tror inte compilern fixar det dynamiskt tyvärr.

                Comment


                • #9
                  Det blir lite klurit då jag kör en kombination av dagstaplar och intra. Själva sl-scriptet är i dagstaplar och sedan är lookbacken i minutupplösning. Om jag använder 500 perioder för intra fungerar det bra med hhv, men inte i en loop. Find fungerar väl inte på extraobjekt?

                  Comment


                  • #10
                    Hm, har aldrig prova Find på extra objekt tror jag. Kanske funkar.

                    Comment


                    • #11
                      För att komma vidare lägger jag villkoret med lookbacken i ett xk-script. Då behöver den tunga beräkningen bara göras vid order och om ej passerar händer inget. Det finns väl inga begränsningar i xk-scriptet. Det som går att göra i sl fungerar även i xk?

                      Comment


                      • #12
                        Japp, smart ide!

                        Comment

                        Working...
                        X