Allmänt meddelande

Collapse
No announcement yet.

Idiom för statefulla script

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

  • Rikard Autostock
    replied
    Retval/Getval skriver och läser till "lokala" celler inom en och samma scriptkörning.
    Varje script har en egen uppsättning av dessa celler, och de är även kontounika och instrumentunika.

    SetGvarIf däremot skriver till globala celler som sparas på disk. Dessa har ingen koppling till instrument eller konton, så här måste man tänka på vilka celler man använder till vad. Det är dessa celler som även kan användas för att flytta info mellan olika script.

    Leave a comment:


  • favetelinguis
    started a topic Idiom för statefulla script

    Idiom för statefulla script

    Hur är det tänkt att man skall behålla värden mellan script exikveringar? Som jag har testat två varianter men osäker vad som är att föredra.

    Första varianten sparar ner värdena i en extern cell mellan varje exikvering. Problemet här är på rad 8 där jag måste använda SetGVarIf för jag är beroende på en villkorlig skrivning. Jag är osäker om RetVal och SetGVarIf skriver till samma fält och om ens detta då funkar.
    HTML-kod:
    Nivå:=50
    
    Senaste=GetVal(2)
    sPos=Mx(0,Add(Senaste,Sub(C,Ref(C,1))))
    RetVal(sPos,2)
    Draw(sPos,4,DGQB)
    Signal=Gt(sPos,Nivå)
    SetGVarIf(0,2,Signal) {Om vi får signal resetta accumelerade värdet}
    Add(0,Signal)
    Nästa alternativ och det alternativ jag tycker känns mest naturligt är att skapa en dataserie av mina uträknade värden och sedan komma åt det historiska värdet med Aref(d,p). Problemet jag stöter på här är att referera sPos på rad 3 inte syntax checkar ok eftersom jag inte skapar objektet försän senare.
    HTML-kod:
    Nivå:=50
    
    sPos1=Mx(0,Add(Aref(sPos,1),Sub(C,Ref(C,1))))
    Draw(sPos,4,dgqb)
    Signal=Gt(sPos,Nivå)
    sPos=If(Signal,0,sPos1)
    Add(0,Signal)
    Är detta de två alternativ som används i Autotrader för att komma åt historiska värden eller finns det bättre sätt?
Working...
X