Allmänt meddelande

Collapse
No announcement yet.

Läsa värden från flertal aktier

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

  • Läsa värden från flertal aktier

    Hej,
    Jag skulle vilja läsa av RSI från alla aktier som ingår i OMXS30, till mitt script och sedan göra beräkningar på inlästa data.
    Har tidigare använt externt objekt när jag läst av enstaka objekt.
    Är det globala celler som gäller? Hur gör jag detta?

  • #2
    Jag har lite bråttom, men försöker ändå hjälpa. Ett sätt är att använda celler och crcid() som identifierar instrument. Crcid() kan du få fram genom att sätta värdet av aktuell aktie i en tom cell eller köra ett script som skriver ut crcid() för respektivie instrument i en extrakolumn. Därifrån får du scripta så att instrument sparar värdet i rätt cell. Någon annan som vill fylla på....

    Tex.
    {värdet i cell 201 har du redan stoppat in}
    .......
    nuvarandeaktie=crcid()
    SetGvarIf(rsiws(5),101,eqv(nuvarandeAktie,GetGvar(201)))

    Comment


    • #3
      CRCID() är det "snygga" sättet, men det finns ett annat lite mer "quick and dirty" via Indata-fälten. Välj ett ledigt fält, tex fält 24. Ange ett unikt cellnummer för varje aktie dit aktuellt värde för RSI ska skrivas, så kan man enkelt läsa ut alla cellerna i ett annat script.


      cell=scrpar(24)

      setgvarif(rsiws(14),cell,1)


      skriver 14-perioders rsi till cellen som angivits i fält 24.


      Comment


      • #4
        Själv använder jag mig ju av 10 st kompletta ordermodeller som inte triggar och som tar in 3 st aktier vardera via cmpref. Sedan kan man analysera varje aktie som man önskar, multiplicerar med aktiens procentsats av indexet och sparar resultatet i en global cell. Sedan adderar man alla 30 globala celler till en summaglobalcell som man använder som godhetstal i triggerscriptet.

        mvh
        Bertil

        Edit: Jag analyserar ju volymförändringar individuellt per ingående aktie samt tittar även på om det är någon enskild aktie som drar indexet eller om det är makro.
        Edit2: Fördelen med att använda dummyordermodeller och cmpref är att man inte behöver ansluta de ingående aktierna vare sig då man simulerar eller kör skarpt. Detta sker automatiskt.
        Last edited by Bertil; 2019-02-10, 22:57.

        Comment


        • #5
          Tack för alla förslag!
          Jag har försökt mig på att använda CrcId och lyckas skriva till cell samt läsa från densamma, men bara från samma script som jag skriver ifrån.
          När jag använder GetGvar() från annat script så fungerar det inte.

          Bifogar en bild som visar de två scripten. Det vänstra kopplar jag till aktierna och det högra tänkte koppla till annat objekt som ska läsa in värdena.
          Tycker att draw-funktionen borde rita en flagga på dagens kursstapel.
          Vad gör jag för fel?
          Attached Files

          Comment


          • #6
            Larmbevakat måste vara kryssat för de script som skriver till cellerna, annars sker ingen skrivning. Kan det vara det som gör att du inte får ut värden?


            Scriptet som adderar ihop värdena i cellerna kan göras enklare med en loop:

            startcell:=100
            antal_varv:=29

            retval(0,0) {räknare}
            retval(0,1) {summa}

            counter=add(getval(0),startcell)
            innehåll=getgvar(counter)
            summa=getval(1)
            retval(if(innehåll,add(1,summa),summa),1) {om "innehåll" är true, addera 1 till senast lagrat värde i cell 1, annars spara befintligt värde }

            loop(counter,antal_varv) {loopar tillbaka till "counter" så många gånger som "antal_varv" anger }


            add(0,0)

            OBS, ej testat men iden framgår förhoppningsvis. Summan av celler som innhåller villkor=True kan hämtas i lokal cell 1 med getval(1)






            Last edited by Rikard Autostock; 2019-02-14, 21:30.

            Comment


            • #7
              Ursprungligen postat av Heinz Visa inlägg
              Tack för alla förslag!
              Jag har försökt mig på att använda CrcId och lyckas skriva till cell samt läsa från densamma, men bara från samma script som jag skriver ifrån.
              När jag använder GetGvar() från annat script så fungerar det inte.

              Bifogar en bild som visar de två scripten. Det vänstra kopplar jag till aktierna och det högra tänkte koppla till annat objekt som ska läsa in värdena.
              Tycker att draw-funktionen borde rita en flagga på dagens kursstapel.
              Vad gör jag för fel?
              Vid diagramkörning är ju scriptet bara kopplat till ett instrument så då fungerar ju inte crcid för annat än för det kopplade instrumentet då du är utanför handelsdagen.
              Om du har en ansluten ordermodell till ett konto som du kopplat till alla 30 aktierna så borde GetGVar fungera under handelsdagen.
              Bäst är att testa med Analysbänken och skriva ut resultatet med "Scriptkolumner för extra information"
              mvh
              Bertil

              Comment


              • #8
                Analysbänken får inte reda på värden från live-miljön, men däremot kan man använda Kalkylforskaren.

                Comment


                • #9
                  OK, men borde jag inte kunna få en flagga på enskilda aktier för dagens datum, med draw() och på så vis se just den cellens innehåll?

                  Comment


                  • #10
                    Jo, det går också, kolla så att scriptet är förkryssat för att rita i rätt område etc. Man kan testa genom att kommentera bort villkoret för att tvinga fram en flagga:

                    draw(mult(villkor,10),2,dgsbf)

                    ritar mörkgröna flaggor 10 procent höjd i område kursstaplar.


                    Kommentera bort med:


                    draw(mult({villkor}1,10),2,dgsbf)

                    så blir det alltid sant och ska rita flaggor överallt.

                    Comment


                    • #11
                      Om det vänstra scriptet är kopplat till aktierna live. Antingen via ordermodeller eller diagram borde upplägget fungera. Vilket diagram/instrument som helst ska kunna läsa värdena. Var säker på att syntaxen är ok och att inga namn krockar med reserverade namn. Inget annat script får skriva till samma celler. Om jag inte får det att fungera brukar jag börja enkelt. Bygg ett nytt script. Kolla både villkoret och värdet i första cellen(till vänster). Läs in endast det värdet och stäm av. Fungerar det är det något nedåt.

                      Comment


                      • #12
                        Ursprungligen postat av Henric Visa inlägg
                        Om det vänstra scriptet är kopplat till aktierna live. Antingen via ordermodeller eller diagram borde upplägget fungera. Vilket diagram/instrument som helst ska kunna läsa värdena. Var säker på att syntaxen är ok och att inga namn krockar med reserverade namn. Inget annat script får skriva till samma celler. Om jag inte får det att fungera brukar jag börja enkelt. Bygg ett nytt script. Kolla både villkoret och värdet i första cellen(till vänster). Läs in endast det värdet och stäm av. Fungerar det är det något nedåt.
                        Det vänstra scriptet klarar att hämta värden och skriva flaggor på alla (en i taget) valda aktier. Men om jag gör samma procedur från annat skrift så läser den 0.

                        Comment


                        • #13
                          Jag testade precis med tre aktier och det fungerade. Inte exakt som du. Testa detta(skriver direkt så du får kolla syntaxen). Var säker på att cellerna 401-403 och 501-503 är tomma. Koppla skriv till tre aktier. koppla läs till tex omxs30. Larmbevakat.

                          Skriv:
                          ====
                          medel=gt(c,mov(c,5,s))
                          SetGvarIf(crcid(),401,eqv(GetGvar(401),0))
                          SetGvarIf(crcid(),402,eqv(GetGvar(402),0))
                          SetGvarIf(crcid(),403,eqv(GetGvar(403),0))

                          SetGvarIf(medel,501,eqv(crcId(),GetGvar(401)))
                          SetGvarIf(medel,502,eqv(crcId(),GetGvar(402)))
                          SetGvarIf(medel,503,eqv(crcId(),GetGvar(404)))

                          and(0,0)

                          LÄS:
                          ====

                          aktie1=GetGvar(501)
                          aktie2=GetGvar(502)
                          aktie3=GetGvar(503)

                          Total=add(add(aktie1,aktie2),aktie3)

                          draw(mult(eqv(Total,3),10),3,gsbF)
                          add(0,0)
                          Last edited by Henric; 2019-02-15, 13:23.

                          Comment

                          Working...
                          X