Allmänt meddelande

Collapse
No announcement yet.

Antal perioder sedan köpsignal

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

  • Antal perioder sedan köpsignal

    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

  • #2
    Antal perioder sedan köp få du via:

    sub(d,lasttrade(b,d))

    Ditt exempel med:

    periods=and(not(aref(buySignal, 1)), add(aref(periods, 1), 1))

    fungerar inte eftersom du använder periods i uttrycket som definierar samma variabel. Inte tillåtet.

    Dessutom brukar det bli problem med mellanslag inne på raderna. Mellan rader är det inga problem däremot.

    Comment


    • #3
      Du menar alltså att det är så enkelt? Tänkte mig att man då får fel på antal börsdagar med tanke på helger och annat skräp som håller börsen stängd

      /Erik

      Comment


      • #4
        Ah, sorry, tänkte bara i dagsupplösning. Såg inte först att det var 15-minutersperioder.

        Du kan använda HHVBARS():


        hhvbars(lt(d,lasttrade(b,d)),100)

        här letas antal perioder upp till senaste köp inom 100 perioder bakåt. Men testar helt enkelt vid vilken tidpunkt D var mindre än LastTrade(b,d) senast och returnerar antal staplar dit.

        Attached Files

        Comment


        • #5
          Tack för hjälpen!

          Comment

          Working...
          X