traded_volume i privat feed

Added by Björn over 4 years ago

Hej!

Jag tycker mej ha sett ett ändrat beteende från er sida den sista veckan ungefär. När en order stängs har ni tidigare
alltid skickat traded_volume i sista order-meddelandet (DELETED/DEL_PUSH) på privat feed om ordern har resulterat i någon affär.
Så har jag åtminstone uppfattat det och jag har en gammal fråga i forumet som handlar om precis det (https://api.test.nordnet.se/boards/2/topics/521?r=522#message-522).

Men nu har jag saknat det fältet några gånger den sista veckan. Första gången var 8:de juli. Tex såg det ut så här på privat feed idag:

2015-07-15 12:25:51Z {"type":"order","data":{"volume":223.0,"price":{"value":89.5,"currency":"SEK"},"volume_condition":"ALL_OR_NOTHING","order_id":869896,"tradable":{"market_id":11,"identifier":"101"},"validity":{"type":"IMMEDIATE"},"accno":XXXXX,"side":"BUY","modified":1436963141671,"activation_condition":{"type":"NONE"},"order_state":"LOCAL","action_state":"INS_PEND"}}

2015-07-15 12:25:51Z {"type":"order","data":{"order_id":869896,"tradable":{"market_id":11,"identifier":"101"},"accno":XXXXX,"modified":1436963141689,"order_state":"ON_MARKET","action_state":"INS_CONF"}}

2015-07-15 12:26:30Z {"type":"order","data":{"volume":213.0,"order_id":869896,"tradable":{"market_id":11,"identifier":"101"},"accno":XXXXX,"modified":1436963181178,"traded_volume":10.0,"order_state":"ON_MARKET","action_state":"MOD_PUSH"}}

2015-07-15 12:26:30Z {"type":"trade","data":{"accno":XXXXX,"order_id":869896,"trade_id":"B9752-20150715","tradable":{"market_id":11,"identifier":"101"},"price":{"value":89.5,"currency":"SEK"},"volume":10.0,"side":"BUY","counterparty":"MCF","tradetime":1436963181182}}

2015-07-15 12:26:30Z {"type":"order","data":{"order_id":869896,"tradable":{"market_id":11,"identifier":"101"},"accno":XXXXX,"modified":1436963181215,"order_state":"DELETED","action_state":"DEL_CONF"}}

Sista traded_volume som jag såg var alltså 10 från det tredje meddelandet (MOD_PUSH) och är bara en del av det jag begärt att få köpa. Notera att det är en FOK-order.
Det är möjligt att ni skulle ha skickat något mer än de här fem, men där kraschade mitt program, så jag såg i så fall inte de meddelandena...

Som kontrast har vi en order från i går:

2015-07-14 09:44:15Z {"type":"order","data":{"volume":182.0,"price":{"value":109.4,"currency":"SEK"},"volume_condition":"ALL_OR_NOTHING","order_id":869427,"tradable":{"market_id":11,"identifier":"366"},"validity":{"type":"IMMEDIATE"},"accno":XXXXX,"side":"BUY","modified":1436867047618,"activation_condition":{"type":"NONE"},"order_state":"LOCAL","action_state":"INS_PEND"}}

2015-07-14 09:44:16Z {"type":"order","data":{"order_id":869427,"tradable":{"market_id":11,"identifier":"366"},"accno":XXXXX,"modified":1436867047639,"order_state":"ON_MARKET","action_state":"INS_CONF"}}

2015-07-14 09:44:16Z {"type":"order","data":{"volume":72.0,"order_id":869427,"tradable":{"market_id":11,"identifier":"366"},"accno":XXXXX,"modified":1436867047645,"traded_volume":110.0,"order_state":"ON_MARKET","action_state":"MOD_PUSH"}}

2015-07-14 09:44:16Z {"type":"trade","data":{"accno":XXXXX,"order_id":869427,"trade_id":"B8436-20150714","tradable":{"market_id":11,"identifier":"366"},"price":{"value":108.4,"currency":"SEK"},"volume":110.0,"side":"BUY","counterparty":"MCF","tradetime":1436867047648}}

2015-07-14 09:44:16Z {"type":"order","data":{"order_id":869427,"tradable":{"market_id":11,"identifier":"366"},"accno":XXXXX,"modified":1436867047675,"traded_volume":182.0,"order_state":"DELETED","action_state":"DEL_PUSH"}}

2015-07-14 09:44:16Z {"type":"trade","data":{"accno":XXXXX,"order_id":869427,"trade_id":"B8437-20150714","tradable":{"market_id":11,"identifier":"366"},"price":{"value":108.6,"currency":"SEK"},"volume":72.0,"side":"BUY","counterparty":"MCF","tradetime":1436867047678}}

I det här fallet kommer sista traded_volume i det femte meddelandet (DEL_PUSH) och motsvarar den mängd som jag begärt att få köpa.
Det här beteendet är det som jag alltid har sett i testsystemet, tills för en vecka sedan.

Är både de här fallen beteenden som vi ska förvänta oss att se?
Hur och när kan jag i så fall definitivt veta hur mycket av en order som faktiskt fylldes? I det här fallet var det en FOK, men jag antar att era svar ser likadana ut för alla ordertyper...


Replies (11)

RE: traded_volume i privat feed - Added by Lars over 4 years ago

I ditt exempel är det lite svårt att veta om du saknar information för att Nordnet aldrig skickade den eller för att ditt program kraschade. Har du även exempel när ditt program inte kraschar? Vad säger GET /accounts/get_trades?

RE: traded_volume i privat feed - Added by Nordnet Simon over 4 years ago

Hej Björn, traded_volume ser ut att saknas. Vi skickar inget efter din klient crashar. Vi har däremot inte gjort någonting i testsystemet på bra länge vad jag förstår.

Björn wrote:

Är både de här fallen beteenden som vi ska förvänta oss att se?

Jag har tyvärr inget bra svar just nu. Jag skapar ett case internt så får någon som har järnkoll på området reda ut om det är en bug eller förväntat beteende.

Hur och när kan jag i så fall definitivt veta hur mycket av en order som faktiskt fylldes? I det här fallet var det en FOK, men jag antar att era svar ser likadana ut för alla ordertyper...

Om man gör mer komplexa saker tex modifierar volym efter delavslut och annat så är nog det bästa sättet att räkna på trades eftersom orderid hänger med alla trades, i ditt exempel blir ju totala volymen 182 vilket var orderns volym.

2015-07-14 09:44:16Z {"type":"trade","data":{"accno":XXXXX,"order_id":869427,"trade_id":"B8436-20150714","tradable":{"market_id":11,"identifier":"366"},"price":{"value":108.4,"currency":"SEK"},"volume":110.0,"side":"BUY","counterparty":"MCF","tradetime":1436867047648}}
2015-07-14 09:44:16Z {"type":"trade","data":{"accno":XXXXX,"order_id":869427,"trade_id":"B8437-20150714","tradable":{"market_id":11,"identifier":"366"},"price":{"value":108.6,"currency":"SEK"},"volume":72.0,"side":"BUY","counterparty":"MCF","tradetime":1436867047678}}

RE: traded_volume i privat feed - Added by Björn over 4 years ago

OK, då avvaktar jag svar lite senare. Och det är ingen brådska nu under sommaren!

Jag noterade en sak som kanske kan vara till hjälp för att förstå varför det blir så här:
Det order-meddelande som mitt program kraschar av har action_state=DEL_CONF. Jag har bara sett (eller åtminstone lagt märke till) två varianter på sekvenser av order-meddelanden: Lyckade ordrar avslutas med en DEL_PUSH (med traded_volume), medan misslyckade ordrar avslutas med en DEL_CONF (utan traded_volume). Därför bryr mej inte om action_state just nu, utan triggar bara på state=DELETED och förväntar mej då att det var det sista order-meddelandet. Kan det vara så att det kan skickas flera order-meddelanden med state=DELETED, så att det i det här fallet skulle ha kommit ett till med action_state=DEL_PUSH och som då också haft traded_volume? Även om jag aldrig har upplevt det fallet...

RE: traded_volume i privat feed - Added by Björn over 4 years ago

Lite mer input till er:

Samma sak hände igen igår, med order 873613. I det här fallet la jag en order med identifier=366, market_id=11, price=102.4, side=buy, currency=SEK och volume=195 och order_type=FOK.
Privat feed betedde sig på samma sätt som jag beskrev i det första inlägget i den här tråden, med traded_volume=96 i order-meddelandet med action_state=MOD_PUSH och sedan ingen traded_volume i order-meddelandet med action_state=DEL_CONF.
(Och nu hade jag ändrat mitt program så att det inte kraschar, så jag bör ha sätt alla meddelanden. Det verkar alltså inte som att jag missade några meddelanden i kraschen, precis som Simon trodde.)

2015-07-27 08:32:10Z
{"type":"order","data":{"volume":195.0,"price":{"value":102.4,"currency":"SEK"},"volume_condition":"ALL_OR_NOTHING","order_id":873613,"tradable":{"market_id":11,"identifier":"366"},"validity":"type":"IMMEDIATE"},"accno":XXXXX,"side":"BUY","modified":1437985918733,"activation_condition":{"type":"NONE"},"order_state":"LOCAL","action_state":"INS_PEND"}}

