Allmänt meddelande

Collapse
No announcement yet.

Hur snabbt uppdateras portfolio(v)?

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

  • Hur snabbt uppdateras portfolio(v)?

    Om man använder Fill and Kill och antar att hela innehavet inte blir sålt vid ett hastigt fall i första säljordern, skall resterande innehav naturligtvis postas i en ny säljorder helst vid nästa insamling. Om inte portfolio(v) uppdaterats vid den tidpunkten kommer för många kontrakt att säljas vid order nr. 2.

    Kanske kunde LastTrade(s,v) användas där registreringen kommer omedelbart. Detta är ju extra aktuellt nu med NN:s "fåniga fråga".

    Någon som har erfarenhet av detta?

  • #2
    NNs portföljhantering styr vad Friendly uppfattar som gällande innehav. Den skannas av varje kursinsamling.

    När hela innehavet försvinner finns ingen post längre i portföljen och man styr via avsluten så att posten kan nollas.

    Comment


    • #3
      Allt det där känner jag till. Frågan är hur lång tid NN brukar ta på sig för att uppdatera portföljen?

      Under denna tid får ju inte någon ny order postas om allt skall bli rätt!

      Man kanske kan fördröja order nr 2 på något sätt.

      Comment


      • #4
        Tjena Åke!
        Det brukar inte vara några problem med LastTrade, jag får alltid rätt värde vid nästa insamling, under förutsättning att ordern verkligen gått till avslut hos NN.

        Det är det som är det fina med att köra Fill and Kill, den delen av ordern som kan "fyllas" fylls och resten "försvinner". Fritt fram att posta ännu en order.

        Torsten kom med en bra ide igår, att köra Fill or Kill vid entry, och Fill and Kill vid exit. Då postas ny order tills man har önskat innehav, men vid exit så får man avslut på så mycket det går för tillfället. Det kan ju vara bråttom.

        Enda tillfället man inte får exakt värde från LastTrade och Portfolio(v) är när man kör realtid. Då exekveras scripten vid varje ändring i volym, och ibland kan det innebära flera postade order på en enda sekund!

        Comment


        • #5
          Jag förstår inte vad du menar med exit och entry? Vad är det för fel på svenska språket.

          Comment


          • #6
            I lokala ordertransaktioner finns en tidsangivelse. Finns det någon möjlighet att scriptmässigt anropa denna tid och se till att ny order inte läggs förrän efter viss tid därefter?

            Comment


            • #7
              Om jag minns rätt så får du tiden för postad order från Friendly fram tills avslut finns. Så LastTrade(b,d) etc kan användas.

              Sedan har du alltid Retval(d,01234) som lagras undan från triggerscriptet vid varje trans. LastTrade(b,3) t.ex ger dig cell 3 och vad du lagrade där. Det kan du använda för att kommunicera runt egen info mellan transar.

              Ha t.ex retval(date(),3) så läggs systemtiden i cell 2.

              Comment


              • #8
                Entry och exit syftar på marknaden. Entry blir innehav eller blankning, exit nollning eller kontant.

                Sedan skumma uttryck som gå lång och kort istället för köp och sälj är ännu värre

                Comment


                • #9
                  Först termilogin. För mig finns bara köp eller sälj, man kan också använda blanka=sälj och avsluta=köp. Krångla inte till det i onödan det är tillräckligt svårt ändå. Nog om detta.

                  Om det är som Rikard säger att flera ordrar kan postas på en sekund borde detta leda till eftertanke. Detta bör inte vara möjligt, eftersom man då kan sitta inne med en reäl mängd blankade kontrakt trots att man endast ville sälja sitt innehav.

                  Den konkreta frågan är alltså. Hur förhindrar man att order nr2 skickas innan portföljen har uppdaterats?

                  Den information jag har om LastTrade är att den kan ta tidsstämpeln för rådande period. Om man då kör i 30-min perioder är tidsstämpeln under hela perioden den samma. Jag har möjligen fel. Hur skall man kunna använda detta för att skilja på någon minut?

                  När det gäller Retval har jag dålig koll på detta. Du skriver: Ha t.ex retval(date(),3) så läggs systemtiden i cell 2.
                  Jag skulle vilja veta hur man använder detta för att garrantera minst 2 minuter emellan order1 och order2? För att försöka säkerställa att portföljen säkert har blivit uppdaterad.

                  Comment


                  • #10
                    LastTrade(b,3) skulle ju ta värdet i cell 3(inte som jag skrev 2) från senast köptrans.

                    tidspärr:=3
                    lt1:=lasttrade(b,3)
                    minsedankop:=mult(sub(date(),lt1),1440)
                    lt(minsedankop,tidspärr)


                    Detta som ett kontrollscript skulle spärra 3 minuter efter att köptrans sänts.

                    Din triggerscript behöver då en rad på slutet som är

                    triggertest:= övriga scriptet som genererar ordern
                    i15(
                    xx=retval(date(),3)
                    triggertest
                    )

                    Jag tog med intradayprefixet också ifall sådant användes(välj önskad period förståss). Denna raden behöver alltså omslutas att prefixet också. Du kan ge det en oanvänd variabel xx för tydlighets skull.

                    Comment


                    • #11
                      Åke, fenomenet med flera postade order per sekund inträffar bara om man kör med realtidsuppkoppling. (DDE-länk)

                      Vid vanlig minutinsamling händer det inte, eftersom scripten bara exekveras vid varje insamling.

                      Men Lasse´s kontrollscript skulle effektivt sätta stopp för "skurar" av postade order även vid realtid.

                      Comment


                      • #12
                        Lasse, här måste ha smugits in några fel.

                        I mitt exempel har jag hela tiden talat om att förhindra ytterligare säljtransar så ”lt1:=lasttrade(b,3)” borde väl vara ”lt1:=lasttrade(S,3)” istället.
                        Om det gällt att förhindra ytterligare köptransar så hade jag förstått.

                        Ett kontrollscript skall returnera sant för att släppa igenom affären och då borde
                        lt(minsedankop,tidspärr) bytas mot Gt(minsedankop,tidspärr). Man skall ju ha passerat 3 min för sant.

                        Jag återkommer med sammanfattning som kontroll om en stund.

                        Comment


                        • #13
                          Sammanfattning
                          Triggerscript:

                          Långt script
                          i30(
                          tidsfördröjn=retval(date(),3)
                          {systemtiden när scriptet blir sant sparas undan i cell 3, kan inte skrivas sist}
                          Del1=abc…
                          Del2=xxx…
                          and(Del1,Del2)
                          )

                          Jag har här för enkelhetens skull antagit att scriptet innehåller endast 2 delar som skall vara sanna.

                          För att undvika att ny säljorder skickas förrän efter 3 min skrivs följanda kontrollscript.
                          xk) Ny säljorder endast möjlig efter 3 min.

                          tidspärr:=3
                          lt1:=LastTrade(s,3)
                          {Här hämtas tidstämpel som finns sparad i ”tidsfördröjn” om säljtrans}
                          minSedanSälj:=mult(sub(date(),lt1),1440)
                          Gt(minSedanSälj,tidspärr)

                          Är detta korrekt???

                          Comment


                          • #14
                            Dina förslag ser utmärkta ut.

                            Jo, jag hade kastat om logiken i Gt() och Lt().

                            Sedan Sell eller Buy hade jag inte i huvudet vad det var du ville ha. Tänkte mest på det förfärliga i att köpa på sig mer än man tänkt.

                            Generellt det att tänka på vid användning av dessa undanlagrade värden i cell 0-4, är initiala resultatet innan det finns något sparat alls också. Och det fungerar ju rätt även nu när värdet i transen är noll.

                            Comment


                            • #15
                              Skall bli spännande att lägga upp lite simuleringar på detta till en början.

                              Om man alltid använder fasta värden för antalet när man börjar en affär (entry) och Fill and Kill skall det vara omöjligt att köpa på sig för mycket.

                              Det andra fallet, som denna diskussion har gällt, är när man vill gå ur marknaden (exit) och som antalsscript använder ABS(portfolio(v)). Här bör troligen också Fill and Kill användas för att inte få en oönskad blokering om inte allt gick igenom på första försöket.

                              Comment

                              Working...
                              X