Allmänt meddelande

Collapse
No announcement yet.

REF och AREF

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

  • REF och AREF

    REF(d,p) och AREF(d,p) har bägge följande beskrivning:

    "Referens till dataserien d med start 10 perioder bakåt"

    Jag har inte riktigt förstått vad de 10 perioderna syftar på. Det är rena goddag yxskaft för mig. Vad kommer de tio perioderna ifrån och vad menas med att de startar där? Exemplena gör det heller inte klarare.

    Parametern d är en dataserie som matchas mot staplarna - som jag har förstått det. Om jag då skriver REF(c,1) vad får jag då? Close 11 perioder bakåt (10+1), 9 perioder bakåt (10-1) eller 1 period bakåt?

    Någon som vet?

    Är det också korrekt att REF och AREF har precis samma funktion med den skillanden att REF är begränsad till "konstanter" (dataserierna som fås av l,h,o,c, etc) i d-parametern? Är REF snabbare än AREF eller vad är annars poängen med att ha bägge?

    /Robert

  • #2
    Hej Robert!

    AREF kom till senare i scriptspråket, så egentligen behövs väl inte REF längre.

    Om du skriver REF(L,1) så får du L från 1 period tillbaka, alltså förra perioden.

    Det kan ju vara bra att kolla hur något såg ut för några perioder sen och samtidigt mäta mot något villkor som är SANT eller FALSKT just nu.

    Exemplet med HHV(AREF(RSI(14),1),10) är om man bryter ner det:

    AREF(RSI(14),1) värdet på RSI(14) förra perioden (1 period tillbaka)

    HHV(ovanstående,10) är högsta värdet på RSI(14) inom 10 perioder tillbaka men förskjutet 1 period, alltså period 11-1 bakåt.

    Lite knöligt att förklara kanske....

    Comment


    • #3
      Tack Rickard!

      Så som du beskriver det är också så som jag antagit att det fungerar.

      Men det passar inte med beskrivningen som refererar till "start tio perioder bakåt" vilket fortfarande är goddag yxskaft. Det verkar referera till exemplet snarare än funktionen.

      Beskrivningen borde nog korrigeras.

      /Robert

      Comment


      • #4
        Jo jag håller med om att det ser konstigt ut. Undrar om det kan vara så att funktionen maximalt kan hantera 10 perioder bakåt?

        Comment


        • #5
          Max tio staplar bakåt vore en smula fattigt. Mången TA går ju betydligt längre bakåt än så.

          Vi får se vad Lasse kan säga om saken. Han verkar vara borta. Han är ju annars som regel väldigt snabb med att svara.

          /Robert

          Comment


          • #6
            Exemplet med HHV(AREF(RSI(14),1),10) är just ett exempel som jag ser det. Jag har använt hhv() med betydligt längre räckvidd än 10 med framgång.

            Allt är ju enkelt att kontrollera. Skriv koll:=gt(c,aref(c,20)) och kolla när du får flagga efter en dipp. Då ser man omedelbart vad som gäller. Den principen använder jag alltid. Regeln är att man kan inte lita på något förrän man kollat det!

            Om Lasse har en välförtjänt sermester så tycker jag han verkligen har gjort sig förtjänt av den. Dock kunde han ha satt upp Semesterstängt på dörren!

            Comment


            • #7
              Det knepiga är nog inte själva exemplet. Det som jag tror Robert hängt upp sig på och som även jag tycker ser lite konstigt ut är själva texten i beskrivningen till funktionen:

              "Referens till dataserien d med start 10 perioder bakåt"

              Comment


              • #8
                Väcker den här tråden med ungefär samma fråga som cph hade 2006.

                Går det förklara lite utförligare än vad som görs i scriptref?

                Säg att jag vill hitta ett tillfälle där %b indikatorn är mindre än 0 tre perioder i rad. Därefter vill jag hitta en close som är lägre än det sista tillfället då %b var mindre än 0 men större än nedre bollingerbandet.

                Någonting såhär skriver jag då

                procB=mult(div(sub(c,bolbands(20,2,L)),sub(bolbands(20,2,U),bolbands(20,2,L))),100)

                3under=find(lt(procB,0),3,c,3)
                köpläge=lt(c,3under)
                köp1=and(köpläge,gt(c,bolbands(20,2,L)))



                Men skulle jag kunna använda aref till att göra det med färre rader kod? Jag fattar liksom inte riktigt hur aref funkar..

                Comment


                • #9
                  Just att testa om något är "true" i minst x antal staplar i följd är ganska enkelt, man kan använda LLV(). Tex:

                  sant_minst_10_bars=llv(villkor,10)

                  LLV() returnerar ju lägsta värdet i dataserien under x staplar, och om dataserien har varit sann alla 10 perioderna blir lägsta värdet 1.

                  3under=llv(lt(procB,0),3)

                  blir alltså sant när procB varit under noll i minst 3 staplar i följd.

                  Comment


                  • #10
                    Ursprungligen postat av Rikard Autostock Visa inlägg
                    Just att testa om något är "true" i minst x antal staplar i följd är ganska enkelt, man kan använda LLV(). Tex:

                    sant_minst_10_bars=llv(villkor,10)

                    LLV() returnerar ju lägsta värdet i dataserien under x staplar, och om dataserien har varit sann alla 10 perioderna blir lägsta värdet 1.

                    3under=llv(lt(procB,0),3)

                    blir alltså sant när procB varit under noll i minst 3 staplar i följd.
                    Sedär ja

                    Comment

                    Working...
                    X