2015-07-27 08:32:10Z
{"type":"order","data":{"order_id":873613,"tradable":{"market_id":11,"identifier":"366"},"accno":XXXXX,"modified":1437985918785,"order_state":"ON_MARKET","action_state":"INS_CONF"}}

2015-07-27 08:33:12Z
{"type":"order","data":{"volume":99.0,"order_id":873613,"tradable":{"market_id":11,"identifier":"366"},"accno":XXXXX,"modified":1437985981079,"traded_volume":96.0,"order_state":"ON_MARKET","action_state":"MOD_PUSH"}}

2015-07-27 08:33:12Z
{"type":"trade","data":{"accno":XXXXX,"order_id":873613,"trade_id":"B6532-20150727","tradable":{"market_id":11,"identifier":"366"},"price":{"value":102.4,"currency":"SEK"},"volume":96.0,"side":"BUY","counterparty":"MCF","tradetime":1437985981092}}

2015-07-27 08:33:12Z
{"type":"order","data":{"order_id":873613,"tradable":{"market_id":11,"identifier":"366"},"accno":XXXXX,"modified":1437985981121,"order_state":"DELETED","action_state":"DEL_CONF"}}

Jag passade även på att läsa status med GET /next/2/accounts/{accno}/orders och fick tillbaka det här:

