Skip to content

Commit d7ed5c4

Browse files
committed
Add mid to stock quotes
1 parent 5fb38df commit d7ed5c4

File tree

7 files changed

+17
-2
lines changed

7 files changed

+17
-2
lines changed

.changeset/violet-zoos-walk.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@chainlink/dxfeed-adapter': minor
3+
'@chainlink/finage-adapter': minor
4+
---
5+
6+
Add mid to stock quotes

packages/sources/dxfeed/src/endpoint/stock-quotes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export type BaseEndpointTypes = {
1414
Response: {
1515
Result: null
1616
Data: {
17+
mid_price: number
1718
bid_price: number
1819
bid_volume: number
1920
ask_price: number

packages/sources/dxfeed/src/transport/stock-quotes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export const transport = buildWsTransport<BaseEndpointTypes>(
2222
response: {
2323
result: null,
2424
data: {
25+
mid_price: (Number(data[bidPriceIndex]) + Number(data[askPriceIndex])) / 2,
2526
bid_price: Number(data[bidPriceIndex]),
2627
bid_volume: Number(data[bidSizeIndex]),
2728
ask_price: Number(data[askPriceIndex]),

packages/sources/dxfeed/test/integration/__snapshots__/adapter-ws.test.ts.snap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ exports[`websocket quote endpoint should return success 1`] = `
77
"ask_volume": 100,
88
"bid_price": 170,
99
"bid_volume": 148,
10+
"mid_price": 171,
1011
},
1112
"result": null,
1213
"statusCode": 200,

packages/sources/finage/src/endpoint/stock-quotes.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export type BaseEndpointTypes = {
1111
Response: {
1212
Result: null
1313
Data: {
14+
mid_price: number
1415
bid_price: number
1516
bid_volume: number
1617
ask_price: number

packages/sources/finage/src/transport/stock-quotes.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,18 @@ export const transport = new WebSocketTransport<WsTransportTypes>({
4848
return []
4949
}
5050

51+
const bidPrice = isValidNumber(message.b) ? Number(message.b) : Number(message.bp)
52+
const askPrice = isValidNumber(message.a) ? Number(message.a) : Number(message.ap)
5153
return [
5254
{
5355
params: { base: message.s },
5456
response: {
5557
result: null,
5658
data: {
57-
bid_price: isValidNumber(message.b) ? Number(message.b) : Number(message.bp),
59+
mid_price: (bidPrice + askPrice) / 2,
60+
bid_price: bidPrice,
5861
bid_volume: Number(message.bs),
59-
ask_price: isValidNumber(message.a) ? Number(message.a) : Number(message.ap),
62+
ask_price: askPrice,
6063
ask_volume: Number(message.as),
6164
},
6265
timestamps: {

packages/sources/finage/test/integration/__snapshots__/adapter-stock-quote.test.ts.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ exports[`stock quotes websocket stock quotes endpoint missing a and b fields sho
77
"ask_volume": 11,
88
"bid_price": 12,
99
"bid_volume": 13,
10+
"mid_price": 11,
1011
},
1112
"result": null,
1213
"statusCode": 200,
@@ -25,6 +26,7 @@ exports[`stock quotes websocket stock quotes endpoint should return success 1`]
2526
"ask_volume": 6,
2627
"bid_price": 7,
2728
"bid_volume": 8,
29+
"mid_price": 6,
2830
},
2931
"result": null,
3032
"statusCode": 200,

0 commit comments

Comments
 (0)