Skip to content

Commit

Permalink
[CT-629] Fix entryPrice calc (#2455)
Browse files Browse the repository at this point in the history
  • Loading branch information
dydxwill authored Oct 14, 2024
1 parent bee57fe commit c8f8a4a
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ describe('LiquidationHandler', () => {
perpetualId: testConstants.defaultPerpetualMarket.id,
side: PositionSide.LONG,
status: PerpetualPositionStatus.OPEN,
size: '10',
size: '5',
maxSize: '25',
sumOpen: '10',
entryPrice: '15000',
Expand Down Expand Up @@ -392,7 +392,7 @@ describe('LiquidationHandler', () => {
defaultPerpetualPosition.openEventId,
),
{
sumOpen: Big(defaultPerpetualPosition.size).plus(totalFilled).toFixed(),
sumOpen: Big(defaultPerpetualPosition.sumOpen!).plus(totalFilled).toFixed(),
entryPrice: getWeightedAverage(
defaultPerpetualPosition.entryPrice!,
defaultPerpetualPosition.size,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ describe('OrderHandler', () => {
perpetualId: testConstants.defaultPerpetualMarket.id,
side: PositionSide.LONG,
status: PerpetualPositionStatus.OPEN,
size: '10',
size: '5',
maxSize: '25',
sumOpen: '10',
entryPrice: '15000',
Expand Down Expand Up @@ -212,6 +212,7 @@ describe('OrderHandler', () => {
{
goodTilBlock: 15,
},
false,
],
[
'goodTilBlockTime',
Expand All @@ -221,6 +222,17 @@ describe('OrderHandler', () => {
{
goodTilBlockTime: 1_000_005_000,
},
false,
],
[
'goodTilBlock',
{
goodTilBlock: 10,
},
{
goodTilBlock: 15,
},
true,
],
])(
'creates fills and orders (with %s), sends vulcan messages for order updates and order ' +
Expand All @@ -229,6 +241,7 @@ describe('OrderHandler', () => {
_name: string,
makerGoodTilOneof: Partial<IndexerOrder>,
takerGoodTilOneof: Partial<IndexerOrder>,
useNegativeSize: boolean,
) => {
const transactionIndex: number = 0;
const eventIndex: number = 0;
Expand Down Expand Up @@ -284,7 +297,10 @@ describe('OrderHandler', () => {

// create PerpetualPositions
await Promise.all([
PerpetualPositionTable.create(defaultPerpetualPosition),
PerpetualPositionTable.create({
...defaultPerpetualPosition,
size: useNegativeSize ? '-5' : defaultPerpetualPosition.size,
}),
PerpetualPositionTable.create({
...defaultPerpetualPosition,
subaccountId: testConstants.defaultSubaccountId2,
Expand Down Expand Up @@ -439,7 +455,7 @@ describe('OrderHandler', () => {
defaultPerpetualPosition.openEventId,
),
{
sumOpen: Big(defaultPerpetualPosition.size).plus(totalFilled).toFixed(),
sumOpen: Big(defaultPerpetualPosition.sumOpen!).plus(totalFilled).toFixed(),
entryPrice: getWeightedAverage(
defaultPerpetualPosition.entryPrice!,
defaultPerpetualPosition.size,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ BEGIN
perpetual_position_record."side", order_side) THEN
sum_open = dydx_trim_scale(perpetual_position_record."sumOpen" + fill_amount);
entry_price = dydx_get_weighted_average(
perpetual_position_record."entryPrice", perpetual_position_record."sumOpen",
perpetual_position_record."entryPrice", ABS(perpetual_position_record."size"),
maker_price, fill_amount);
perpetual_position_record."sumOpen" = sum_open;
perpetual_position_record."entryPrice" = entry_price;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ BEGIN
IF dydx_perpetual_position_and_order_side_matching(perpetual_position_record."side", side) THEN
sum_open := dydx_trim_scale(perpetual_position_record."sumOpen" + size);
entry_price := dydx_get_weighted_average(
perpetual_position_record."entryPrice", perpetual_position_record."sumOpen", price, size
perpetual_position_record."entryPrice", ABS(perpetual_position_record."size"), price, size
);
perpetual_position_record."sumOpen" = sum_open;
perpetual_position_record."entryPrice" = entry_price;
Expand Down

0 comments on commit c8f8a4a

Please sign in to comment.