Allmänt meddelande

Collapse
No announcement yet.

Köp på extern signal via GetIni() och CRCID()?

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

  • Köp på extern signal via GetIni() och CRCID()?

    Hej,
    Alldeles ny i appen och försöker lista ut hur allt hänger samman. Jag har ett litet projekt där jag skulle vilja generera köpsignaler externt och ta in dom i AT för vidare processing och ev köp.
    Jag har förstått att man kan använda GetIni() som en kanal in, så min första idé var att skriva crcid och limit-pris, som AT sen kan läsa in och exekvera.

    Så här skulle det kunna se ut i ini-filen:
    v1337=3588324501
    v1338=1234.50

    Och då vill jag köpa ABB (crcid 3588324501) till priset 1234.50 SEK.

    Sen borde jag kunna, på liknande vis, ha ett script som kollar om den har samma crcid som i ini-filen, och i så fall köper till myLimitPrice.

    Kod:
    myCrcId01:=GetIni(1337)
    myLimitPrice:=GetIni(1338)
    buyCurrentInstrument:=eqv(myini,crcid())
    Detta skulle jag vilja ha för N antal instrument, vi kan säga 10 för nu, och i så fall skulle mina ini-variabler vara från 1337 till 1356.
    Jag läste i dokumentationen att man bara kan accessa 4 minnesplatser per script, så här går jag bet, jag behöver ju läsa 20.

    Hur skulle ni tänka kring mitt problem? Är den enda lösningen att göra ett flertal script som alla läser 4 ini-variabler var, eller finns det något mer elegant sätt?

    Tack!

  • #2
    Förutsatt att det endast är 20 aktier och att scripten bara exekverar blir det hanterbart. Kankse inte det snyggaste sättet. Ett annat tillvägagångssätt är att skriva en aktie itaget som sedan spars i vanliga celler. Det beror dock på handelstempo och upplägg.

    Edit: Jag provade dynamiska celler, men fungerade inte med getini(). Det var ett tag sedan och om om inget har ändrats kvarstår problemet.
    Last edited by Henric; 2019-10-20, 22:11.

    Comment


    • #3
      Skulle det gå att köra seriellt? Dvs 1 cell som innehåller ID, en annan som innehåller signalststus, tex 1=Long, 2= Exit, 3=Short osv, eller varför inte sätta positionsstorlek i kr som signalstatus? 100000= long för 100 000 kr. Negativt värde kan få betyda Short för X kr.
      På så vis kan man enkelt testa om scriptet ”känner igen” ID och får träff på aktien. Då behövs bara två celler. Men det förutsätter att önskad signalstatus och ID ”sänds” till cellen under tillräckligt lång tid för att den ska hinna handlas. Därefter fritt fram att skifta till ny position och ID osv i samma celler.

      Comment


      • #4
        Vi menar nog egentligen samma sak. Jag tror det mest handlar om handelstempo. Är det tex handel av aktier under 5 minuter i slutet av dagen blir det enkelt. Man lägger en loop externt som hämtar signalerna och sparar på fil en i taget. När AT har läst och sparat signalen i en vanlig cell(tex dynamiskt) sparas en status på fil som talar om för externa loopen att gå till nästa.

        Comment


        • #5
          Att man manuellt kan editera i inifilen dvs öppna-skriva-spara förstår jag, men vilket program skall man använda om man med automatik skall kopiera ett värde från ett annat program tex excel och sedan automaiskt skriva till inifilen utan att riskera att man skriver fel?
          Undrar
          Bertil

          Comment


          • #6
            Ursprungligen postat av Henric Visa inlägg
            Vi menar nog egentligen samma sak. Jag tror det mest handlar om handelstempo. Är det tex handel av aktier under 5 minuter i slutet av dagen blir det enkelt. Man lägger en loop externt som hämtar signalerna och sparar på fil en i taget. När AT har läst och sparat signalen i en vanlig cell(tex dynamiskt) sparas en status på fil som talar om för externa loopen att gå till nästa.
            Jag tänkte mig i första hand att undvika dynamiska celler (eftersom det inte fungerar med SetIniIf(). Två celler är allt som behövs om man kör seriellt. Begränsningen blir tempot med vilket man kan växla mellan olika instrument i signaleringen, men en rimlig tid per instrument vore kanske 1 minut. Så om man loopar instrumentlistan på "avsändarsidan" som skriver till ini-filen varje minut så hinner ordermodellerna i Autotrader snappa upp status och handla. Det blir dessutom samma script till alla instrumenten eftersom det är fasta celler som används.



            Ursprungligen postat av Bertil Visa inlägg
            Att man manuellt kan editera i inifilen dvs öppna-skriva-spara förstår jag, men vilket program skall man använda om man med automatik skall kopiera ett värde från ett annat program tex excel och sedan automaiskt skriva till inifilen utan att riskera att man skriver fel?
            Undrar
            Bertil
            Det går att bygga externa program som skriver till en ini-fil ganska enkelt, tex med AutoIt eller nåt.

            Comment


            • #7
              Jo visst, men det går att snabba på. Om man sparar signalen(getini) med setgvarif samtidigt som order läggs bygger man en databas som kan hantera situationer då order tex ej går igenom. När den nya signalen sparats och skakat hand i ini-filen kan nästa aktie läsas in. En minut är alldeles för lång tid om tex 20 aktier kan handlas.

              Vilket programspråk som helst kan användas. Det gäller att vara vaksam om Autostock gör ändringar och att det finns felhantering om något strular i ini-filen.
              Last edited by Henric; 2019-10-21, 10:17.

              Comment


              • #8
                Det kan man absolut göra, kanske lägga en tredje cell i ini-filen som innehåller destinationscell för SetGVarIf().

                Comment


                • #9
                  Ursprungligen postat av Teeling Visa inlägg
                  Hej,
                  Alldeles ny i appen och försöker lista ut hur allt hänger samman. Jag har ett litet projekt där jag skulle vilja generera köpsignaler externt och ta in dom i AT för vidare processing och ev köp.
                  ...
                  Ja, det är ju en approach att bara använda NAT som ett orderläggningsprogram.
                  Men de flesta strategier kan ju skrivas som ordermodeller direkt i NAT kanske till och med bättre och mer flexibelt. Det skulle jag satsa på...

                  mvh
                  Bertil

                  Comment


                  • #10
                    Tack för snabba och bra kommentarer! Bra idé där med att köra dom i serie, det ska jag helt klart testa! Blir ju snyggare, om man bara kan få det tillräckligt stabilt. En minut mellan ordrarna är lite mycket, jag hoppas kunna skjutsa ut allihop i stängningscallen, men ska se om man kan trimma lite på hastigheten. Om jag spar en variabel i inifilen för att representera "omhändertaget" borde jag kunna uppdatera filen direkt när AT har gjort sitt, och få till det hela ganska snabbt.

                    Men en ytterligare fråga - NÄR körs mina script av AT? Om jag har ett script kopplat till en ordermodell, och sedan till ett instrument, när körs det då? På intervall, eller när det kommer ny data till instrumentet, eller på nåt annat event?
                    Känner att jag saknar lite grundläggande info om hur saker exekveras, men kämpar på i dokumentationen/forumet. Finns det nån grundläggande scriptgenomgång på t.ex. youtube? Hittar en del 3 av vad som ser ut som en genomgång, men har inte hittat del 1 och 2.

                    @Bertil - jag har inte tänkt att BARA använda AT till detta, men det är ett av projekten jag labbar med just nu, och det som känns mest oklart om det kommer att funka, så jag börjar med det medan jag har en trial på programmet. Anledningen till att signalera externt är att jag vill jobba med olika typer av reinforcement learning-modeller för att se om man kan använda det för att förutspå framtida rörelser. Vem vet om det går att hitta nån edge, men kul att jobba på! :-)

                    Comment


                    • #11
                      Scripten körs på intervall, med loop-delay 5 sek som standard. Man kan ändra den i en annan ini-fil. Man skulle kunna låta AT skriva när status på position till två andra celler som du kan använda som feedback, en cell för ID och en annan för status, tex 1=klart, 2=ej klar.

                      Comment


                      • #12
                        Ursprungligen postat av Teeling Visa inlägg
                        ...
                        @Bertil - jag har inte tänkt att BARA använda AT till detta, men det är ett av projekten jag labbar med just nu, och det som känns mest oklart om det kommer att funka, så jag börjar med det medan jag har en trial på programmet. Anledningen till att signalera externt är att jag vill jobba med olika typer av reinforcement learning-modeller för att se om man kan använda det för att förutspå framtida rörelser. Vem vet om det går att hitta nån edge, men kul att jobba på! :-)
                        Mycket intressant koncept!

                        Men för att lyckas måste man ju:

                        1) Få in historiska kursdata med hög upplösning till ditt externa program (mycket svårt att få ut dessa från NAT då det ingår i Autostocks affärsidé att endast tillhandahålla dem inne i NAT).

                        2) Få in realtidskurser i det externa programmet.

                        3) Scipta reinforcement learning-modeller i det externa programmet (men det utgår jag ifrån att du redan har erfarenhet av).

                        4) Köra backtracking (simulera) i det externa programmet

                        5) Köra reinforcement learning-modeller i realtid samtidigt på historiska och realtidsdata.

                        6) Skicka triggsignaler till NAT.

                        Nr 6) är ju den enklaste biten. Har du koll på de övriga punkterna?

                        mvh
                        Bertil

                        Comment


                        • #13
                          @rickard tackar, låter som en bra approach! Ska testa lite!

                          @bertil allt utom nr 6 kan jag styra lite över själv, men hur AT beter sig måste jag ju helt enkelt anpassa mig till. Jag har gjort allt det andra, på ett eller annat sätt, tidigare, så ska säkert gå att få ihop. Men jag börjar med nr 6, för utan den biten blir det inget alls! :-)
                          Sen ska ju sägas att jag inte bara tänker ha AT som ”orderläggare”. Allt annat godis som programmet självt har att erbjuda har jag fått grep om, men just denna feature skulle vara intressant för mig, så jag vill testa den innan jag kliver på ett långt abonnemang.

                          Comment


                          • #14
                            Nice, hojta till om du kör fast på något så löser vi det.

                            Comment

                            Working...
                            X