diff --git a/README.md b/README.md index 69891b921..cf52d0575 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ * Example CMake: example/CMakeLists.txt. * Require C++17 and OpenSSL. * Macros in the compiler command line: - * Define service enablement macro such as `CCAPI_ENABLE_SERVICE_MARKET_DATA`, `CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT`, `CCAPI_ENABLE_SERVICE_FIX`, etc. and exchange enablement macros such as `CCAPI_ENABLE_EXCHANGE_OKX`, etc. These macros can be found at the top of [`include/ccapi_cpp/ccapi_session.h`](include/ccapi_cpp/ccapi_session.h). + * Define service enablement macro such as `CCAPI_ENABLE_SERVICE_MARKET_DATA`, `CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT`, `CCAPI_ENABLE_SERVICE_FIX`, etc. and exchange enablement macros such as `CCAPI_ENABLE_EXCHANGE_BYBIT`, etc. These macros can be found at the top of [`include/ccapi_cpp/ccapi_session.h`](include/ccapi_cpp/ccapi_session.h). * Dependencies: * boost https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.gz (notice that its include directory is boost). * rapidjson https://github.com/Tencent/rapidjson/archive/refs/tags/v1.1.0.tar.gz (notice that its include directory is rapidjson/include). @@ -240,7 +240,7 @@ int main(int argc, char** argv) { SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Request request(Request::Operation::GET_RECENT_TRADES, "okx", "BTC-USDT"); + Request request(Request::Operation::GET_RECENT_TRADES, "bybit", "BTCUSDT"); request.appendParam({ {"LIMIT", "1"}, }); @@ -331,7 +331,7 @@ int main(int argc, char** argv) { SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH"); + Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH"); session.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); session.stop(); @@ -368,18 +368,18 @@ request.appendParam({ Instantiate `Subscription` with option `MARKET_DEPTH_MAX` set to be the desired market depth (e.g. you want to receive market depth snapshot whenever the top 10 bid's or ask's price or size changes). ``` -Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH", "MARKET_DEPTH_MAX=10"); +Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH", "MARKET_DEPTH_MAX=10"); ``` #### Specify correlation id Instantiate `Request` with the desired correlationId. The `correlationId` should be unique. ``` -Request request(Request::Operation::GET_RECENT_TRADES, "okx", "BTC-USDT", "cool correlation id"); +Request request(Request::Operation::GET_RECENT_TRADES, "bybit", "BTCUSDT", "cool correlation id"); ``` Instantiate `Subscription` with the desired correlationId. ``` -Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH", "", "cool correlation id"); +Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH", "", "cool correlation id"); ``` This is used to match a particular request or subscription with its returned data. Within each `Message` there is a `correlationIdList` to identify the request or subscription that requested the data. @@ -387,7 +387,7 @@ This is used to match a particular request or subscription with its returned dat Send a `std::vector`. ``` -Request request_1(Request::Operation::GET_RECENT_TRADES, "okx", "BTC-USDT", "cool correlation id for BTC"); +Request request_1(Request::Operation::GET_RECENT_TRADES, "bybit", "BTCUSDT", "cool correlation id for BTC"); request_1.appendParam(...); Request request_2(Request::Operation::GET_RECENT_TRADES, "binance", "ETH-USDT", "cool correlation id for ETH"); request_2.appendParam(...); @@ -396,8 +396,8 @@ session.sendRequest(requests); ``` Subscribe a `std::vector`. ``` -Subscription subscription_1("okx", "BTC-USDT", "MARKET_DEPTH", "", "cool correlation id for okx BTC-USDT"); -Subscription subscription_2("binance", "ETH-USDT", "MARKET_DEPTH", "", "cool correlation id for binance ETH-USDT"); +Subscription subscription_1("bybit", "BTCUSDT", "MARKET_DEPTH", "", "cool correlation id for bybit BTCUSDT"); +Subscription subscription_2("binance", "ETHUSDT", "MARKET_DEPTH", "", "cool correlation id for binance ETHUSDT"); std::vector subscriptions = {subscription_1, subscription_2}; session.subscribe(subscriptions); ``` @@ -406,49 +406,49 @@ session.subscribe(subscriptions); Instantiate `Subscription` with option `CONFLATE_INTERVAL_MILLISECONDS` set to be the desired interval. ``` -Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH", "CONFLATE_INTERVAL_MILLISECONDS=1000"); +Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH", "CONFLATE_INTERVAL_MILLISECONDS=1000"); ``` #### Receive subscription events at periodic intervals including when the market depth snapshot hasn't changed Instantiate `Subscription` with option `CONFLATE_INTERVAL_MILLISECONDS` set to be the desired interval and `CONFLATE_GRACE_PERIOD_MILLISECONDS` to be the grace period for late events. ``` -Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH", "CONFLATE_INTERVAL_MILLISECONDS=1000&CONFLATE_GRACE_PERIOD_MILLISECONDS=0"); +Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH", "CONFLATE_INTERVAL_MILLISECONDS=1000&CONFLATE_GRACE_PERIOD_MILLISECONDS=0"); ``` #### Receive subscription market depth updates Instantiate `Subscription` with option `MARKET_DEPTH_RETURN_UPDATE` set to 1. This will return the order book updates instead of snapshots. ``` -Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH", "MARKET_DEPTH_RETURN_UPDATE=1&MARKET_DEPTH_MAX=2"); +Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH", "MARKET_DEPTH_RETURN_UPDATE=1&MARKET_DEPTH_MAX=2"); ``` #### Receive subscription trade events Instantiate `Subscription` with field `TRADE`. ``` -Subscription subscription("okx", "BTC-USDT", "TRADE"); +Subscription subscription("bybit", "BTCUSDT", "TRADE"); ``` #### Receive subscription calculated-candlestick events at periodic intervals Instantiate `Subscription` with field `TRADE` and option `CONFLATE_INTERVAL_MILLISECONDS` set to be the desired interval and `CONFLATE_GRACE_PERIOD_MILLISECONDS` to be your network latency. ``` -Subscription subscription("okx", "BTC-USDT", "TRADE", "CONFLATE_INTERVAL_MILLISECONDS=5000&CONFLATE_GRACE_PERIOD_MILLISECONDS=0"); +Subscription subscription("bybit", "BTCUSDT", "TRADE", "CONFLATE_INTERVAL_MILLISECONDS=5000&CONFLATE_GRACE_PERIOD_MILLISECONDS=0"); ``` #### Receive subscription exchange-provided-candlestick events at periodic intervals Instantiate `Subscription` with field `CANDLESTICK` and option `CANDLESTICK_INTERVAL_SECONDS` set to be the desired interval. ``` -Subscription subscription("okx", "BTC-USDT", "CANDLESTICK", "CANDLESTICK_INTERVAL_SECONDS=60"); +Subscription subscription("bybit", "BTCUSDT", "CANDLESTICK", "CANDLESTICK_INTERVAL_SECONDS=60"); ``` #### Send generic public requests Instantiate `Request` with operation `GENERIC_PUBLIC_REQUEST`. Provide request parameters `HTTP_METHOD`, `HTTP_PATH`, and optionally `HTTP_QUERY_STRING` (query string parameter values should be url-encoded), `HTTP_BODY`. ``` -Request request(Request::Operation::GENERIC_PUBLIC_REQUEST, "okx", "", "Check Server Time"); +Request request(Request::Operation::GENERIC_PUBLIC_REQUEST, "bybit", "", "Check Server Time"); request.appendParam({ {"HTTP_METHOD", "GET"}, {"HTTP_PATH", "/api/v5/public/time"}, @@ -459,14 +459,14 @@ request.appendParam({ Instantiate `Subscription` with empty instrument, field `GENERIC_PUBLIC_SUBSCRIPTION` and options set to be the desired websocket payload. ``` -Subscription subscription("okx", "", "GENERIC_PUBLIC_SUBSCRIPTION", R"({"type":"subscribe","channels":[{"name":"status"}]})"); +Subscription subscription("bybit", "", "GENERIC_PUBLIC_SUBSCRIPTION", R"({"type":"subscribe","channels":[{"name":"status"}]})"); ``` #### Send generic private requests Instantiate `Request` with operation `GENERIC_PRIVATE_REQUEST`. Provide request parameters `HTTP_METHOD`, `HTTP_PATH`, and optionally `HTTP_QUERY_STRING` (query string parameter values should be url-encoded), `HTTP_BODY`. ``` -Request request(Request::Operation::GENERIC_PRIVATE_REQUEST, "okx", "", "close all positions"); +Request request(Request::Operation::GENERIC_PRIVATE_REQUEST, "bybit", "", "close all positions"); request.appendParam({ {"HTTP_METHOD", "POST"}, {"HTTP_PATH", "/api/v5/trade/close-position"}, @@ -511,24 +511,21 @@ using ::ccapi::toString; using ::ccapi::UtilSystem; int main(int argc, char** argv) { - if (UtilSystem::getEnvAsString("OKX_API_KEY").empty()) { - std::cerr << "Please set environment variable OKX_API_KEY" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_KEY").empty()) { + std::cerr << "Please set environment variable BYBIT_API_KEY" << std::endl; return EXIT_FAILURE; } - if (UtilSystem::getEnvAsString("OKX_API_SECRET").empty()) { - std::cerr << "Please set environment variable OKX_API_SECRET" << std::endl; - return EXIT_FAILURE; - } - if (UtilSystem::getEnvAsString("OKX_API_PASSPHRASE").empty()) { - std::cerr << "Please set environment variable OKX_API_PASSPHRASE" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_SECRET").empty()) { + std::cerr << "Please set environment variable BYBIT_API_SECRET" << std::endl; return EXIT_FAILURE; } + SessionOptions sessionOptions; SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Request request(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT"); + Request request(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT"); request.appendParam({ {"SIDE", "BUY"}, {"QUANTITY", "0.0005"}, @@ -599,7 +596,7 @@ class MyEventHandler : public EventHandler { std::cout << "Received an event of type SUBSCRIPTION_STATUS:\n" + event.toPrettyString(2, 2) << std::endl; auto message = event.getMessageList().at(0); if (message.getType() == Message::Type::SUBSCRIPTION_STARTED) { - Request request(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT"); + Request request(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT"); request.appendParam({ {"SIDE", "BUY"}, {"LIMIT_PRICE", "20000"}, @@ -625,23 +622,20 @@ using ::ccapi::Subscription; using ::ccapi::UtilSystem; int main(int argc, char** argv) { - if (UtilSystem::getEnvAsString("OKX_API_KEY").empty()) { - std::cerr << "Please set environment variable OKX_API_KEY" << std::endl; - return EXIT_FAILURE; - } - if (UtilSystem::getEnvAsString("OKX_API_SECRET").empty()) { - std::cerr << "Please set environment variable OKX_API_SECRET" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_KEY").empty()) { + std::cerr << "Please set environment variable BYBIT_API_KEY" << std::endl; return EXIT_FAILURE; } - if (UtilSystem::getEnvAsString("OKX_API_PASSPHRASE").empty()) { - std::cerr << "Please set environment variable OKX_API_PASSPHRASE" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_SECRET").empty()) { + std::cerr << "Please set environment variable BYBIT_API_SECRET" << std::endl; return EXIT_FAILURE; } + SessionOptions sessionOptions; SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Subscription subscription("okx", "BTC-USDT", "ORDER_UPDATE"); + Subscription subscription("bybit", "BTCUSDT", "ORDER_UPDATE"); session.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); session.stop(); @@ -705,11 +699,11 @@ Bye Instantiate `Request` with the desired `correlationId`. The `correlationId` should be unique. ``` -Request request(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT", "cool correlation id"); +Request request(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT", "cool correlation id"); ``` Instantiate `Subscription` with the desired `correlationId`. ``` -Subscription subscription("okx", "BTC-USDT", "ORDER_UPDATE", "", "cool correlation id"); +Subscription subscription("bybit", "BTCUSDT", "ORDER_UPDATE", "", "cool correlation id"); ``` This is used to match a particular request or subscription with its returned data. Within each `Message` there is a `correlationIdList` to identify the request or subscription that requested the data. @@ -717,23 +711,23 @@ This is used to match a particular request or subscription with its returned dat Send a `std::vector`. ``` -Request request_1(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT", "cool correlation id for BTC"); +Request request_1(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT", "cool correlation id for BTC"); request_1.appendParam(...); -Request request_2(Request::Operation::CREATE_ORDER, "okx", "ETH-USDT", "cool correlation id for ETH"); +Request request_2(Request::Operation::CREATE_ORDER, "bybit", "ETH-USDT", "cool correlation id for ETH"); request_2.appendParam(...); std::vector requests = {request_1, request_2}; session.sendRequest(requests); ``` Subscribe one `Subscription` per exchange with a comma separated string of instruments. ``` -Subscription subscription("okx", "BTC-USDT,ETH-USDT", "ORDER_UPDATE"); +Subscription subscription("bybit", "BTC-USDT,ETH-USDT", "ORDER_UPDATE"); ``` #### Multiple subscription fields Subscribe one `Subscription` with a comma separated string of fields. ``` -Subscription subscription("okx", "BTC-USDT", "ORDER_UPDATE,PRIVATE_TRADE"); +Subscription subscription("bybit", "BTCUSDT", "ORDER_UPDATE,PRIVATE_TRADE"); ``` #### Make Session::sendRequest blocking @@ -752,31 +746,30 @@ There are 3 ways to provide API credentials (listed with increasing priority). * Provide credentials to `SessionConfigs`. ``` sessionConfigs.setCredential({ - {"OKX_API_KEY", ...}, - {"OKX_API_SECRET", ...} + {"BYBIT_API_KEY", ...}, + {"BYBIT_API_SECRET", ...} }); ``` * Provide credentials to `Request` or `Subscription`. ``` -Request request(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT", "", { - {"OKX_API_KEY", ...}, - {"OKX_API_SECRET", ...} +Request request(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT", "", { + {"BYBIT_API_KEY", ...}, + {"BYBIT_API_SECRET", ...} }); ``` ``` -Subscription subscription("okx", "BTC-USDT", "ORDER_UPDATE", "", "", { - {"OKX_API_KEY", ...}, - {"OKX_API_SECRET", ...} +Subscription subscription("bybit", "BTCUSDT", "ORDER_UPDATE", "", "", { + {"BYBIT_API_KEY", ...}, + {"BYBIT_API_SECRET", ...} }); ``` #### Complex request parameters -Please follow the exchange's API documentations: e.g. https://www.okx.com/docs-v5/en/#order-book-trading-trade-post-place-order. +Please follow the exchange's API documentations: e.g. https://bybit-exchange.github.io/docs/v5/order/create-order. ``` -Request request(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT"); +Request request(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT"); request.appendParam({ - {"tdMode", "cross"}, - {"ccy", "USDT"}, + {"isLeverage", "1"}, }); ``` @@ -784,10 +777,10 @@ request.appendParam({ For okx, cryptocom: ``` std::string websocketOrderEntrySubscriptionCorrelationId("any"); -Subscription subscription("okx", "", "ORDER_UPDATE", "", websocketOrderEntrySubscriptionCorrelationId); +Subscription subscription("bybit", "", "ORDER_UPDATE", "", websocketOrderEntrySubscriptionCorrelationId); session.subscribe(subscription); ... -Request request(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT"); +Request request(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT"); request.appendParam({ {"SIDE", "BUY"}, {"LIMIT_PRICE", "20000"}, @@ -1074,12 +1067,12 @@ session.subscribe(subscription); ``` #### Override exchange urls -You can override exchange urls at compile time by using macros. See section "exchange REST urls", "exchange WS urls", and "exchange FIX urls" in [`include/ccapi_cpp/ccapi_macro.h`](include/ccapi_cpp/ccapi_macro.h). You can also override exchange urls at runtime. See [this example](example/src/override_exchange_url_at_runtime/main.cpp). These can be useful if you need to connect to test accounts (e.g. https://www.okx.com/docs-v5/en/#overview-demo-trading-services). +You can override exchange urls at compile time by using macros. See section "exchange REST urls", "exchange WS urls", and "exchange FIX urls" in [`include/ccapi_cpp/ccapi_macro.h`](include/ccapi_cpp/ccapi_macro.h). You can also override exchange urls at runtime. See [this example](example/src/override_exchange_url_at_runtime/main.cpp). These can be useful if you need to connect to test accounts (e.g. https://testnet.bybit.com/). #### Connect to a proxy Instantiate `Subscription` with the desired `proxyUrl`. ``` -Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH", "", "", {}, "172.30.0.146:9000"); +Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH", "", "", {}, "172.30.0.146:9000"); ``` #### Reduce build time diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index c4649b5b0..51f7552f3 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -68,23 +68,23 @@ if(WIN32) endif() link_libraries(OpenSSL::Crypto OpenSSL::SSL ${ADDITIONAL_LINK_LIBRARIES}) add_compile_options(-Wno-deprecated -Wno-nonnull -Wno-deprecated-declarations) -add_subdirectory(src/market_data_simple_request) -add_subdirectory(src/market_data_simple_subscription) -add_subdirectory(src/market_data_advanced_request) -add_subdirectory(src/market_data_advanced_subscription) -add_subdirectory(src/generic_public_request) -add_subdirectory(src/generic_private_request) -add_subdirectory(src/execution_management_simple_request) -add_subdirectory(src/execution_management_simple_subscription) -add_subdirectory(src/execution_management_advanced_request) -add_subdirectory(src/execution_management_advanced_subscription) -add_subdirectory(src/fix_simple) -add_subdirectory(src/fix_advanced) -add_subdirectory(src/enable_library_logging) -add_subdirectory(src/set_timer) -add_subdirectory(src/heartbeat) -add_subdirectory(src/override_exchange_url_at_runtime) -add_subdirectory(src/test_order_latency) -add_subdirectory(src/test_cpu_usage) -add_subdirectory(src/use_multiple_sessions) -add_subdirectory(src/reduce_build_time) +add_subdirectory(market_data_simple_request) +add_subdirectory(market_data_simple_subscription) +add_subdirectory(market_data_advanced_request) +add_subdirectory(market_data_advanced_subscription) +add_subdirectory(generic_public_request) +add_subdirectory(generic_private_request) +add_subdirectory(execution_management_simple_request) +add_subdirectory(execution_management_simple_subscription) +add_subdirectory(execution_management_advanced_request) +add_subdirectory(execution_management_advanced_subscription) +add_subdirectory(fix_simple) +add_subdirectory(fix_advanced) +add_subdirectory(enable_library_logging) +add_subdirectory(set_timer) +add_subdirectory(heartbeat) +add_subdirectory(override_exchange_url_at_runtime) +add_subdirectory(test_order_latency) +add_subdirectory(test_cpu_usage) +add_subdirectory(use_multiple_sessions) +add_subdirectory(reduce_build_time) diff --git a/example/src/enable_library_logging/CMakeLists.txt b/example/enable_library_logging/CMakeLists.txt similarity index 81% rename from example/src/enable_library_logging/CMakeLists.txt rename to example/enable_library_logging/CMakeLists.txt index 6129de925..d0696545f 100644 --- a/example/src/enable_library_logging/CMakeLists.txt +++ b/example/enable_library_logging/CMakeLists.txt @@ -2,6 +2,6 @@ set(NAME enable_library_logging) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_LOG_TRACE) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/enable_library_logging/main.cpp b/example/enable_library_logging/main.cpp similarity index 93% rename from example/src/enable_library_logging/main.cpp rename to example/enable_library_logging/main.cpp index 123520aa9..d69936424 100644 --- a/example/src/enable_library_logging/main.cpp +++ b/example/enable_library_logging/main.cpp @@ -24,7 +24,7 @@ using ::ccapi::Subscription; int main(int argc, char** argv) { Session session; - Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH"); + Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH"); session.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); session.stop(); diff --git a/example/src/execution_management_advanced_request/CMakeLists.txt b/example/execution_management_advanced_request/CMakeLists.txt similarity index 79% rename from example/src/execution_management_advanced_request/CMakeLists.txt rename to example/execution_management_advanced_request/CMakeLists.txt index f9025f8dc..acca9d96e 100644 --- a/example/src/execution_management_advanced_request/CMakeLists.txt +++ b/example/execution_management_advanced_request/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME execution_management_advanced_request) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/execution_management_advanced_request/main.cpp b/example/execution_management_advanced_request/main.cpp similarity index 65% rename from example/src/execution_management_advanced_request/main.cpp rename to example/execution_management_advanced_request/main.cpp index f189f0092..106ec99ac 100644 --- a/example/src/execution_management_advanced_request/main.cpp +++ b/example/execution_management_advanced_request/main.cpp @@ -19,23 +19,20 @@ using ::ccapi::SessionOptions; using ::ccapi::UtilSystem; int main(int argc, char** argv) { - if (UtilSystem::getEnvAsString("OKX_API_KEY").empty()) { - std::cerr << "Please set environment variable OKX_API_KEY" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_KEY").empty()) { + std::cerr << "Please set environment variable BYBIT_API_KEY" << std::endl; return EXIT_FAILURE; } - if (UtilSystem::getEnvAsString("OKX_API_SECRET").empty()) { - std::cerr << "Please set environment variable OKX_API_SECRET" << std::endl; - return EXIT_FAILURE; - } - if (UtilSystem::getEnvAsString("OKX_API_PASSPHRASE").empty()) { - std::cerr << "Please set environment variable OKX_API_PASSPHRASE" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_SECRET").empty()) { + std::cerr << "Please set environment variable BYBIT_API_SECRET" << std::endl; return EXIT_FAILURE; } + SessionOptions sessionOptions; SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Request request(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT"); + Request request(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT"); request.appendParam({ {"tdMode", "cross"}, {"ccy", "USDT"}, diff --git a/example/src/execution_management_advanced_subscription/CMakeLists.txt b/example/execution_management_advanced_subscription/CMakeLists.txt similarity index 80% rename from example/src/execution_management_advanced_subscription/CMakeLists.txt rename to example/execution_management_advanced_subscription/CMakeLists.txt index 8dde0f470..ce5c1051e 100644 --- a/example/src/execution_management_advanced_subscription/CMakeLists.txt +++ b/example/execution_management_advanced_subscription/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME execution_management_advanced_subscription) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/execution_management_advanced_subscription/main.cpp b/example/execution_management_advanced_subscription/main.cpp similarity index 73% rename from example/src/execution_management_advanced_subscription/main.cpp rename to example/execution_management_advanced_subscription/main.cpp index d51f2cacc..456ac7aa4 100644 --- a/example/src/execution_management_advanced_subscription/main.cpp +++ b/example/execution_management_advanced_subscription/main.cpp @@ -13,7 +13,7 @@ class MyEventHandler : public EventHandler { std::cout << "Received an event:\n" + event.toPrettyString(2, 2) << std::endl; if (!willSendRequest) { sessionPtr->setTimer("id", 1000, nullptr, [this, sessionPtr]() { - Request request(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT"); + Request request(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT"); request.appendParam({ {"SIDE", "BUY"}, {"LIMIT_PRICE", "20000"}, @@ -43,25 +43,24 @@ using ::ccapi::Subscription; using ::ccapi::UtilSystem; int main(int argc, char** argv) { - if (UtilSystem::getEnvAsString("OKX_API_KEY").empty()) { - std::cerr << "Please set environment variable OKX_API_KEY" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_KEY").empty()) { + std::cerr << "Please set environment variable BYBIT_API_KEY" << std::endl; return EXIT_FAILURE; } - if (UtilSystem::getEnvAsString("OKX_API_SECRET").empty()) { - std::cerr << "Please set environment variable OKX_API_SECRET" << std::endl; - return EXIT_FAILURE; - } - if (UtilSystem::getEnvAsString("OKX_API_PASSPHRASE").empty()) { - std::cerr << "Please set environment variable OKX_API_PASSPHRASE" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_SECRET").empty()) { + std::cerr << "Please set environment variable BYBIT_API_SECRET" << std::endl; return EXIT_FAILURE; } + SessionOptions sessionOptions; SessionConfigs sessionConfigs; std::string websocketOrderEntrySubscriptionCorrelationId("any"); MyEventHandler eventHandler(websocketOrderEntrySubscriptionCorrelationId); Session session(sessionOptions, sessionConfigs, &eventHandler); - Subscription subscription("okx", "", "ORDER_UPDATE", "", websocketOrderEntrySubscriptionCorrelationId); - session.subscribe(subscription); + Subscription subscription_1("bybit", "", "ORDER_UPDATE"); + Subscription subscription_2("bybit", "", "WEBSOCKET_ORDER_ENTRY", "", websocketOrderEntrySubscriptionCorrelationId); + std::vector subscriptions = {subscription_1, subscription_2}; + session.subscribe(subscriptions); std::this_thread::sleep_for(std::chrono::seconds(10)); session.stop(); std::cout << "Bye" << std::endl; diff --git a/example/src/execution_management_simple_request/CMakeLists.txt b/example/execution_management_simple_request/CMakeLists.txt similarity index 79% rename from example/src/execution_management_simple_request/CMakeLists.txt rename to example/execution_management_simple_request/CMakeLists.txt index 256156105..3771a3609 100644 --- a/example/src/execution_management_simple_request/CMakeLists.txt +++ b/example/execution_management_simple_request/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME execution_management_simple_request) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/execution_management_simple_request/main.cpp b/example/execution_management_simple_request/main.cpp similarity index 79% rename from example/src/execution_management_simple_request/main.cpp rename to example/execution_management_simple_request/main.cpp index a28516944..0bc0dc385 100644 --- a/example/src/execution_management_simple_request/main.cpp +++ b/example/execution_management_simple_request/main.cpp @@ -20,18 +20,15 @@ using ::ccapi::toString; using ::ccapi::UtilSystem; int main(int argc, char** argv) { - if (UtilSystem::getEnvAsString("OKX_API_KEY").empty()) { - std::cerr << "Please set environment variable OKX_API_KEY" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_KEY").empty()) { + std::cerr << "Please set environment variable BYBIT_API_KEY" << std::endl; return EXIT_FAILURE; } - if (UtilSystem::getEnvAsString("OKX_API_SECRET").empty()) { - std::cerr << "Please set environment variable OKX_API_SECRET" << std::endl; - return EXIT_FAILURE; - } - if (UtilSystem::getEnvAsString("OKX_API_PASSPHRASE").empty()) { - std::cerr << "Please set environment variable OKX_API_PASSPHRASE" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_SECRET").empty()) { + std::cerr << "Please set environment variable BYBIT_API_SECRET" << std::endl; return EXIT_FAILURE; } + std::vector modeList = { "create_order", "cancel_order", "get_order", "get_open_orders", "cancel_open_orders", "get_account_balances", }; @@ -52,7 +49,7 @@ int main(int argc, char** argv) { session.stop(); return EXIT_FAILURE; } - Request request(Request::Operation::CREATE_ORDER, "okx", argv[2]); + Request request(Request::Operation::CREATE_ORDER, "bybit", argv[2]); request.appendParam({ {"SIDE", strcmp(argv[3], "buy") == 0 ? "BUY" : "SELL"}, {"QUANTITY", argv[4]}, @@ -67,7 +64,7 @@ int main(int argc, char** argv) { session.stop(); return EXIT_FAILURE; } - Request request(Request::Operation::CANCEL_ORDER, "okx", argv[2]); + Request request(Request::Operation::CANCEL_ORDER, "bybit", argv[2]); request.appendParam({ {"ORDER_ID", argv[3]}, }); @@ -80,7 +77,7 @@ int main(int argc, char** argv) { session.stop(); return EXIT_FAILURE; } - Request request(Request::Operation::GET_ORDER, "okx", argv[2]); + Request request(Request::Operation::GET_ORDER, "bybit", argv[2]); request.appendParam({ {"ORDER_ID", argv[3]}, }); @@ -93,7 +90,7 @@ int main(int argc, char** argv) { session.stop(); return EXIT_FAILURE; } - Request request(Request::Operation::GET_OPEN_ORDERS, "okx", argv[2]); + Request request(Request::Operation::GET_OPEN_ORDERS, "bybit", argv[2]); session.sendRequest(request); } else if (mode == "cancel_open_orders") { if (argc != 3) { @@ -103,10 +100,10 @@ int main(int argc, char** argv) { session.stop(); return EXIT_FAILURE; } - Request request(Request::Operation::CANCEL_OPEN_ORDERS, "okx", argv[2]); + Request request(Request::Operation::CANCEL_OPEN_ORDERS, "bybit", argv[2]); session.sendRequest(request); } else if (mode == "get_account_balances") { - Request request(Request::Operation::GET_ACCOUNT_BALANCES, "okx"); + Request request(Request::Operation::GET_ACCOUNT_BALANCES, "bybit"); session.sendRequest(request); } std::this_thread::sleep_for(std::chrono::seconds(10)); diff --git a/example/src/execution_management_simple_subscription/CMakeLists.txt b/example/execution_management_simple_subscription/CMakeLists.txt similarity index 79% rename from example/src/execution_management_simple_subscription/CMakeLists.txt rename to example/execution_management_simple_subscription/CMakeLists.txt index 598c08836..c7b271339 100644 --- a/example/src/execution_management_simple_subscription/CMakeLists.txt +++ b/example/execution_management_simple_subscription/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME execution_management_simple_subscription) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/execution_management_simple_subscription/main.cpp b/example/execution_management_simple_subscription/main.cpp similarity index 71% rename from example/src/execution_management_simple_subscription/main.cpp rename to example/execution_management_simple_subscription/main.cpp index e6b285d53..52a4878d4 100644 --- a/example/src/execution_management_simple_subscription/main.cpp +++ b/example/execution_management_simple_subscription/main.cpp @@ -10,7 +10,7 @@ class MyEventHandler : public EventHandler { std::cout << "Received an event:\n" + event.toPrettyString(2, 2) << std::endl; if (!willSendRequest) { sessionPtr->setTimer("id", 1000, nullptr, [this, sessionPtr]() { - Request request(Request::Operation::CREATE_ORDER, "okx", "BTC-USDT"); + Request request(Request::Operation::CREATE_ORDER, "bybit", "BTCUSDT"); request.appendParam({ {"SIDE", "BUY"}, {"LIMIT_PRICE", "20000"}, @@ -39,23 +39,20 @@ using ::ccapi::Subscription; using ::ccapi::UtilSystem; int main(int argc, char** argv) { - if (UtilSystem::getEnvAsString("OKX_API_KEY").empty()) { - std::cerr << "Please set environment variable OKX_API_KEY" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_KEY").empty()) { + std::cerr << "Please set environment variable BYBIT_API_KEY" << std::endl; return EXIT_FAILURE; } - if (UtilSystem::getEnvAsString("OKX_API_SECRET").empty()) { - std::cerr << "Please set environment variable OKX_API_SECRET" << std::endl; - return EXIT_FAILURE; - } - if (UtilSystem::getEnvAsString("OKX_API_PASSPHRASE").empty()) { - std::cerr << "Please set environment variable OKX_API_PASSPHRASE" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_SECRET").empty()) { + std::cerr << "Please set environment variable BYBIT_API_SECRET" << std::endl; return EXIT_FAILURE; } + SessionOptions sessionOptions; SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Subscription subscription("okx", "BTC-USDT", "ORDER_UPDATE"); + Subscription subscription("bybit", "BTCUSDT", "ORDER_UPDATE"); session.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); session.stop(); diff --git a/example/src/fix_advanced/CMakeLists.txt b/example/fix_advanced/CMakeLists.txt similarity index 100% rename from example/src/fix_advanced/CMakeLists.txt rename to example/fix_advanced/CMakeLists.txt diff --git a/example/src/fix_advanced/main.cpp b/example/fix_advanced/main.cpp similarity index 100% rename from example/src/fix_advanced/main.cpp rename to example/fix_advanced/main.cpp diff --git a/example/src/fix_simple/CMakeLists.txt b/example/fix_simple/CMakeLists.txt similarity index 100% rename from example/src/fix_simple/CMakeLists.txt rename to example/fix_simple/CMakeLists.txt diff --git a/example/src/fix_simple/main.cpp b/example/fix_simple/main.cpp similarity index 100% rename from example/src/fix_simple/main.cpp rename to example/fix_simple/main.cpp diff --git a/example/src/generic_private_request/CMakeLists.txt b/example/generic_private_request/CMakeLists.txt similarity index 78% rename from example/src/generic_private_request/CMakeLists.txt rename to example/generic_private_request/CMakeLists.txt index 01e075ee6..a49554fe4 100644 --- a/example/src/generic_private_request/CMakeLists.txt +++ b/example/generic_private_request/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME generic_private_request) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/generic_private_request/main.cpp b/example/generic_private_request/main.cpp similarity index 72% rename from example/src/generic_private_request/main.cpp rename to example/generic_private_request/main.cpp index 87e600faf..45705e4db 100644 --- a/example/src/generic_private_request/main.cpp +++ b/example/generic_private_request/main.cpp @@ -21,23 +21,20 @@ using ::ccapi::UtilSystem; using ::ccapi::UtilTime; int main(int argc, char** argv) { - if (UtilSystem::getEnvAsString("OKX_API_KEY").empty()) { - std::cerr << "Please set environment variable OKX_API_KEY" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_KEY").empty()) { + std::cerr << "Please set environment variable BYBIT_API_KEY" << std::endl; return EXIT_FAILURE; } - if (UtilSystem::getEnvAsString("OKX_API_SECRET").empty()) { - std::cerr << "Please set environment variable OKX_API_SECRET" << std::endl; - return EXIT_FAILURE; - } - if (UtilSystem::getEnvAsString("OKX_API_PASSPHRASE").empty()) { - std::cerr << "Please set environment variable OKX_API_PASSPHRASE" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_SECRET").empty()) { + std::cerr << "Please set environment variable BYBIT_API_SECRET" << std::endl; return EXIT_FAILURE; } + SessionOptions sessionOptions; SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Request request(Request::Operation::GENERIC_PRIVATE_REQUEST, "okx", "", "close all positions"); + Request request(Request::Operation::GENERIC_PRIVATE_REQUEST, "bybit", "", "close all positions"); request.appendParam({ {"HTTP_METHOD", "POST"}, {"HTTP_PATH", "/api/v5/trade/close-position"}, diff --git a/example/src/generic_public_request/CMakeLists.txt b/example/generic_public_request/CMakeLists.txt similarity index 77% rename from example/src/generic_public_request/CMakeLists.txt rename to example/generic_public_request/CMakeLists.txt index 8e8183d13..494cbe517 100644 --- a/example/src/generic_public_request/CMakeLists.txt +++ b/example/generic_public_request/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME generic_public_request) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/generic_public_request/main.cpp b/example/generic_public_request/main.cpp similarity index 91% rename from example/src/generic_public_request/main.cpp rename to example/generic_public_request/main.cpp index 73403c90c..77abe303e 100644 --- a/example/src/generic_public_request/main.cpp +++ b/example/generic_public_request/main.cpp @@ -23,7 +23,7 @@ int main(int argc, char** argv) { SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Request request(Request::Operation::GENERIC_PUBLIC_REQUEST, "okx", "", "Check Server Time"); + Request request(Request::Operation::GENERIC_PUBLIC_REQUEST, "bybit", "", "Check Server Time"); request.appendParam({ {"HTTP_METHOD", "GET"}, {"HTTP_PATH", "/api/v5/public/time"}, diff --git a/example/src/heartbeat/CMakeLists.txt b/example/heartbeat/CMakeLists.txt similarity index 76% rename from example/src/heartbeat/CMakeLists.txt rename to example/heartbeat/CMakeLists.txt index 6ec5784be..90959da56 100644 --- a/example/src/heartbeat/CMakeLists.txt +++ b/example/heartbeat/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME heartbeat) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/heartbeat/main.cpp b/example/heartbeat/main.cpp similarity index 100% rename from example/src/heartbeat/main.cpp rename to example/heartbeat/main.cpp diff --git a/example/src/market_data_advanced_request/CMakeLists.txt b/example/market_data_advanced_request/CMakeLists.txt similarity index 78% rename from example/src/market_data_advanced_request/CMakeLists.txt rename to example/market_data_advanced_request/CMakeLists.txt index 3636c49bc..5b16003b6 100644 --- a/example/src/market_data_advanced_request/CMakeLists.txt +++ b/example/market_data_advanced_request/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME market_data_advanced_request) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/market_data_advanced_request/main.cpp b/example/market_data_advanced_request/main.cpp similarity index 92% rename from example/src/market_data_advanced_request/main.cpp rename to example/market_data_advanced_request/main.cpp index 77462ce43..39706a3bc 100644 --- a/example/src/market_data_advanced_request/main.cpp +++ b/example/market_data_advanced_request/main.cpp @@ -22,7 +22,7 @@ int main(int argc, char** argv) { SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Request request(Request::Operation::GET_HISTORICAL_TRADES, "okx", "BTC-USDT"); + Request request(Request::Operation::GET_HISTORICAL_TRADES, "bybit", "BTCUSDT"); request.appendParam({ {"before", "1"}, {"after", "3"}, diff --git a/example/src/market_data_advanced_subscription/CMakeLists.txt b/example/market_data_advanced_subscription/CMakeLists.txt similarity index 78% rename from example/src/market_data_advanced_subscription/CMakeLists.txt rename to example/market_data_advanced_subscription/CMakeLists.txt index 527e25c01..ef4f47b67 100644 --- a/example/src/market_data_advanced_subscription/CMakeLists.txt +++ b/example/market_data_advanced_subscription/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME market_data_advanced_subscription) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/market_data_advanced_subscription/main.cpp b/example/market_data_advanced_subscription/main.cpp similarity index 93% rename from example/src/market_data_advanced_subscription/main.cpp rename to example/market_data_advanced_subscription/main.cpp index f86ecc92b..981c4e291 100644 --- a/example/src/market_data_advanced_subscription/main.cpp +++ b/example/market_data_advanced_subscription/main.cpp @@ -36,7 +36,7 @@ int main(int argc, char** argv) { MyEventHandler eventHandler; EventDispatcher eventDispatcher(2); Session session(sessionOptions, sessionConfigs, &eventHandler, &eventDispatcher); - Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH"); + Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH"); session.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); session.stop(); @@ -45,7 +45,7 @@ int main(int argc, char** argv) { SessionOptions sessionOptions; SessionConfigs sessionConfigs; Session session(sessionOptions, sessionConfigs); - Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH"); + Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH"); session.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); std::vector eventList = session.getEventQueue().purge(); diff --git a/example/src/market_data_simple_request/CMakeLists.txt b/example/market_data_simple_request/CMakeLists.txt similarity index 77% rename from example/src/market_data_simple_request/CMakeLists.txt rename to example/market_data_simple_request/CMakeLists.txt index c8e400594..2143c2dca 100644 --- a/example/src/market_data_simple_request/CMakeLists.txt +++ b/example/market_data_simple_request/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME market_data_simple_request) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/market_data_simple_request/main.cpp b/example/market_data_simple_request/main.cpp similarity index 92% rename from example/src/market_data_simple_request/main.cpp rename to example/market_data_simple_request/main.cpp index 564b34321..076e69b28 100644 --- a/example/src/market_data_simple_request/main.cpp +++ b/example/market_data_simple_request/main.cpp @@ -22,7 +22,7 @@ int main(int argc, char** argv) { SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Request request(Request::Operation::GET_RECENT_TRADES, "okx", "BTC-USDT"); + Request request(Request::Operation::GET_RECENT_TRADES, "bybit", "BTCUSDT"); request.appendParam({ {"LIMIT", "1"}, }); diff --git a/example/src/market_data_simple_subscription/CMakeLists.txt b/example/market_data_simple_subscription/CMakeLists.txt similarity index 78% rename from example/src/market_data_simple_subscription/CMakeLists.txt rename to example/market_data_simple_subscription/CMakeLists.txt index c72cc7503..e08ea973d 100644 --- a/example/src/market_data_simple_subscription/CMakeLists.txt +++ b/example/market_data_simple_subscription/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME market_data_simple_subscription) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/market_data_simple_subscription/main.cpp b/example/market_data_simple_subscription/main.cpp similarity index 96% rename from example/src/market_data_simple_subscription/main.cpp rename to example/market_data_simple_subscription/main.cpp index ca9eff167..2a2e1c7d2 100644 --- a/example/src/market_data_simple_subscription/main.cpp +++ b/example/market_data_simple_subscription/main.cpp @@ -37,7 +37,7 @@ int main(int argc, char** argv) { SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH"); + Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH"); session.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); session.stop(); diff --git a/example/src/override_exchange_url_at_runtime/CMakeLists.txt b/example/override_exchange_url_at_runtime/CMakeLists.txt similarity index 78% rename from example/src/override_exchange_url_at_runtime/CMakeLists.txt rename to example/override_exchange_url_at_runtime/CMakeLists.txt index 68cfc8d13..aef5f0d72 100644 --- a/example/src/override_exchange_url_at_runtime/CMakeLists.txt +++ b/example/override_exchange_url_at_runtime/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME override_exchange_url_at_runtime) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/override_exchange_url_at_runtime/main.cpp b/example/override_exchange_url_at_runtime/main.cpp similarity index 93% rename from example/src/override_exchange_url_at_runtime/main.cpp rename to example/override_exchange_url_at_runtime/main.cpp index 8a2f119c1..9942ed2ac 100644 --- a/example/src/override_exchange_url_at_runtime/main.cpp +++ b/example/override_exchange_url_at_runtime/main.cpp @@ -35,11 +35,11 @@ int main(int argc, char** argv) { SessionOptions sessionOptions; SessionConfigs sessionConfigs; std::map urlWebsocketBase = sessionConfigs.getUrlWebsocketBase(); - urlWebsocketBase["okx"] = "wss://wsaws.okx.com:8443"; + urlWebsocketBase["bybit"] = "wss://wsaws.bybit.com:8443"; sessionConfigs.setUrlWebsocketBase(urlWebsocketBase); MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH"); + Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH"); session.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); session.stop(); diff --git a/example/src/reduce_build_time/CMakeLists.txt b/example/reduce_build_time/CMakeLists.txt similarity index 78% rename from example/src/reduce_build_time/CMakeLists.txt rename to example/reduce_build_time/CMakeLists.txt index 0f6ad54bb..679aa2015 100644 --- a/example/src/reduce_build_time/CMakeLists.txt +++ b/example/reduce_build_time/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME reduce_build_time) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp my_session.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/reduce_build_time/main.cpp b/example/reduce_build_time/main.cpp similarity index 94% rename from example/src/reduce_build_time/main.cpp rename to example/reduce_build_time/main.cpp index 81a1537b6..f44cc5f21 100644 --- a/example/src/reduce_build_time/main.cpp +++ b/example/reduce_build_time/main.cpp @@ -29,7 +29,7 @@ int main(int argc, char** argv) { MyEventHandler eventHandler; MySession mySession(sessionOptions, sessionConfigs, &eventHandler); eventHandler.setMySessionPtr(&mySession); - Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH"); + Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH"); mySession.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); mySession.stop(); diff --git a/example/src/reduce_build_time/my_session.cpp b/example/reduce_build_time/my_session.cpp similarity index 100% rename from example/src/reduce_build_time/my_session.cpp rename to example/reduce_build_time/my_session.cpp diff --git a/example/src/reduce_build_time/my_session.h b/example/reduce_build_time/my_session.h similarity index 100% rename from example/src/reduce_build_time/my_session.h rename to example/reduce_build_time/my_session.h diff --git a/example/src/set_timer/CMakeLists.txt b/example/set_timer/CMakeLists.txt similarity index 76% rename from example/src/set_timer/CMakeLists.txt rename to example/set_timer/CMakeLists.txt index 1d6386739..757ac1835 100644 --- a/example/src/set_timer/CMakeLists.txt +++ b/example/set_timer/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME set_timer) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/set_timer/main.cpp b/example/set_timer/main.cpp similarity index 95% rename from example/src/set_timer/main.cpp rename to example/set_timer/main.cpp index 0d5fcb03b..17a9aacf1 100644 --- a/example/src/set_timer/main.cpp +++ b/example/set_timer/main.cpp @@ -33,7 +33,7 @@ int main(int argc, char** argv) { SessionConfigs sessionConfigs; MyEventHandler eventHandler; Session session(sessionOptions, sessionConfigs, &eventHandler); - Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH"); + Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH"); session.subscribe(subscription); std::this_thread::sleep_for(std::chrono::seconds(10)); session.stop(); diff --git a/example/src/test_cpu_usage/CMakeLists.txt b/example/test_cpu_usage/CMakeLists.txt similarity index 76% rename from example/src/test_cpu_usage/CMakeLists.txt rename to example/test_cpu_usage/CMakeLists.txt index 0453cd25b..4ab3a16da 100644 --- a/example/src/test_cpu_usage/CMakeLists.txt +++ b/example/test_cpu_usage/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME test_cpu_usage) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/test_cpu_usage/main.cpp b/example/test_cpu_usage/main.cpp similarity index 99% rename from example/src/test_cpu_usage/main.cpp rename to example/test_cpu_usage/main.cpp index 64bb1a8dc..07857d055 100644 --- a/example/src/test_cpu_usage/main.cpp +++ b/example/test_cpu_usage/main.cpp @@ -56,7 +56,7 @@ int main(int argc, char** argv) { SessionConfigs sessionConfigs; MyEventHandler eventHandler(subscriptionDataEventPrintCount); Session session(sessionOptions, sessionConfigs, &eventHandler); - std::string exchange = "okx"; + std::string exchange = "bybit"; if (instruments.empty()) { Request request(Request::Operation::GET_TICKERS, exchange); diff --git a/example/src/test_order_latency/CMakeLists.txt b/example/test_order_latency/CMakeLists.txt similarity index 78% rename from example/src/test_order_latency/CMakeLists.txt rename to example/test_order_latency/CMakeLists.txt index 6034f01ef..61cd16e36 100644 --- a/example/src/test_order_latency/CMakeLists.txt +++ b/example/test_order_latency/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME test_order_latency) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_EXECUTION_MANAGEMENT) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANGE_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/test_order_latency/main.cpp b/example/test_order_latency/main.cpp similarity index 86% rename from example/src/test_order_latency/main.cpp rename to example/test_order_latency/main.cpp index a8aae7a46..c5866c7cc 100644 --- a/example/src/test_order_latency/main.cpp +++ b/example/test_order_latency/main.cpp @@ -24,7 +24,7 @@ class MyEventHandler : public EventHandler { if (event.getType() == Event::Type::SUBSCRIPTION_STATUS) { const auto& message = event.getMessageList().at(0); if (message.getType() == Message::Type::SUBSCRIPTION_STARTED) { - Request request(Request::Operation::GET_OPEN_ORDERS, "okx", this->symbol); + Request request(Request::Operation::GET_OPEN_ORDERS, "bybit", this->symbol); sessionPtr->sendRequest(request); } } else if (event.getType() == Event::Type::RESPONSE) { @@ -37,7 +37,7 @@ class MyEventHandler : public EventHandler { std::cout << std::string("Timer error handler is triggered at ") + UtilTime::getISOTimestamp(UtilTime::now()) << std::endl; }, [this, sessionPtr]() { - Request request(Request::Operation::CREATE_ORDER, "okx", this->symbol); + Request request(Request::Operation::CREATE_ORDER, "bybit", this->symbol); const auto& clientOrderId = UtilString::generateRandomString(this->clientOrderIdLength); request.appendParam({ {"SIDE", UtilString::toUpper(this->side)}, @@ -65,7 +65,7 @@ class MyEventHandler : public EventHandler { if (status == "live") { this->orderCreateLatencies.push_back(now - this->orderCreateTimes.at(clientOrderId)); this->orderCreateTimes.erase(clientOrderId); - Request request(Request::Operation::CANCEL_ORDER, "okx", this->symbol); + Request request(Request::Operation::CANCEL_ORDER, "bybit", this->symbol); if (this->cancelByClientOrderId) { request.appendParam({ {"CLIENT_ORDER_ID", clientOrderId}, @@ -124,18 +124,15 @@ using ::ccapi::Subscription; using ::ccapi::UtilSystem; int main(int argc, char** argv) { - if (UtilSystem::getEnvAsString("OKX_API_KEY").empty()) { - std::cerr << "Please set environment variable OKX_API_KEY" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_KEY").empty()) { + std::cerr << "Please set environment variable BYBIT_API_KEY" << std::endl; return EXIT_FAILURE; } - if (UtilSystem::getEnvAsString("OKX_API_SECRET").empty()) { - std::cerr << "Please set environment variable OKX_API_SECRET" << std::endl; - return EXIT_FAILURE; - } - if (UtilSystem::getEnvAsString("OKX_API_PASSPHRASE").empty()) { - std::cerr << "Please set environment variable OKX_API_PASSPHRASE" << std::endl; + if (UtilSystem::getEnvAsString("BYBIT_API_SECRET").empty()) { + std::cerr << "Please set environment variable BYBIT_API_SECRET" << std::endl; return EXIT_FAILURE; } + const auto& symbol = UtilSystem::getEnvAsString("SYMBOL"); const auto& side = UtilSystem::getEnvAsString("SIDE"); const auto& quantity = UtilSystem::getEnvAsString("QUANTITY"); @@ -147,16 +144,16 @@ int main(int argc, char** argv) { SessionOptions sessionOptions; SessionConfigs sessionConfigs; - const auto& okx_rest_fast_url = ccapi::UtilSystem::getEnvAsString("OKX_REST_FAST_URL"); - const auto& okx_websocket_fast_url = ccapi::UtilSystem::getEnvAsString("OKX_WEBSOCKET_FAST_URL"); + const auto& bybit_rest_fast_url = ccapi::UtilSystem::getEnvAsString("BYBIT_REST_FAST_URL"); + const auto& bybit_websocket_fast_url = ccapi::UtilSystem::getEnvAsString("BYBIT_WEBSOCKET_FAST_URL"); auto url_rest_base = sessionConfigs.getUrlRestBase(); - if (!okx_rest_fast_url.empty()) { - url_rest_base.at("okx") = okx_rest_fast_url; + if (!bybit_rest_fast_url.empty()) { + url_rest_base.at("bybit") = bybit_rest_fast_url; } sessionConfigs.setUrlRestBase(url_rest_base); std::map url_websocket_base = sessionConfigs.getUrlWebsocketBase(); - if (!okx_websocket_fast_url.empty()) { - url_websocket_base.at("okx") = okx_websocket_fast_url; + if (!bybit_websocket_fast_url.empty()) { + url_websocket_base.at("bybit") = bybit_websocket_fast_url; } sessionConfigs.setUrlWebsocketBase(url_websocket_base); @@ -164,7 +161,7 @@ int main(int argc, char** argv) { MyEventHandler eventHandler(symbol, side, quantity, price, clientOrderIdLength, cancelByClientOrderId, numOrders, byWebsocket, websocketOrderEntrySubscriptionCorrelationId); Session session(sessionOptions, sessionConfigs, &eventHandler); - Subscription subscription("okx", symbol, "ORDER_UPDATE", "", websocketOrderEntrySubscriptionCorrelationId); + Subscription subscription("bybit", symbol, "ORDER_UPDATE", "", websocketOrderEntrySubscriptionCorrelationId); session.subscribe(subscription); while (!eventHandler.done) { std::this_thread::sleep_for(std::chrono::seconds(1)); diff --git a/example/src/use_multiple_sessions/CMakeLists.txt b/example/use_multiple_sessions/CMakeLists.txt similarity index 77% rename from example/src/use_multiple_sessions/CMakeLists.txt rename to example/use_multiple_sessions/CMakeLists.txt index 47ccce6fc..daaa90718 100644 --- a/example/src/use_multiple_sessions/CMakeLists.txt +++ b/example/use_multiple_sessions/CMakeLists.txt @@ -1,6 +1,6 @@ set(NAME use_multiple_sessions) project(${NAME}) add_compile_definitions(CCAPI_ENABLE_SERVICE_MARKET_DATA) -add_compile_definitions(CCAPI_ENABLE_EXCHANGE_OKX) +add_compile_definitions(CCAPI_ENABLE_EXCHANG_BYBIT) add_executable(${NAME} main.cpp) add_dependencies(${NAME} boost rapidjson) diff --git a/example/src/use_multiple_sessions/main.cpp b/example/use_multiple_sessions/main.cpp similarity index 96% rename from example/src/use_multiple_sessions/main.cpp rename to example/use_multiple_sessions/main.cpp index a63c6c542..c1f621742 100644 --- a/example/src/use_multiple_sessions/main.cpp +++ b/example/use_multiple_sessions/main.cpp @@ -41,7 +41,7 @@ int main(int argc, char** argv) { {&session_1, "1"}, {&session_2, "2"}, }); - Subscription subscription("okx", "BTC-USDT", "MARKET_DEPTH"); + Subscription subscription("bybit", "BTCUSDT", "MARKET_DEPTH"); session_1.subscribe(subscription); session_2.subscribe(subscription);