Allmänt meddelande

Collapse
No announcement yet.

Order innan öppning

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

  • Order innan öppning

    Finns det något som i allmänhet hindrar en ordermodell från att lägga en order redan innan dagens öppning? Går det i så fall att ändra någon inställning för att tillåta detta?

  • #2
    Det är i huvudsak kalendern. Man kan ändra den, men inget vi rekommenderar, det ligger lagrat i AutostockTrader.ini under [Calendar xx ]

    och öppettiderna ligger hexadecimalt med brytdatum som uppdateras varje år, så det kommer skrivas över varje gång vi uppdaterar för sommartid/vintertid.
    Men vill man så kan man ju alltid ta en kopia på filen och ändra följande:

    OpenZone1=20040927,0x0419021c,0x0419021c,0x0419021c,0x0419021c,0x0419021c,0,0,0x030b021c

    där datumet i början är brytdatum där resten av raden gäller (efter datumet). Därefter kommer veckodagarnas öppettider kommaseparerade. 0x är bara hex-header, och själva tiderna är:

    0419 = stängningstid och 021c är öppningstid.

    Man kan testa att ändra, spara filen och starta om programmet. För att kolla vilka öppettider det blev, klicka ENTER på ett instrument, välj fliken Fundamenta så syns kalendern och öppettiderna.

    Comment


    • #3
      Tack, ser att det finns en särskild kalender för Stockholmsbörsen i ini-filen. I fallet ovan gällde det ett instrument på Stockholmsbörsen, som skulle öppna klockan 9 enligt kalendern. Dock startade själva handeln i det här fallet 09:00:28. Ordermodellen väntade då med att lägga sitt bud till 09:00:30, dvs direkt efter att handeln kommit igång. Men inte innan dess, trots att klockan redan hade blivit 9 och handeln då redan var öppen enligt kalendern.

      Samma morgon la samma ordermodell en order på ett annat instrument, också på Stockholmsbörsen, redan klockan 09:00:09.

      Kan det då ha funnits något annat än kalendern som hindrade ordermodellen från att lägga bud efter klockan 9, då Stockholmsbörsen skulle ha varit öppen enligt kalendern, men innan dagens första transaktioner gått igenom?

      "Ser" scriptet orderboken innan transaktioner börjat gå igenom, om man hämtar data med t.ex. odepth(b,p,0)?

      Jag har inga tidsspärrar eller annat som jag kan se borde hindra handel på särskilda tider i scriptet.
      Attached Files

      Comment


      • #4
        Nu har jag ju ingen aning om villkoren i triggerscriptet, men det kan ju vara att det behövs en kurs som når över/under något för att det ska bli sant och skicka order. Script som läser orderdjupet via Odepth() kan läsa innan öppning.

        Comment


        • #5
          Hej apabarn,
          kan det vara så att innan instrumentet fått sin kurs så returneras 0 och din order på 0 refuseras av Nordnet?
          Hade själv ett liknande fall då scriptet försökte köpa en turbo som var i buy-back. Men nu minns jag inte om det syntes i larm/orderboken eller bara i DEBLOG.txt
          Kanske ändå värt att kolla DEBLOG-filen

          Comment


          • #6
            Det syns i Larm om det händer. Men ordern spärras av xk)-scriptet som känner att säljkursen saknas, så det kommer inte så långt som till Tradelog.txt

            Comment


            • #7
              Instrumentet hade fått sin kurs när jag kollade direkt i debuggern, så det var något annat som felade.

              En konstig sak var dock att när jag la in en kontroll för att se om handel hade skett på värdepappret ännu under samma dag, så blev det sant redan innan handeln öppnat:

              idag=eqv(int(d),int(date()))

              Se skärmdump från debuggern innan handeln hade öppnat imorse, ca kl 8.45, då "idag" redan blivit satt till 1, dvs sant.

              Har jag skrivit villkoret fel, eller är det debuggern som visar fel?

              Attached Files

              Comment


              • #8
                Det räcker att det kommit in köp- och säljkurser för att villkoret ovan ska bli sant. Så det räcker inte som fullständig kontroll, men man kan ju tex lägga till att Close ska skilja sig från förra perioden, och att volym "idag" ska vara större än noll. Man kan använda extra objekt för det som körs i dagsupplösning.

                Comment


                • #9
                  Tack, då förstår jag hur det kunde bli sant. Finns det något sätt att kolla om volymen är större än noll för dagen utan att blanda in extra objekt? Det verkar ganska bökigt med extra objekt då jag kör samma script på många olika instrument.

                  Comment


                  • #10
                    Det går att använda anslutet instrument som extraobjekt. Dvs samma som instrumentet fast i annan upplösning. Första alternativet när man klickar på extraobjekt.

                    Comment


                    • #11
                      Precis, det är enkelt, välj bara "Anslutet instrument" och upplösning 0 i dialogen Extra objekt.

                      Comment


                      • #12
                        Det gick fint, tack för hjälpen båda!

                        Comment


                        • #13
                          Dock verkade det inte funka lika bra nu när jag testade innan öppning, då den fortfarande visade gårdagens volym ända fram till dagens handel gick igång. Jag använder följande kod för att försöka läsa ut dagens volym på extraobjekt A med period 0:
                          cmpref(v,0,A)

                          Hur kan man få den att läsa dagens volym, även innan något har handlats för dagen (då den borde bli 0), så att man kan se om handeln har kommit igång? Är problemet att koden ligger inom i1?
                          Attached Files

                          Comment


                          • #14
                            Njae, extra objektet körs i dagsupplösning så det spelar ingen roll att resten av scriptet körs i i1. Annars är väl ett sätt att testa med tidstämplar:

                            senast_bet=getgvar(100)
                            ny_close=not(eqv(c,senast_bet))
                            setgvarif(c,100,ny_close)
                            ny_dag=eqv(int(date(),int(getgvar(100,d)))

                            När ny kurs dyker upp skrivs den till cellen. Om man jämför systemklockan med tidstämpeln för senaste skrivning och det hamnar på samma dag borde vi vara säkra på att nytt data börjat komma in. Har inte hunnit testa dock.

                            Comment


                            • #15
                              Tack! Provar den i stället imorgon bitti.

                              Comment

                              Working...
                              X