Allmänt meddelande

Collapse
No announcement yet.

aref fråga

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

  • aref fråga

    Håller på med ett ganska komplext och långt skript för sannolikhetsberäkningar.

    Nedan snutt sätter parametrarna i en nestad loop. Den yttre loopen stegar fram var 8 från 1 till n (35 i mina tester men ska kunna vara 3800

    Behöver förskjuta detta ett steg till

    retval(add(getval(8),1),0) { sätter jämförelseperiod i bakåtblicken}
    retval(aref(c,getval(8)),1) { sätter startclose i bakåtblick}


    Variabel 0 ovan (första raden) är inget problem Det är c, L, H som jag måste förskjuta med var 8 som utgångspunkt. Provade att lägga in en add(gval(8),1) men då fick jag en massa kompileringsfel. Provade denna konstruktion.

    förskjutet=add(getval(8),1)
    retval(add(getval(8),1),2) { sätter jämförelseperiod i bakåtblicken}
    retval(aref(c,förskjutet),1) { sätter startclose i bakåtblick}

    Provade att sätta förskjutet till add(getval(8,0) och fick nonsens resultat. Tanken är att det ska vara getval(8),1 men ville testa var felet var.

    Hur kan dessa snuttar bli helt olika?

    PS Jag behöver H, C, L för aktuell dag och för nästa dag och föregående dag. Jag håller på med betingade sannolikheter. Om dagens formation, hur stor sannolikhet är det att formation blir si eller så imorgon givet statistik DS
    Last edited by HenrikSyst; 2016-09-20, 07:03.

  • #2
    Men detta funkar

    formkollper=add(getval(8),0)

    highformkoll=aref(h,formkollper)
    retval(add(getval(8),1),0) { sätter jämförelseperiod i bakåtblicken men dagen innan}

    Comment


    • #3
      Om du vill titta på "nästa" dag behöver du ha ett villkor som blir sant då, hitta dagen med Find och låta den returnera dataserien förskjuten med valfria perioder bakåt. Dvs, senaste dag du kan hitta då blir "imorgon" räknat från det verkliga villkoret, och bakåt är ju inga problem med Aref().

      Ex:

      villkor=xxxxxx

      imorgon=find(aref(villkor,1),100,c,1)

      returnerar C från dagen efter villkoret var sant.


      idag=find(villkor,100,c,1)

      returnerar C från dagen då villkoret är sant.


      igår=find(villkor,100,aref(c,1),1)

      returnerar C från dagen innan villkoret var sant.


      Att lägga aref() på getval() är meningslöst eftersom getval() inte returnerar någon dataserie utan endast momentana värden.

      Om man ska styra periodvärden dynamiskt med en variabel behöver man reservera maxantal perioder som kan komma att användas:

      retval(aref(c,förskjutet:20),1)

      här reserveras upp till 20 perioder förskjutning.

      Comment


      • #4
        Tack.

        Men det här funkar. Det enda jag är ute efter är att hitta c för 1,2,3,4,5 osv dagar tillbaka Är det bara sinkadus att det funkar?

        retval(newpback,8) { sätter start för att räkna hits bakåt}

        startouterloop=add(0,0) { start - Den stora ytterloopen för att kontrollera hits}
        retval(aref(c,getval(8)),1) { sätter startclose i bakåtblick}
        retval(add(getval(8),1),8) { stegar bakåt}
        loop(startouterloop,200)

        (har utelämnat kod som inte är relevant för frågeställningen)
        Last edited by HenrikSyst; 2016-09-20, 14:51.

        Comment

        Working...
        X