Allmänt meddelande

Collapse
No announcement yet.

Arrayer i AT

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

  • Arrayer i AT

    Hej!

    Tack för Era svar... Nu vill jag besvära Er åter

    Fråga 1:
    Jag har byggt ett script för att generera OMX med de 16 största bolagen, där indexet ger väger för eller emot aktuell aktie.
    Är det tillåtet att skriva som jag gjort och använda en Array (en AT-array ) av 16 aktier fast det bara finns stöd för 3 i det grafiska gränssnittet. Det funkar men vilka problem kan jag få?
    Vad ska jag använda vid en array som är större än Z ( nr. 26... x, y, z, ?) i AT?

    -----------------------------------------

    {Realtid OMX16}
    {Fördelning}
    nA:=0.04051314
    nB:=0.02283255
    nC:=0.05901336
    nD:=0.05889627
    nE:=0.13043826
    nF:=0.16579944
    nG:=0.03957642
    nH:=0.10573227
    nI:=0.04320621
    nJ:=0.02950668
    nK:=0.02306673
    nL:=0.02997504
    nM:=0.02283255
    nN:=0.023418
    nO:=0.12973572
    nP:=0.04625055
    nABB:=ADD(nA,MULT(nA,DIV(SUB(CmpRef(C,0,A),CmpRef(C,1,A)),CmpRef(C,0,A))))
    nASSA_B:=ADD(nB,MULT(nB,DIV(SUB(CmpRef(C,0,B),CmpRef(C,1,B)),CmpRef(C,0,B))))
    nATCO_A:=ADD(nC,MULT(nC,DIV(SUB(CmpRef(C,0,C),CmpRef(C,1,C)),CmpRef(C,0,C))))
    nAZN:=ADD(nD,MULT(nD,DIV(SUB(CmpRef(C,0,D),CmpRef(C,1,D)),CmpRef(C,0,D))))
    nERIC_B:=ADD(nE,MULT(nE,DIV(SUB(CmpRef(C,0,E),CmpRef(C,1,E)),CmpRef(C,0,E))))
    nHM_B:=ADD(nF,MULT(nF,DIV(SUB(CmpRef(C,0,F),CmpRef(C,1,H)),CmpRef(C,0,F))))
    nINVE_B:=ADD(nG,MULT(nG,DIV(SUB(CmpRef(C,0,G),CmpRef(C,1,G)),CmpRef(C,0,G))))
    nNDA:=ADD(nH,MULT(nH,DIV(SUB(CmpRef(C,0,H),CmpRef(C,1,H)),CmpRef(C,0,H))))
    nSAND:=ADD(nI,MULT(nI,DIV(SUB(CmpRef(C,0,I),CmpRef(C,1,I)),CmpRef(C,0,I))))
    nSCA_B:=ADD(nJ,MULT(nJ,DIV(SUB(CmpRef(C,0,J),CmpRef(C,1,J)),CmpRef(C,0,J))))
    nSCV_B:=ADD(nK,MULT(nK,DIV(SUB(CmpRef(C,0,K),CmpRef(C,1,K)),CmpRef(C,0,K))))
    nSEB_A:=ADD(nL,MULT(nL,DIV(SUB(CmpRef(C,0,L),CmpRef(C,1,L)),CmpRef(C,0,L))))
    nSHB_A:=ADD(nM,MULT(nM,DIV(SUB(CmpRef(C,0,M),CmpRef(C,1,M)),CmpRef(C,0,M))))
    nSKF_B:=ADD(nN,MULT(nN,DIV(SUB(CmpRef(C,0,N),CmpRef(C,1,N)),CmpRef(C,0,N))))
    nTLSN:=ADD(nO,MULT(nO,DIV(SUB(CmpRef(C,0,O),CmpRef(C,1,O)),CmpRef(C,0,O))))
    nVOLV_B:=ADD(nP,MULT(nP,DIV(SUB(CmpRef(C,0,P),CmpRef(C,1,P)),CmpRef(C,0,P))))
    {Calculate...}
    nVal1:=ADD(ADD(ADD(nABB,nASSA_B),ADD(nATCO_A,nAZN)),ADD(ADD(nERIC_B,nHM_B),ADD(nINVE_B,nNDA)))
    nVal2:=ADD(ADD(ADD(nSAND,nSCA_B),ADD(nSCV_B,nSEB_A)),ADD(ADD(nSHB_A,nSKF_B),ADD(nTLSN,nVOLV_B)))
    nVal3:=ADD(nVal1,nVal2)
    close:=MULT(nVal3,C)
    close



    {@A(1,ABB )@B(1,ASSA B )@C(1,ATCO A )@D(1,AZN )@E(1,ERIC B )@F(1,HM B )@G(1,INVE B )@H(1,NDA )@I(1,SAND )@J(1,SCA B )@K(1,SCV B )@L(1,SEB A )@M(1,SHB A )@N(1,SKF B )@O(1,TLSN )@P(1,VOLV B )}

    ---------------------------------------------------------------------------

    Fråga 2:
    Den globala minneshanteringen får jag inte att fungera. Jag skriver till minnet och hämtar men det funkar helt enkelt inte. Får man skriva till minnet och hämta senare från samma skript. Två tre rader exempelkod räcker (som Ni vet fungerar)....

    Fråga 3:
    Jag använder "Excel webfråga" för DDE import där jag gjort ett "hack" så att uppdateringsfrekvensen är den jag vill (mindre än 1 min). Men hur ändrar jag Autostock så att den läser snabbare? Vilken parameter?

    Fråga 4:
    Vad tror Ni om att anordna kvällsutbildning i Göteborg. Borde vara fler än jag som bor i västsverige och har tusen frågor

    Jag kan troligtvis skaffa fram utbildningslokal åt Er i GBG om det är ett problem...


    Mvh. Niclas
    NiclasGBG

  • #2
    Inget svar på ett par månader

    Jag har köpt programmet vid två tillfällen.

    Vid första tillfället tröttnade jag eftersom dokumentationen var bristfällig...

    Nu har jag åter köpt programmet men är i samma dilemma...

    Ganska irriterande och jag har i princip trötnat på programmet.

    NI har troligtvis en trogen gamal skara av kunder som hängt med ganska länge och kan programmet. Ofta är det ganska grundläggande funktionallitet som saknas dokumentation om... Jag tror att ni har glömt bort användarna och bara koncentrerat er på månadsbetalande kunder av era system...

    I grund och botten är detta en bra ide med automatiserad handel och borde vara en storsäljare bland alla som använder TA.

    Strunta att lägg till en massa nya funktioner i programmet, gör en pedagogisk manual till programmet, så att vi slipper att söka gamla foruminlägg.
    Alternativt ha kvällskurser på olika platser där det finns användare.

    Just nu slösar Ni bort mycket av både min och andra användares tid...

    Det skulle även spara tid för Er som säljer programmet.
    NiclasGBG

    Comment


    • #3
      Hej!

      Det är ju självklart synd om du tröttnar på programmet! Så ska det inte behöva vara. Vi planerar en större uppgradering i framtiden, och dokumentationen kommer att få ett lyft i samband med det. Men funktioner som extra objekt tycker jag ändå är ganska väldokumenterat nu, även om det självklart dyker upp frågor.

      Det är tex en smart ide du har med arrayer, som tyvärr inte stöds i dagsläget. Vi har tillgång till max tre extra objekt per script. Det finns däremot ett annat sätt:

      Om du ansluter ett litet script till varje aktuell aktie du vill testa på, som skjuter in ett värde i var sin minnescell så kan man läsa av alla cellerna i ett "sammanfattningsscript" som gör beräkningen:


      Fråga 2 (exempel)

      ABB:=ditt testvärde för ABB
      SetGVarIf(ABB,100,1)


      ASSA:=ditt testvärde för ASSA
      SetGVarIf(ASSA,101,1)


      osv


      För att läsa in dessa värden i ett sammanfattningsscript anslutet till tex index:

      ABB:=GetGVar(100)
      ASSA:=GetGVar(101)

      osv


      Fråga 3:

      Inställningar > Preferenser > DDE Realtid > kryssa för DDE-Realtid

      Det ska läsas in i realtid om det uppdateras i realtid hos källan.



      Fråga 4:

      Vi får frågan då och då. Vi ska försöka ordna kurser i Göteborg också, men hittills har underlaget varit för dåligt. Det blir heldagsutbildningar hos Nordnet under hösten för att hinna med alla frågor och dyka lite djupare ner i script etc. Då kan det dessutom vara mer lönt för de som bor en bit från Stockholm att åka. Men helt klart skulle vi vilja köra utbildningar i Göteborg om det finns underlag. Vi testar igen efter semestrarna och tar in intresseanmälningar.

      Comment


      • #4
        Bland annat dokumentationen kan bli mycket bättre till AT... Vi är fler som ser fram emot att den förbättras! Det är avgörande för att attrahera nya kunder tror jag!
        "Nothing noble is done without risk." - André Gide

        Comment


        • #5
          Hej och tack för svaret!

          Jag behöver emellertid lite kompletterande svar:

          Vilken parameter ändrar jag för att få snabbare kursuppdateringar på nordnetkurserna via autostock... Det görs någonstans via inifilen.

          1) Hur reglerar jag uppdateringen fr. Nordnet 15 sekunder, 30 sekunder o.s.v.???
          - Förstår att jag bara kan använda 1 alternativ...
          - Om ordrarna blir fel p.g.a. att ordrar hinner att gå iväg innan jag läst från depån, så är detta mitt problem, inte erat...

          2) DDE realtid =
          a) Samma uppdatering som nordnetkurser (enl. fråga 1)?
          b) Eller s.k. fortastmöjligt beroende på min dators snabbhet och storlek på bredband?
          c) Eller så fort Excel eller min DDE-server presenterar kursinformation?

          - Jag kan reglera hur snabbt jag får informationen från min källa. Logiskt borde vara att all information samlas in vid samma tillfälle (DDE + Nordnet).


          Detta är mycket viktig information för mig då hela mitt system bygger på snabbhet genom information från DDE och Nordnet. Tack på förhand.
          NiclasGBG

          Comment


          • #6
            1) Hur reglerar jag uppdateringen fr. Nordnet 15 sekunder, 30 sekunder o.s.v.???
            - Förstår att jag bara kan använda 1 alternativ...
            - Om ordrarna blir fel p.g.a. att ordrar hinner att gå iväg innan jag läst från depån, så är detta mitt problem, inte erat...

            [Globalt]
            OnlineInterval=15
            ClientOnlineInterval=15

            Ställ om så att följande parameter ser ut så här:
            MinIntervalForDisconnect=2


            2) DDE realtid =
            a) Samma uppdatering som nordnetkurser (enl. fråga 1)?
            DDE och vanlig sampling är två helt skilda vägar in i AT. Det går att använda DDE på ett antal valda papper och vanlig sampling på resten om man vill. Det står lite om det i Hjälpfilen om du väljer Inställningar > Preferenser > DDE Realtid och trycker på Hjälp.

            b) Eller s.k. fortastmöjligt beroende på min dators snabbhet och storlek på bredband?
            c) Eller så fort Excel eller min DDE-server presenterar kursinformation?

            - Jag kan reglera hur snabbt jag får informationen från min källa. Logiskt borde vara att all information samlas in vid samma tillfälle (DDE + Nordnet).
            Det är ett tag sedan jag höll på med DDE själv men enligt vad jag vet så är det både b och c som begränsar. I princip går det att köra tick-data och exekvera scripten för varje tick, men det blir extremt systemkrävande så någon form av begränsning hos källan är nog att föredra.

            Comment


            • #7
              Minnesceller fortsättning

              Jag förstår upplägget med minnescellerna som gör att bl.a. parantesdjup blir utökat genom att flera script kan dela upp uppdraget o.s.v. vilket är bra...

              Men när jag använder dessa minnesceller så får jag bara den sista minnescellen (självklart) och ska jag göra en graf av detta så blir det bara en rak linje.

              Är detta begränsningen att detta kan bara användas medan marknaden är öppen i realtid och inte för s.k. eftertester?

              Är alternativet att använda en mängd minnesceller där varje minnescell får användas för att spara minutdata och lägga in en addering med 1 för varje loop scriptet gör (8.5hx60min=510 minnesceller för en dags data) ????

              ---------------------------
              Script 1:
              {Skapa graf}
              nGetValue:=CmpRef(C,0,A)
              SetGVarIf(nGetValue,300,1)


              {@A(1,S&P500)}
              ---------------------------
              Script 2:
              {Göra graf}
              close:=GetGVar(300)
              close
              ---------------------------
              NiclasGBG

              Comment


              • #8
                Att backsimulera med globala minnesceller är betydligt svårare. Allt går helt enkelt inte att göra. Jag håller helt med dig om att arrayer skulle varit kraftfullt, men i nuläget finns det inte tyvärr. Vi skulle kunna kolla om det går att utöka antalet extra objekt däremot, det går nämligen att backtesta om man har kursdata på samtliga objekt.

                Comment


                • #9
                  Minnesceller...

                  Jag försöker att läsa på forumet så mycket som möjligt, men hittar långt ifrån all hjälp jag behöver.

                  Min fråga rör funktionen "Lastrade"....

                  Dessa minnesceller 0, 1, 2, 3, 4.... Är dessa reserverade för just komma ihåg köp och sälj nivåer?
                  Är det något som med automatik lagras i dessa celler????
                  -I så fall måste jag veta vad minnes cell 0 är reserverade för detsamma gäller 1 - 4...

                  - Kollar man i dokumentationen för denna funktion (LastTrade sista raden) t.ex. "LastTrade(S,2) ger innehållet i cell 2 vid senaste säljtrans" står det...

                  - Ska jag dra slutsatsen att just precis i minnescell 2 "råkar" det finnas värdet för den sista försäljningen som skedde i just denna aktie/derivat (via ett "sl)" script)... eller måste jag skriva in värdet till cell 2 vid själva försäljning (via en funktion) och sedan hämta värdet vid en senare användning (i så fall kan jag använda 1 - 999)?????
                  NiclasGBG

                  Comment

                  Working...
                  X