{"volume":0.0,
 "price":{
   "currency":"SEK",
   "value":102.4},
 "accno":XXXXX,
 "traded_volume":96.0,
 "side":"BUY",
 "order_id":873613,
 "modified":1437985981121,
 "order_type":"FOK",
 "tradable":{
   "identifier":"366",
   "market_id":11},
 "validity":{
   "type":"IMMEDIATE"},
 "price_condition":"LIMIT",
 "volume_condition":"ALL_OR_NOTHING",
 "activation_condition":{
   "type":"NONE"},
 "order_state":"DELETED",
 "action_state":"DEL_CONF"}

Jag har inte koll på vad som fanns på kontot innan, så jag kan inte avgöra hur många jag faktiskt fick, men enligt både REST och privat feed så fick jag alltså bara 96 av 195 begärda. Trots att det var en FOK-order.
Det troliga är väl att jag som vanligt har gjort nå't dumt, men jag inser inte vad det skulle kunna vara... :-)

RE: traded_volume i privat feed - Added by Lars over 4 years ago

Vad säger GET /next/2/accounts/{accno}/trades ?

RE: traded_volume i privat feed - Added by Björn over 4 years ago

Bara ett avslut med rätt order_id enligt GET /next/2/accounts/{accno}/trades. Bara 96 st köpta även enligt det anropet, så det verkar vara konsekvent.

RE: traded_volume i privat feed - Added by Björn about 4 years ago

Har ni kommit fram till vad som händer?

/Björn

RE: traded_volume i privat feed - Added by Nordnet Simon about 4 years ago

