Fält vid orderläggning som returneras vid svar

Added by Patrik almost 8 years ago

Hej,
Jag gissar att detta är något som inte finns idag men vill kolla att jag inte har fel, och om det inte finns så undrar jag om det finns förutsättningar att inkludera detta i närtid/framtid?'

Jag efterlyser ett fält vid orderläggning som även följer med vid svaret på ordern. Som jag tolkar dokumentationen nu så finns det inget sätt att säkert binda en order som jag skickar med ert svar på ordern? Om ni är bekanta med FIX-protokollet så kan ni jämföra med ClientOrderID som genereras av kunden och sedan medföljer i mottagarens svar. Förenklar avsevärt för den sändande parten. För min del skulle det fungera lika bra med ett fritextfält som man kan skicka med en order och som ni kan ignorera men inkludera i svaret på ordern. Jag vet inte hur flexibelt ert gränssnitt är men jag vore tacksam om ni funderar på saken och meddelar om det kan vara möjligt?

Tack
Patrik


Replies (10)

RE: Fält vid orderläggning som returneras vid svar - Added by Nordnet Simon almost 8 years ago

Hej, vi har inga planer att under den närmsta tiden kunna sätta ett eget id (typ ClOrdId eller fritextfält).

Längre fram kan det aktuellt med sett sådant fält - men det är inget spikat.

RE: Fält vid orderläggning som returneras vid svar - Added by Patrik almost 8 years ago

Hej,
Då det börjar närma sig jul vill jag passa på att bumpa denna fråga i hopp om att tomten är snäll. Jag tycker att gränssnittet fungerar OK i övrigt men avsaknaden av ett fält som kan binda utgående och inkommande ordrar är ett stort minus. Jag tvingas nu till hashcode-algoritm-liknande matchningar på ett antal fält, men dels blir det en rätt 'ful' lösning och dels så är det inte svårt att hitta felscenarion.

Tack på förhand
Patrik

RE: Fält vid orderläggning som returneras vid svar - Added by Nordnet Simon almost 8 years ago

Hej, i det här fallet är jag rädd att tomten inte kommer att vara snäll (oavsett hur du har skött dig under året).

Hashcode liknande algoritm på flera fält låter väl komplext.

När du lägger en order får du Nordnets orderid i det synkrona svaret. I den privata feeden så får du alltid med samma orderid.

Så när du lägger en order och får ett orderid i svarer lägg in det i en hash där nyckeln är Nordnets orderid och värdet är ditt orderid. På det viset kan du alltid hitta ditt orderid med hjälp av Nordnets orderid.

/Simon

RE: Fält vid orderläggning som returneras vid svar - Added by Patrik almost 8 years ago

Trist, jag som skött mig extra bra i år. Jag förstår din poäng men jag skapar och loggar initieringen av order, modifieringar och cancels i andra moduler än den som sköter själva kopplingen mot er, därav mitt problem. Men det är nog vettigt att jobba sig bakåt via det synkrona svaret snarare än min hokus-pokus-lösning. Stort tack för feedbacken.

Jag behåller dock id-fält eller fritextfält på önskelistan ;-)

/Patrik

RE: Fält vid orderläggning som returneras vid svar - Added by Patrik almost 8 years ago

Hej,
Jag kör en ny sväng på den här tråden. Jag har ett antal problem som ni kanske snabbt ser lösningar på hoppas jag.

Jag kör idag den interaktiva sessionen och den privata feeden på separata trådar och får då 'race-problem' vid svar på ordrar, dvs ibland kommer det synkrona svaret först och ibland hinner svar på den privata feeden före. Det senare fallet leder till att mitt system uppfattar en order som OrderState=LOCAL + ActionState=INS_PEND när den egentligen är ON_MARKET resp INS_CONF. Detta leder till följande frågor:

