Allmänt meddelande

Collapse
No announcement yet.

Dynamisk periodberäkning

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

  • Dynamisk periodberäkning

    Nu provar jag att bryta ut ett ämne ur en tidigare tråd så får vi se hur det funkar...

    Jag hade en fråga en bit ner i tråden
    script skolan om dynamisk periodberäkning:

    Vad innebär "p1:tittabakåt" i den här raden?

    high1:=gt(h,aref(h,p1:tittabakåt))


    lfm svarade:
    -----
    Ett kolon i periodparameter anger maxvärdet till höger som det kan anta när man har ett dynamiskt framtaget periodvärde. Detta för att kompilatorn skall kunna reservera tillräckligt med utrymme för de dataserier som kan uppstå i returvärden.

    (OBS enbart i ActiveTrader)

    Aref() här har ju ett periodvärde som levereras av scriptet och är ingen konstant som det oftast är annars.

    Dynamisk period fungerar i alla funktioner med periodvärde utom Ref(). Därför används Aref() istället i detta fallet som dessutom fungerar på alla typer av dataserier.
    -----

    Nu undrar jag vad som händer om man inte anger maxvärdet, för det gjorde jag inte i ett script (i tråden ValueWhen) där jag bara skrivit:

    AREF(dataserie, TOPBARS(villkor))

    Scriptet fungerade inte som tänkt när jag skrev så, och jag tänkte nu att det kanske kan ha varit därför. Alltså, om man inte skriver ett maxvärde, blir det då totalkajk eller bara ineffektivt med något stort tal som automatiskt tilldelat maxvärde?

  • #2
    Utan maxvärde kan det bli krasch av programmet i värsta fall. Det fungerar säkert inte som tänkt heller. Detta beroende på hur stor dynamisk variation man åstadkommer för scriptets periodparameter.

    Är det två perioder bara som det var i tråden där det togs upp, så är det ingen fara, för det reserveras alltid plats för minst två perioder av alla dataserier. Man slipper krasch alltså.

    Allt längre än två perioder kommer att skriva över någon annan dataserie på stacken med oväntade resultat.

    Comment

    Working...
    X