Skip to content

Commit a9d5051

Browse files
committed
Fix bug around ASK partial fills (incorrect sign)
1 parent 2e2db5b commit a9d5051

2 files changed

Lines changed: 7 additions & 15 deletions

File tree

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<PropertyGroup>
66
<LangVersion>latest</LangVersion>
7-
<Version>2.13.6</Version>
7+
<Version>2.13.8</Version>
88
</PropertyGroup>
99

1010
</Project>

src/Crypto.Websocket.Extensions/Orders/Sources/HyperliquidOrderSource.cs

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)