1. Löser sig detta race-problem om man gör allting i samma tråd? Det är rätt stort ingrepp att försöka singeltråda min koppling mot er så jag frågar innan jag testar. Frågan är alltså om ni garanterar sekvensen på synkrona svar följt av privata meddelanden?
2. Min nuvarande lösning är att jag 'ignorerar' synkrona svar om ResultCode=OK och förlitar mig på informationen från den privata feeden, dvs jag bryr mig bara om synkrona svar om något gått fel. Detta förefaller på ytan fungera hyggligt men lösningen känns ju synnerligen brun och frågan är det går att lita på? Alltså, finns det något scenario där ResultCode=OK där man sedan inte får ytterligare meddelande på den privata feeden för då skulle ju min order hamna i limbo.
3. Om ovan 2 frågor inte ger glasklara svar i endera riktning så ställs frågan öppen. Jag tycker inte att jag borde vara ensam om att stöta på detta problem. Hur har ni löst detta eller vet ni hur andra löser det? I FIX har man ju t ex sekvensnummer man kan förlita sig på men i ert protokoll saknas ju denna typ av transaktionslogik.

Tack på förhand
Patrik

RE: Fält vid orderläggning som returneras vid svar - Added by Nordnet Simon almost 8 years ago

1. Löser sig detta race-problem om man gör allting i samma tråd? Det är rätt stort ingrepp att försöka singeltråda min koppling mot er så jag frågar innan jag testar. Frågan är alltså om ni garanterar sekvensen på synkrona svar följt av privata meddelanden?

Nej, för att garantera ordningen ska modDate kontrolleras.

2. Min nuvarande lösning är att jag 'ignorerar' synkrona svar om ResultCode=OK och förlitar mig på informationen från den privata feeden, dvs jag bryr mig bara om synkrona svar om något gått fel. Detta förefaller på ytan fungera hyggligt men lösningen känns ju synnerligen brun och frågan är det går att lita på? Alltså, finns det något scenario där ResultCode=OK där man sedan inte får ytterligare meddelande på den privata feeden för då skulle ju min order hamna i limbo.

Inte vad jag kan komma på, men jag kan inte garantera.

3. Om ovan 2 frågor inte ger glasklara svar i endera riktning så ställs frågan öppen. Jag tycker inte att jag borde vara ensam om att stöta på detta problem. Hur har ni löst detta eller vet ni hur andra löser det? I FIX har man ju t ex sekvensnummer man kan förlita sig på men i ert protokoll saknas ju denna typ av transaktionslogik.

Lösningen är modDate. Om modDate är äldre än det senaste du har processat (oberoende om det är det synkrona svaret eller på feeden) så ska du ignorera det.

RE: Fält vid orderläggning som returneras vid svar - Added by Patrik almost 8 years ago

Men ni skickar väl ingen modDate på de synkrona svaren?!?!?

Sekvensen på meddelandena på den privata feeden har jag inga problem med. Det är jämförelsen mellan det synkrona svaret och de simultana svaren på den privata feeden som skapar problem och då vet jag inte hur modDate skall hjälpa mig om det saknas i ett av fallen?

RE: Fält vid orderläggning som returneras vid svar - Added by Nordnet Simon almost 8 years ago

Patrik wrote:

Men ni skickar väl ingen modDate på de synkrona svaren?!?!?

Helt korrekt, jag är ute och cyklar, sorry!

Sekvensen på meddelandena på den privata feeden har jag inga problem med.

Privata feedens meddelanden kan komma i fel ordning så att kolla modDate på feeden och kasta sådana som är äldre än det senaste du har för det aktuella order id:t kan vara en bra idé i varje fall.

Det är jämförelsen mellan det synkrona svaret och de simultana svaren på den privata feeden som skapar problem och då vet jag inte hur modDate skall hjälpa mig om det saknas i ett av fallen?

Våra applikationer som använder API:t använder följande algoritm när synkrona svaret processas: Om det har kommit någonting på publika feeden med samma orderid som i synkrona svaret ignoreras det synkrona svaret. Annars behandla det synkrona svaret.

RE: Fält vid orderläggning som returneras vid svar - Added by Patrik almost 8 years ago

Privata feedens meddelanden kan komma i fel ordning så att kolla modDate på feeden och kasta sådana som är äldre än det senaste du har för det aktuella order id:t kan vara en bra idé i varje fall.

OK. Tack för tips.

Våra applikationer som använder API:t använder följande algoritm när synkrona svaret processas: Om det har kommit någonting på publika feeden med samma orderid
som i synkrona svaret ignoreras det synkrona svaret. Annars behandla det synkrona svaret.

Mmm, det fungerar ju på INS-svaren men det kan väl inte fungera lika enkelt för MOD + DEL meddelanden? Hur gör ni då? Jämför med fler fält eller hur avgör ni om man kan ignorera synkrona svaret på dessa meddelanden?

(1-10/10)