Gott och blandat

Added by Patrik over 7 years ago

Hej,
Jag har några frågor avv varierande karaktär, dvs lite gott och blandat så här i påsktider:

1. ModDate
Jag har i tidigare korrespondens fått besked att det är ModDate som gäller för att utröna sekvens på transaktioner i brist på sekvensnummer eller dylikt (fortfarande ett önskemål :-). Jag finner dock att detta inte verkar fungera till 100% (?!?). I nedan exempel skickar jag en MOD-request och får svar enligt följande:

Interaktiv session med synkront svar:

14:15:47,429 [pool-8-thread-2]: PUT: https://api.test.nordnet.se/next/1/accounts/9210117/orders/532165?price=51.35
14:15:47,737 [pool-8-thread-2]: {"orderID":532165,"resultCode":"OK","orderState":"ON_MARKET","accNo":9210117,"actionState":"MOD_PEND"}

Privat session med asynkrona svar:
14:15:47,730 [pool-6-thread-1]: {"type":"order","data":{"price":{"value":51.35},"activationCondition":{"type":"NONE"},"orderID":532165,"accno":9210117,"instrumentID":{"marketID":11,"identifier":"281","currency":"SEK","isin":"SE0000148884"},"side":"SELL","modDate":1333023342498,"orderState":"ON_MARKET","actionState":"MOD_PEND"}}
14:15:47,923 [pool-6-thread-1]: {"type":"order","data":{"accno":9210117,"actionState":"DEL_PUSH","actionType":"DELETE","actionStatus":"Pushed","orderID":532165,"orderState":"DELETED","tradedVolume":100,"modDate":1333023342496,"instrumentID":{"identifier":"281","marketID":11}}}
14:15:47,923 [pool-6-thread-1]: {"type":"trade","data":{"orderID":532165,"price":{"value":51.4,"curr":"SEK"},"side":"SELL","tradeID":"S15748-20120329","instrumentID":{"identifier":"281","marketID":11},"volume":100,"accno":9210117,"counterparty":"MCF","tradetime":1333023342000}}

I de asynkrona svaren är ModDate för meddelandet med actionState:MOD_PEND satt till 1333023342498 och för meddelandet med actionState:DEL_PUSH är det 1333023342496. Då jag, baserat på den information jag fått, implementerat en strikt kontroll på ModDate så 'ignorerar' jag DEL_PUSH meddelandet (då det har en tidigare ModDate) och mitt system tycker att den fortfarande är MOD_PEND. Detta scenario händer inte ofta men jag ser att det händer då och då. Har ni sett detta i era tester och framför allt har ni något tips på hur man skall tolka sekvensen på meddelandena om inte ModDate är tillförlitlig? Som jag nämnt tidigare, lite transaktionslogik i form av sekvensnummer och/eller ClOrdId-liknande hantering eller t o m ett enkelt fritextfält skulle göra ert protokoll så mycket enklare och roligare att programera mot. Ni ville ju inte vara givmilda i julas men vad sägs om att införa detta som ett (annorlunda) påskägg? :-)

2. handshake_failure
Nu till ett område där jag är på djupt vatten. Jag har ju uppenbarligen lyckats implemetera certifikathanteringen och lyckas skicka requests som ger relevanta svar men när jag testar att ladda på lite i mina tester så får jag rätt frekvent, med ett mellanrum på några tusen meddelanden, SSLHandshakeExceptions med meddelande Received fatal alert: handshake_failure. Är detta något ni sett i era tester eller har ni något tips på orsak eller vad man kan göra? Jag har inte kikat på Wireshark-loggar ännu eftersom det är en ännu djupare del av bassängen för mig men om jag kan förse eller vara behjälplig med någon typ av information för att reda ut vad som orsakar felen så gör jag gärna det.

3. Replace Vs Delete/Insert
Om jag inte fullständigt misstolkar situationen så förefaller ni inte inte stödja 'riktiga' REPLACE-transaktioner på Stockholmsbörsen (och ev andra marknader?) när man skickar MOD-requests? Det ser ut som ni skickar MOD-requests som DELETE/INSERT, dvs tar bort ordern och skickar en ny, till börsen. Om mitt antagande är korrekt, varför stöder ni inte REPLACE?

