Mer orderstrul

Added by Björn almost 6 years ago

Hej!

I början av veckan hade jag återigen en order (852217) som fastnade i status DELETE/INS_FAIL. I morse gjorde jag ett försök att ta bort den, men det misslyckades med "Internal error"/DEL_FAIL. Jag gjorde ännu ett försök och då var ordern redan borttagen.

Det är illa nog att testsystemet inte har all funktionalitet som produktion har. Att ordrar fastnar gör att jag har svårt att testa ordentligt, vilket resulterar i att jag inte får tillräckligt mycket förtroende för kombinationen mitt program och er server för att våga riskera egna pengar i produktionssystemet. Och att man inte ens kan lita på svar från testsystemet (DEL_FAIL trots att den faktiskt togs bort) är en fullständig katastrof för förtroendet.

1) Är orsaken till varför ordrar fastnar känd? Jag förutsätter att det bara händer i testsystemet...
2) Kommer ni att kunna rätta det inom överskådlig tid?
3) Om inte, kan ni minska problemen på något sätt, tex genom att kontinuerligt övervaka systemet och rensa ordrar som har fastnat?
4) Kan ni ta en titt på mitt försök att ta bort ordern i morse och återkomma med förklaring till vad som hände?

Mvh
/Björn


Replies (2)

RE: Mer orderstrul - Added by Nordnet Simon almost 6 years ago

Björn wrote:

Hej!

1) Är orsaken till varför ordrar fastnar känd? Jag förutsätter att det bara händer i testsystemet...

Ja vi vet varför dom stannar i skumt state. Det kommer av att vi inte får svar på ordern - en av anledningarna är att vi inte har mekanismen att stänga marknaden och stoppa orderskickande när marknaden är stängd. Att den fastnar så här länge händer normalt bara i test.

Däremot är att så att när vi har skickat ordern/modifiering till marknaden och inte fått svar ännu så får man reject på order modifieringar. Så om man försöker modifiera/ta bort en order som ligger i någon pend status får man fel. Den perioden är några ms i produktion och man kan försöka direkt igen.

Men den här gången är det inte riktigt samma sak. Du la en fill-and-kill order 17:34 i måndags - den verkade få fel direkt från marknaden (pga stängd marknad). I morse hämtade du dina ordrar och fick ordern tillbaka, i det svaret stod det order_state="DELETED" vilket innebär att den inte lever. Om ordern är släckt pga av fel så visar vi den i listan av ordrar med order_state=DELETED. Om man försöker ta bort en släckt order får man fel ett felmeddelande tillbaka (och ordern göms). Det som är fel i test är att ordern är gammal och borde tas bort helt vilket inte görs. Men vid vissa typer av fel så visar vi släckta orders även i prod (även om dom tas bort varje natt).

2) Kommer ni att kunna rätta det inom överskådlig tid?

Jag vet tyvärr inte.

3) Om inte, kan ni minska problemen på något sätt, tex genom att kontinuerligt övervaka systemet och rensa ordrar som har fastnat?

Vi får titta på det

4) Kan ni ta en titt på mitt försök att ta bort ordern i morse och återkomma med förklaring till vad som hände?

Se ovan

Mvh
/Björn

RE: Mer orderstrul - Added by Björn almost 6 years ago

Ah... Ja, det ser ut som att jag inte hanterar mottagen trading_status korrekt. Jag får helt enkelt felsöka!

Just det, den här ordern fastnade ju faktiskt inte i samma tillstånd som vid de tidigare problemen, då det har varit LOCAL/INS_PEND istället. Jag tänkte inte på det...
Oplanerade auktioner kan ju tex alltid inträffa, om jag har förstått rätt, även om de är ovanliga i produktion tack vare bättre likviditet och mindre spread. Det innebär att jag aldrig någonsin kan gardera mej mot att lägga ordrar när handeln tillfälligt är stoppad. Det krävs kanske otur på millisekundnivån, men ändå... Kan det inträffa även i produktion så borde jag hantera det smidigare än jag gör nu.

Anledningen till att jag hakar upp mej på hängande ordrar är att de enligt min nuvarande implementation indikerar att programmet "inte har koll" (en av många kontroller som görs vid uppstart och kontinuerligt under körning), dvs att jag riskerar att förlora pengar pga buggar i programmet. Jag stänger helt enkelt av när den här situationen uppstår. Mitt resonemang har varit att konton som jag har robotar som handlar på "aldrig" ska ha oavslutade ordrar, eftersom jag på de kontona enbart använder FOK- och FAK-ordrar vilka omedelbart går igenom och/eller tas bort. När jag loggar in så begär jag att få alla ej borttagna ordrar (deleted=false som argument till REST-anropet), men den här rapporteras i alla fall och då kopplar jag alltså ner. Men det här är alltså förväntat beteende? Varför då? ;-) Jag har som sagt bett att inte få tillbaka borttagna ordrar i svaret... Om det är som det ska vara så borde jag ignorera ordrar som har order_state=DELETED i det svaret. För de är väl helt döda om DELETED rapporteras? De kan tex inte påverka tillgängligt saldo för köpordrar eller tillgängligt antal aktier för säljordrar?

(1-2/2)