Tekniska frågor - Testsystemet - Orderborttagning

Added by Hugo about 4 years ago

Hej,

Har fått min applikation att fungera väl, men med vissa undantag. Vet ej om detta är på grund av testsystemet eller om det finns någon parameter jag har missat.

Hur ofta får man anropa den privata feeden vid live-körning? Den publika feeden måste anropas ofta för priser, men till vilken utsträckning ska man undvika privata anrop och framförallt privata blandat med publika om det spelar någon roll?

  • När jag lägger en köporder får jag följande meddelande: {u'action_state': u'INS_PEND', u'order_id': 873078, u'order_state': u'LOCAL', u'result_code': u'OK'}
    Vad betyder INS_PEND och varför går den inte ut till testsystemets marknad? Har detta med testsystemet att göra?
  • När jag sedan försöker att modifiera samma order får jag detta: {u'action_state': u'MOD_FAIL', u'message': u'Internal error.', u'order_id': 873078,u'order_state': u'LOCAL',u'result_code': u'ORDER_BUSY'}
    Internal error och ORDER_BUSY har med testsystemet att göra eller är något fel i min kod rimligtvis?
  • Får ett snarlikt felmeddelande när jag försöker ta bort ordern. Nedan finns en lista med försök av borttagningar på ordrar som inte går att ta bort. Var god att resa dessa, tack. {u'order_id': 858926, u'order_state': u'LOCAL', u'message': u'Internal error.', u'action_state': u'DEL_FAIL', u'result_code': u'ORDER_BUSY'}
    Är internal error gållande min modifiering och borttagning unikt för testsystemet, av det jag har läst på forumet verkar flera har problem med borttagning.

Samtliga ordrar under accno 9211041 vill jag ta bort:

858926
858855
870268
871769
871771
870296
859232
859235
871753
871756
870297
870292
871752
859231
859238
870276
871762
871767
859241
873078
871758
871761
871770
870290
859233
859237
870280
870288
871754
871766
870270
870291
870293
859239
859240
859234
859236
870277
870271
871755
871768
870269
870298
870299
870294
870300
858856
858859
859230
870279
870287
871757
871759
871760
871763
871764
871765
870289
870295


Replies (8)

RE: Tekniska frågor - Testsystemet - Orderborttagning - Added by Lars about 4 years ago

Jag kanske missförstår vad du menar med "anropa" men tanken är att man kopplar upp sig mot feederna och sedan lyssnar, inte skickar kommandon till dem hela tiden. Jag kopplar typiskt upp mig en gång per dag.

RE: Tekniska frågor - Testsystemet - Orderborttagning - Added by Hugo about 4 years ago

Slarvigt uttryckt kanske, men precis som du säger så subscribe:ar jag på den publika feeden och därefter lyssnar.

Den privata feeden (anropar) jag genom att skicka HTTP requests, alltså ingen avlyssning av någon socket. HTTP requesten för att logga in göra jag endast en gång och därefter touchar jag sessionen lite då och då för att inte tapppa kopplingen.

Är du med på vad jag menar nu?
Tack

RE: Tekniska frågor - Testsystemet - Orderborttagning - Added by Lars about 4 years ago

Privata feeden är just det, en feed, dvs du ska koppla upp dig mot den, logga in, och sedan lyssna på den. Finns det något speciellt skäl till att du hellre än att omedelbart få veta när något händer vill kolla med jämna (?) mellanrum om något har hänt?

RE: Tekniska frågor - Testsystemet - Orderborttagning - Added by Nordnet Simon about 4 years ago

Hej, jag har rensat dina ordar.

nExt består av 3 delar.

1 - HTTP anrop. Det är där du loggar in, lägger order, hämta kontoinformation och basdata genom vanliga HTTP frågor. Det är alltså helt synkront. Du frågar nExt svarar. Dokumentationen finns här: https://api.test.nordnet.se/api-docs/index.html
2 - Publika feeden. Här kommer pris- och orderboks-information från marknaderna, Den är publik för det är samma data till alla (förutsatt att du betalat avgiften). Du får själv prenumerera på den data du vill ha.
3 - Privata feeden. Här kommer dina orderförändringar och trades som hör till dina konton. Ingen annan (som inte har fullmakt) får den här informationen. Det enda du måste göra är att logga in på den privata feeden. Båda feederna finns dokumenterade här: https://api.test.nordnet.se/next/2/api-docs/docs/feeds

INS_PEND betyder att orderförändringen är skickad till marknaden men vi har inte fått svar. Lyssnar du på privata feeden så får du reda på när ordern är på marknaden.

Så det är inte meningen att du ska polla ordern med HTTP för att se vilken state den har, det kommer på den privata feeden.

RE: Tekniska frågor - Testsystemet - Orderborttagning - Added by Hugo about 4 years ago

Nej, omedelbart har varit bättre och kanske varit smidigare. Anledningen till varför jag kör med HTTP requests istället för en privat feed är den tydliga dokumentation som finns tillgänglig gällande HTTP requests.

Har inte använt mig av en privat feed, utan skickar HTTP requests (inte bara login) för samtliga kommandon som säkert istället kan göras genom en feed. Säg att man vill subscribe:a på vilka ordrar, jag har tidigare skickat ett HTTP request liknande (Python):

def req(self,cmd=''):
r=requests.get(self.URL + '/%s' % cmd ,auth = auth, headers=headers)
return json.loads(r.text)

self.req('accounts/%s/orders' % account_id)

Säg att jag istället skapar en privat feed mot 'priv.api.test.nordnet.se' port = 443. Hur kopplar jag upp mig mot feeden för att lyssna på tex mina ordrar?

För den publika feeden har subscribe:ar jag genom:
cmd = {"cmd":"subscribe", "args":{"t":"depth", "m":market, "i":instrument}}
num_bytes = ssl_socket.send(json.dumps(cmd) + "\n")

Vad jag är ute efter är väl egentligen cmd funktionerna för de HTTP requests som finns tydligt förklarat på nExt API sidan. {"cmd":"login", "args":{ "session_key":"ABC123"}}
Ovan är ju endast för login, hur ser de andra HTTP requesten motsvarigheterna ut när man kopplar upp sig mot privata feeden.

Tack din hjälpsamhet.

RE: Tekniska frågor - Testsystemet - Orderborttagning - Added by Lars about 4 years ago

Du har redan fått ett uttömmande svar från Nordnet Simon, men bara en kort kommentar till:

"Vad jag är ute efter är väl egentligen cmd funktionerna för de HTTP requests som finns tydligt förklarat på nExt API sidan. {"cmd":"login", "args":{ "session_key":"ABC123"}} Ovan är ju endast för login, hur ser de andra HTTP requesten motsvarigheterna ut när man kopplar upp sig mot privata feeden."

På privata feeden behöver du inte göra något mer än att logga in och lyssna, det finns inga fler kommandon än login.

RE: Tekniska frågor - Testsystemet - Orderborttagning - Added by Hugo about 4 years ago

Tusen tack.
Trodde att man behövde subscribe:a på olika kommandon för den privata feeden precis som man skickar in in kommandon till den publika.

Tack Lars & Simon!

RE: Tekniska frågor - Testsystemet - Orderborttagning - Added by Stefan about 4 years ago

Ja, jag har också tyckt det var litet förvirrande. Det finns en inkonsistens mellan feedarna och http, där den publika feeden har både input och output i själva feeden, men där den privata har input via http och output via feeden, utom för login som görs både via feed och via http. Det känns en aning rörigt, men när man rett ut det är det enkelt nog att använda.

(1-8/8)