Skip to content

Commit 20ea401

Browse files
author
ubuntu
committed
update binance-usds-futures get account balance and position from v2 to v3
1 parent 37a086c commit 20ea401

File tree

3 files changed

+19
-17
lines changed

3 files changed

+19
-17
lines changed

include/ccapi_cpp/service/ccapi_execution_management_service_binance_derivatives_base.h

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,26 +37,30 @@ class ExecutionManagementServiceBinanceDerivativesBase : public ExecutionManagem
3737
switch (request.getOperation()) {
3838
case Request::Operation::GET_ACCOUNT_POSITIONS: {
3939
for (const auto& x : document.GetArray()) {
40-
Element element;
41-
element.insert(CCAPI_INSTRUMENT, x["symbol"].GetString());
42-
element.insert(CCAPI_EM_POSITION_SIDE, x["positionSide"].GetString());
4340
std::string positionAmt;
4441
auto it = x.FindMember("positionAmt");
4542
if (it != x.MemberEnd()) {
4643
positionAmt = it->value.GetString();
4744
} else {
4845
positionAmt = x["maxQty"].GetString();
4946
}
50-
element.insert(CCAPI_EM_POSITION_QUANTITY, positionAmt);
51-
element.insert(CCAPI_EM_POSITION_ENTRY_PRICE, x["entryPrice"].GetString());
52-
element.insert(CCAPI_EM_POSITION_LEVERAGE, x["leverage"].GetString());
53-
if (x.HasMember("unrealizedProfit")) {
54-
element.insert(CCAPI_EM_UNREALIZED_PNL, x["unrealizedProfit"].GetString());
55-
} else {
56-
element.insert(CCAPI_EM_UNREALIZED_PNL, x["unRealizedProfit"].GetString());
47+
if (!positionAmt.empty()) {
48+
const auto& positionAmtDecimal = Decimal(positionAmt);
49+
if (positionAmtDecimal != Decimal::zero) {
50+
Element element;
51+
element.insert(CCAPI_INSTRUMENT, x["symbol"].GetString());
52+
element.insert(CCAPI_EM_POSITION_SIDE, x["positionSide"].GetString());
53+
element.insert(CCAPI_EM_POSITION_QUANTITY, positionAmt);
54+
element.insert(CCAPI_EM_POSITION_ENTRY_PRICE, x["entryPrice"].GetString());
55+
if (x.HasMember("unrealizedProfit")) {
56+
element.insert(CCAPI_EM_UNREALIZED_PNL, x["unrealizedProfit"].GetString());
57+
} else {
58+
element.insert(CCAPI_EM_UNREALIZED_PNL, x["unRealizedProfit"].GetString());
59+
}
60+
element.insert(CCAPI_LAST_UPDATED_TIME_SECONDS, UtilTime::convertMillisecondsStrToSecondsStr(x["updateTime"].GetString()));
61+
elementList.emplace_back(std::move(element));
62+
}
5763
}
58-
element.insert(CCAPI_LAST_UPDATED_TIME_SECONDS, UtilTime::convertMillisecondsStrToSecondsStr(x["updateTime"].GetString()));
59-
elementList.emplace_back(std::move(element));
6064
}
6165
} break;
6266
default:

include/ccapi_cpp/service/ccapi_execution_management_service_binance_usds_futures.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ class ExecutionManagementServiceBinanceUsdsFutures : public ExecutionManagementS
3333
this->cancelOpenOrdersTarget = "/fapi/v1/allOpenOrders";
3434
this->isDerivatives = true;
3535
this->listenKeyTarget = CCAPI_BINANCE_USDS_FUTURES_LISTEN_KEY_PATH;
36-
this->getAccountBalancesTarget = "/fapi/v2/account";
37-
this->getAccountPositionsTarget = "/fapi/v2/positionRisk";
36+
this->getAccountBalancesTarget = "/fapi/v3/account";
37+
this->getAccountPositionsTarget = "/fapi/v3/positionRisk";
3838
}
3939

4040
virtual ~ExecutionManagementServiceBinanceUsdsFutures() {}

test/test_unit/src/execution_management/binance_usds_futures/test.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ TEST_F(ExecutionManagementServiceBinanceUsdsFuturesTest, convertRequestGetAccoun
421421
EXPECT_EQ(req.method(), http::verb::get);
422422
verifyApiKey(req, this->credential.at(CCAPI_BINANCE_USDS_FUTURES_API_KEY));
423423
auto splitted = UtilString::split(std::string(req.target()), "?");
424-
EXPECT_EQ(splitted.at(0), "/fapi/v2/positionRisk");
424+
EXPECT_EQ(splitted.at(0), "/fapi/v3/positionRisk");
425425
auto paramMap = Url::convertQueryStringToMap(splitted.at(1));
426426
EXPECT_EQ(paramMap.at("timestamp"), std::to_string(this->timestamp));
427427
verifySignature(splitted.at(1), this->credential.at(CCAPI_BINANCE_USDS_FUTURES_API_SECRET));
@@ -439,7 +439,6 @@ TEST_F(ExecutionManagementServiceBinanceUsdsFuturesTest, convertTextMessageToMes
439439
"unrealizedProfit": "0.00000000",
440440
"positionInitialMargin": "0",
441441
"openOrderInitialMargin": "0",
442-
"leverage": "100",
443442
"isolated": true,
444443
"entryPrice": "0.00000",
445444
"maxNotional": "250000",
@@ -461,7 +460,6 @@ TEST_F(ExecutionManagementServiceBinanceUsdsFuturesTest, convertTextMessageToMes
461460
EXPECT_EQ(element.getValue(CCAPI_EM_POSITION_SIDE), "BOTH");
462461
EXPECT_EQ(element.getValue(CCAPI_EM_POSITION_QUANTITY), "0");
463462
EXPECT_DOUBLE_EQ(std::stod(element.getValue(CCAPI_EM_POSITION_ENTRY_PRICE)), 0);
464-
EXPECT_EQ(element.getValue(CCAPI_EM_POSITION_LEVERAGE), "100");
465463
}
466464

467465
} /* namespace ccapi */

0 commit comments

Comments
 (0)