@@ -172,16 +172,6 @@ public CryptoOrder ConvertOrder(UserOrderResponse response)
172172 OnMargin = existing ? . OnMargin ?? true
173173 } ;
174174
175- if ( currentStatus == CryptoOrderStatus . PartiallyFilled )
176- {
177- // save partially filled orders
178- _partiallyFilledOrders [ newOrder . Id ] = newOrder ;
179- }
180- else
181- {
182- _partiallyFilledOrders . TryRemove ( newOrder . Id , out _ ) ;
183- }
184-
185175 return newOrder ;
186176 }
187177
@@ -194,7 +184,9 @@ private CryptoOrder ConvertFill(Fill fill)
194184
195185 var price = Math . Abs ( FirstNonZero ( fill . Price , existing ? . Price ) ?? 0 ) ;
196186
197- var currentStatus = ( existing ? . AmountFilledCumulative ?? 0 ) + fill . Size < ( existing ? . AmountOrig ?? 0 ) ? CryptoOrderStatus . PartiallyFilled : CryptoOrderStatus . Executed ;
187+ var currentStatus = ( Math . Abs ( existing ? . AmountFilledCumulative ?? 0 ) + Math . Abs ( fill . Size ) ) < Math . Abs ( existing ? . AmountOrig ?? 0 ) ?
188+ CryptoOrderStatus . PartiallyFilled :
189+ CryptoOrderStatus . Executed ;
198190
199191 var newOrder = new CryptoOrder
200192 {
@@ -204,11 +196,11 @@ private CryptoOrder ConvertFill(Fill fill)
204196 Pair = fill . Coin ?? existing ? . Pair ?? string . Empty ,
205197 Side = fill . Side == Side . Ask ? CryptoOrderSide . Ask : CryptoOrderSide . Bid ,
206198 AmountFilled = fill . Size ,
207- AmountFilledCumulative = fill . Size + ( existing ? . AmountFilledCumulative ?? 0 ) ,
199+ AmountFilledCumulative = Math . Abs ( fill . Size ) + Math . Abs ( existing ? . AmountFilledCumulative ?? 0 ) ,
208200 AmountOrig = existing ? . AmountOrig ?? fill . Size ,
209201 AmountFilledQuote = fill . Size * price ,
210- AmountFilledCumulativeQuote = fill . Size * fill . Price + ( existing ? . AmountFilledCumulativeQuote ?? 0 ) ,
211- AmountOrigQuote = ( existing ? . AmountOrig ?? fill . Size ) * price ,
202+ AmountFilledCumulativeQuote = Math . Abs ( fill . Size ) * fill . Price + Math . Abs ( existing ? . AmountFilledCumulativeQuote ?? 0 ) ,
203+ AmountOrigQuote = Math . Abs ( existing ? . AmountOrig ?? fill . Size ) * price ,
212204 Created = existing ? . Created ?? fill . Time ,
213205 Updated = fill . Time ,
214206 Price = price ,
0 commit comments