Hej,
ett par frågor när det gäller att få fram antal perioder sedan köpsignal.
Får inte till en beräkning med hjälp av lasttrade(), D och Date() eftersom halva dagar och helger räknas då med. Enligt vad jag förstår skall väl bara databasperioder räknas in när man använder Date()?
i15(
...
periods=mult(sub(D, lasttrade(b, d)), 96) { 96 motsv 15 min perioder }
...
)
Ett alternativ är ju att använda topbars:
i15(
...
buySignal=and(..., ...)
periods=topbars(buySignal, 999, 1)
...
)
Men när jag ritar ut denna i diagrammet så verkar den bara fungera för föregående period.
Är anledning att buySignal inte är en dataserie utan en temporär variabel som bara finns under nuvarande period och skrivs sedan över?
En annan (osnygg) lösning är att räkna upp en variabel, men hur kommer det sig att följande kod inte fungerar:
i15(
...
buySignal=and(..., ...)
periods=and(not(aref(buySignal, 1)), add(aref(periods, 1), 1))
...
)
Är det så att den inte fungerar eftersom periods skrivs över "nästa" period?
Följande kod fungerar:
i15(
...
buySignal=and(..., ...)
setgvarif(1, 899, aref(buySignal, 1))
setgvarif(add(1, getgvar(899)), 899, not(aref(buySignal, 1)))
...
)
Det verkar som om ovanstående fungerar ibland, men ibland löper amok. Är anledningen att scriptet körs flera gånger, inte bara _en_ gång per 15 minuters period - och att man i så fall behöver kolla att man är i början av perioden t.ex.?
Kan man kolla detta med eqv(d, date()) eftersom d är början på databasperioden? Får dock inte detta att fungera.
Sammanfattningsvis :-) Någon som kan tipsa om hur man räknar ut antal perioder efter senast köp?
Mats
ett par frågor när det gäller att få fram antal perioder sedan köpsignal.
Får inte till en beräkning med hjälp av lasttrade(), D och Date() eftersom halva dagar och helger räknas då med. Enligt vad jag förstår skall väl bara databasperioder räknas in när man använder Date()?
i15(
...
periods=mult(sub(D, lasttrade(b, d)), 96) { 96 motsv 15 min perioder }
...
)
Ett alternativ är ju att använda topbars:
i15(
...
buySignal=and(..., ...)
periods=topbars(buySignal, 999, 1)
...
)
Men när jag ritar ut denna i diagrammet så verkar den bara fungera för föregående period.
Är anledning att buySignal inte är en dataserie utan en temporär variabel som bara finns under nuvarande period och skrivs sedan över?
En annan (osnygg) lösning är att räkna upp en variabel, men hur kommer det sig att följande kod inte fungerar:
i15(
...
buySignal=and(..., ...)
periods=and(not(aref(buySignal, 1)), add(aref(periods, 1), 1))
...
)
Är det så att den inte fungerar eftersom periods skrivs över "nästa" period?
Följande kod fungerar:
i15(
...
buySignal=and(..., ...)
setgvarif(1, 899, aref(buySignal, 1))
setgvarif(add(1, getgvar(899)), 899, not(aref(buySignal, 1)))
...
)
Det verkar som om ovanstående fungerar ibland, men ibland löper amok. Är anledningen att scriptet körs flera gånger, inte bara _en_ gång per 15 minuters period - och att man i så fall behöver kolla att man är i början av perioden t.ex.?
Kan man kolla detta med eqv(d, date()) eftersom d är början på databasperioden? Får dock inte detta att fungera.
Sammanfattningsvis :-) Någon som kan tipsa om hur man räknar ut antal perioder efter senast köp?
Mats
Comment