Hej, ledsen att det tog tid. Del 1 tog oss ett tag att hitta.

1) FOK ordrar som inte blir helt fyllda.

Fill-or-kill ordrar "ska" inte kunna bli delvis fyllda utan antingen handlas hela volymen eller inget. Det finns dock specialfall på olika marknadsplatser. När det gäller NasdaqOMX så är det så att all-or-nothing flaggan ignoreras när orderboken inte är i continous trading (tex under auktion). Så det kan vara så att om man handlar FOK utanför continious trading så behöver inte hela ordern fyllas.

Från NasdaqOMX marknadsmodel:

    3. Minimum Quantity Order

    Orders can be entered for execution with a minimum share quantity. Minimum Acceptable Quantity (MAQ) Orders are only accepted during continuous trading with a time-in-force IOC (no other Time in Force will be allowed). Adding Minimum Quantity condition to an Order and setting this to equal the volume gives the equivalent of a Fillor-Kill (FOK). Minimum quantity cannot be combined with any other Order attribute.

    MAQ Orders can participate in the auctions with the MAQ requirement temporarily Waived. That is, MAQ Orders can participate in both auctions and the continuous market; however, the “MAQ requirement” will only be enforced during the continuous market.

2) Varför kommer inte alltid traded_volume med alla deletes:

Många av fälten i ordermeddelandena skickas endast om dom förändrats sen senaste order meddelandet för den ordern. Traded_volume är en av dom. I det första exemplet (inklippt nedan) så har inte traded_volume ändrats mellan första och andra order meddelandet - därför skickas den inte ut. I continus trading när order alltid blir helt fylld så ändras alltid traded_volume innan sista meddelandet så det visas men om ordern inte blir helt fyllld så avslutas ordern med en delete från marknaden utan trade.

2015-07-15 12:26:30Z {"type":"order","data":{"volume":213.0,"order_id":869896,"tradable":{"market_id":11,"identifier":"101"},"accno":XXXXX,"modified":1436963181178,"traded_volume":10.0,"order_state":"ON_MARKET","action_state":"MOD_PUSH"}}

2015-07-15 12:26:30Z {"type":"trade","data":{"accno":XXXXX,"order_id":869896,"trade_id":"B9752-20150715","tradable":{"market_id":11,"identifier":"101"},"price":{"value":89.5,"currency":"SEK"},"volume":10.0,"side":"BUY","counterparty":"MCF","tradetime":1436963181182}}

2015-07-15 12:26:30Z {"type":"order","data":{"order_id":869896,"tradable":{"market_id":11,"identifier":"101"},"accno":XXXXX,"modified":1436963181215,"order_state":"DELETED","action_state":"DEL_CONF"}}

RE: traded_volume i privat feed - Added by Björn about 4 years ago

Hej!

Ingen fara alls med tiden. Det är lugnt!

OK, känns inte helt bra att villkor kan ignoreras, men det är ju inte ert fel. Bara att finna sig... Men jag får det inte att gå ihop riktigt ändå.

Senaste gången jag ser att det här har hänt för mej är 4/9. Jag lägger en order i ATCO B 16:31:32 som stängs först 16:34:08. Det tog alltså drygt 2 minuter innan ordern stängs, vilket stämmer bra med vad som brukar hända om man råkar lägga en order när handeln inte är igång. Men jag kan inte se att ni har meddelat det i det här fallet. Jag har loggat tre trading_status meddelanden för ATCO B den dagen:
1) "status":"C","source_status":"Trading" 09:30:07 (när jag kopplade upp)
2) "status":"R","source_status":"ClosingAuction" 17:25:05
3) "status":"D","source_status":"PostTrading" 17:30:05

Enligt det ska ATCO B alltså ha varit i Continuous trading när jag la ordern.
Förutsatt att mina loggar är korrekta alltså :-) Har jag missat nå't?

Mvh
/Björn

RE: traded_volume i privat feed - Added by Björn about 4 years ago

Någon förklaring?

RE: traded_volume i privat feed - Added by Björn about 4 years ago

Väntar fortfarande på svar...

(1-11/11)