4. Roundtrip-tider
På ett ungefär vilka Roundtrip-tider bör man förvänta sig för INS,MOD,DEL-meddelanden via protokollet?

Tack
Patrik


Replies (5)

RE: Gott och blandat - Added by Nordnet Simon over 7 years ago

Hej, jag börjar med dom enkla.

Patrik wrote:

Hej,
2. handshake_failure
Nu till ett område där jag är på djupt vatten. Jag har ju uppenbarligen lyckats implemetera certifikathanteringen och lyckas skicka requests som ger relevanta svar men när jag testar att ladda på lite i mina tester så får jag rätt frekvent, med ett mellanrum på några tusen meddelanden, SSLHandshakeExceptions med meddelande Received fatal alert: handshake_failure. Är detta något ni sett i era tester eller har ni något tips på orsak eller vad man kan göra? Jag har inte kikat på Wireshark-loggar ännu eftersom det är en ännu djupare del av bassängen för mig men om jag kan förse eller vara behjälplig med någon typ av information för att reda ut vad som orsakar felen så gör jag gärna det.

Det är ett problem vi har i test vid last. I produktion så har vi annan lösning på vår SSL-termineringen.

3. Replace Vs Delete/Insert
Om jag inte fullständigt misstolkar situationen så förefaller ni inte inte stödja 'riktiga' REPLACE-transaktioner på Stockholmsbörsen (och ev andra marknader?) när man skickar MOD-requests? Det ser ut som ni skickar MOD-requests som DELETE/INSERT, dvs tar bort ordern och skickar en ny, till börsen. Om mitt antagande är korrekt, varför stöder ni inte REPLACE?

Jag är inte riktigt säker på vad du menar med 'riktiga' REPLACE. Men vi använder oss av dom modifieringstransaktioner som marknaderna använder. I fallet NasdaqOMX så är det OrderCancelReplace i FIX-protokollet som används vid modifiering.

RE: Gott och blandat - Added by Patrik over 7 years ago

Hej,
Tack för partiellt svar. Några följdfrågor på dessa:

Det är ett problem vi har i test vid last. I produktion så har vi annan lösning på vår SSL-termineringen

OK, vad bra. Innebär det något för min del, dvs måste jag ändra något för prod?

Men vi använder oss av dom modifieringstransaktioner som marknaderna använder. I fallet NasdaqOMX så är det OrderCancelReplace i FIX-protokollet som används vid modifiering.

OK, toppen. Jag fick intrycket att ordrarna först tas bort och att det sedan skickas en ny då man får det intrycket när man tittar på en orderbok i samband med MOD-transaktioner.

RE: Gott och blandat - Added by Björn over 7 years ago

Hej!

Saknar fortfarande svar på Patriks första fråga. Vad måste vi förlita oss på i order-meddelanden i den privata feeden för att få korrekt uppfattning av vad som hänt? Ordning, modDate, eller nå't annat?

RE: Gott och blandat - Added by Patrik over 7 years ago

Tack Björn. Jag hade själv tänkt lägga in en påminnelse. Jag kan förse ytterligare exempel på knasig ModDate om det behövs för felsökning? En observation jag gjort är att de gånger ModDate rapporteras ur sekvens är när man försöker ändra en order samtidigt som den helt eller delvis går till avslut om det kan hjälpa något. Skulle även vilja få svar på 4e frågan avs svarstider då jag tycker att de är en smula volatila i testsystemet.

När jag ändå skriver i den här tråden så har jag några övriga önskemål:
1. Kan ni vänligen rensa alla 'döda' ordrar (LOCAL/INS_PEND) för mitt konto i test systemet. Ni kan sopa rubbet men om ni behöver orderid så kan jag förse det.
2. Jag kunde tidigare blanka men det har slutat fungera. Kan ni vänligen slå på igen?
3. Kan man testa OMX terminer i testsystemet? Jag har inte sett någon marknadsdata och får ej genom ordrar. Jag får följande meddelande: ORDER_MISSING_AGREEMENT | property accountAgreementsInfo.agreementIdSet (@Immutable[3, 5, 14]) does not contain [9]. Jag tolkar det som att ni behöver göra en add() i agreementIdSet :-)

/Patrik

RE: Gott och blandat - Added by Patrik about 7 years ago

Bumpar denna fråga igen ... eller har den hamnat i spam-filter .... ?

(1-5/5)