Skip to content

Commit

Permalink
june's update
Browse files Browse the repository at this point in the history
  • Loading branch information
yuanxueqi committed Oct 10, 2020
1 parent dfeb907 commit 5c1965a
Show file tree
Hide file tree
Showing 128 changed files with 1,435 additions and 281 deletions.
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ project(huobi LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)

set(huobi_VERSION_MAJOR 2)
set(huobi_VERSION_MINOR 1)
set(huobi_VERSION_MINOR 2)

configure_file(
"${PROJECT_SOURCE_DIR}/huobiConfig.h.in"
Expand All @@ -15,6 +15,7 @@ configure_file(
include_directories("${PROJECT_SOURCE_DIR}/include")

include_directories(/usr/local/include)
include_directories(/usr/local/opt/[email protected]/include)
include_directories(/opt/cpprest-2.10.16/include)


Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ If you already use SDK v1, it is strongly suggested migrate to v2 as we refactor
- [Installation](#Installation)
- [Run examples](#Run-examples)
- [Client](#client)
- [Migrate from v1](#Migrate-from-v1)
- [Migrate from v1](#Migrate-from-v1)
- [Request example](#Request-example)
- [Reference data](#Reference-data)
- [Market data](#Market-data)
Expand Down
22 changes: 22 additions & 0 deletions demo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
cmake_minimum_required(VERSION 3.10...3.17)
project(demo LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)

include_directories(/usr/local/huobi)

add_subdirectory(account)
add_subdirectory(crossmargin)
add_subdirectory(isolatedmargin)
add_subdirectory(market)
add_subdirectory(reference)
add_subdirectory(trade)
add_subdirectory(wallet)
add_subdirectory(websocketAsset)
add_subdirectory(websocketMarket)
add_subdirectory(websocketOrders)

find_package(cpprestsdk REQUIRED)

link_directories(/usr/local/lib/)
link_directories(/usr/local/huobi/)
7 changes: 0 additions & 7 deletions demo/account/accountdemo.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

#include <client/accountClient.h>

using namespace std;
Expand All @@ -23,15 +22,9 @@ int main() {
FuturesTransferRequest futuresTransferRequest{"usdt", "0.2", "futures-to-pro"};
cout << accountClient.futuresTransfer(futuresTransferRequest) << endl;

vector<Balance> subbalanceVec = accountClient.getSubuserAggregateBalance();
cout << subbalanceVec[0].currency << endl;

vector<AccountAndBalance> accountAndBalanceVec= accountClient.getSubuidAccount(12345);
cout << accountAndBalanceVec[0].symbol << endl;

ManageSubUserRequest manageSubUserRequest{12345, "lock"};
accountClient.manageSubUser(manageSubUserRequest);

return 0;
}

15 changes: 15 additions & 0 deletions demo/algo/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 3.10...3.17)
project(account LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)

include_directories(/usr/local/huobi)

find_package(cpprestsdk REQUIRED)

link_directories(/usr/local/lib/)
link_directories(/usr/local/huobi/)

ADD_EXECUTABLE(algodemo ./algodemo.cpp)

target_link_libraries(algodemo huobi curl ssl crypto cpprestsdk::cpprest z)
24 changes: 24 additions & 0 deletions demo/algo/algodemo.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#include <client/algoClient.h>

using namespace std;

int main() {
AlgoClient algoClient{APIKEY, SECRETKEY};
CreateAlgoOrderRequest createAlgoOrderRequest;
createAlgoOrderRequest.orderType = "market";
createAlgoOrderRequest.symbol = "htusdt";
createAlgoOrderRequest.stopPrice = "4";
createAlgoOrderRequest.orderSide = "sell";
createAlgoOrderRequest.orderSize = "10";
createAlgoOrderRequest.clientOrderId = "clientOrderId";
cout << algoClient.createAlgoOrder(createAlgoOrderRequest) << endl;

AlgoOrder algoOrder = algoClient.specificAlgoOrder("clientOrderId");
cout << algoOrder.clientOrderId << endl;
vector<string> cancelOrders;
cancelOrders.push_back("aaa");
CancelAlgoOrderResult cancelAlgoOrderResult = algoClient.cancelAlgoOrder(cancelOrders);
cout << cancelAlgoOrderResult.rejected[0] << endl;
return 0;
}

2 changes: 0 additions & 2 deletions demo/crossmargin/crossmargindemo.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#include <client/crossMarginClient.h>

using namespace std;
Expand Down
2 changes: 0 additions & 2 deletions demo/isolatedmargin/isolatedmargindemo.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#include <client/isolatedMarginClient.h>

using namespace std;
Expand Down
2 changes: 0 additions & 2 deletions demo/reference/referencedemo.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#include <iostream>
#include <client/referenceClient.h>

Expand Down
15 changes: 15 additions & 0 deletions demo/subuser/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 3.10...3.17)
project(account LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)

include_directories(/usr/local/huobi)

find_package(cpprestsdk REQUIRED)

link_directories(/usr/local/lib/)
link_directories(/usr/local/huobi/)

ADD_EXECUTABLE(subuserdemo ./subuserdemo.cpp)

target_link_libraries(subuserdemo huobi curl ssl crypto cpprestsdk::cpprest z)
39 changes: 39 additions & 0 deletions demo/subuser/subuserdemo.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@

#include <client/subUserClient.h>

using namespace std;

int main() {
SubUserClient subUserClient{APIKEY, SECRETKEY};

vector<Balance> subbalanceVec = subUserClient.getSubuserAggregateBalance();
cout << subbalanceVec[0].currency << endl;

ManageSubUserRequest manageSubUserRequest{12345, "lock"};
subUserClient.manageSubUser(manageSubUserRequest);

QuerySubUserDepositRequest querySubUserDepositRequest{12345};
vector<SubUserDeposit> subUserDepositVec = subUserClient.querySubUserDeposit(querySubUserDepositRequest);
for (SubUserDeposit deposit:subUserDepositVec) {
cout << deposit.amount << endl;
}

SubUserCreationRequest subUserCreationRequest;
subUserCreationRequest.userName = "userName";
subUserCreationRequest.note = "note";
vector<SubUserCreationRequest> subUserCreationRequestVec{subUserCreationRequest};
vector<CreateSubUserResponse> createSubUserResponseVec = subUserClient.subUserCreation(subUserCreationRequestVec);
cout << createSubUserResponseVec[0].userName << endl;

SubUserTradableMarketRequest subUserTradableMarketRequest{"12345","spot","activated"};
vector<SubUserTradableMarketResponse> subUserTradableMarketResponseVec = subUserClient.subUserTradableMarket(subUserTradableMarketRequest);
cout << subUserTradableMarketResponseVec[0].activation << endl;

SubUserTransferabilityRequest subUserTransferabilityRequest{"12345", "spot",true};
vector<SubUserTransferabilityResponse> subUserTransferabilityResponseVec = subUserClient.subUserTransferability(subUserTransferabilityRequest);
cout << subUserTransferabilityResponseVec[0].transferrable << endl;

return 0;
}


2 changes: 0 additions & 2 deletions demo/trade/tradedemo.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#include <client/tradeClient.h>

using namespace std;
Expand Down
7 changes: 0 additions & 7 deletions demo/wallet/walletdemo.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#include <client/walletClient.h>

using namespace std;
Expand Down Expand Up @@ -41,10 +39,5 @@ int main() {
cout << withdraw.amount << endl;
}

QuerySubUserDepositRequest querySubUserDepositRequest{12345};
vector<SubUserDeposit> subUserDepositVec = walletClient.querySubUserDeposit(querySubUserDepositRequest);
for (SubUserDeposit deposit:subUserDepositVec) {
cout << deposit.amount << endl;
}
return 0;
}
4 changes: 1 addition & 3 deletions demo/websocketAsset/websocketAssetdemo.cpp
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@


#include <iostream>
#include <client/websocketAssetClient.h>

using namespace std;

int main() {
websocketAssetClient client{APIKEY, SECRETKEY};
WebsocketAssetClient client{APIKEY, SECRETKEY};

client.subAccounts(1, [](AccountsUpdate accountsUpdate) {
cout << accountsUpdate.changeType << endl;
Expand Down
3 changes: 1 addition & 2 deletions demo/websocketMarket/websocketMarketdemo.cpp
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@

#include <iostream>
#include <client/websocketMarketClient.h>

using namespace std;

int main() {
websocketMarketClient client;
WebsocketMarketClient client;
const char *symbol = "htusdt";
client.subKline(symbol, "1min", [](Candlestick candlestick) {
cout << candlestick.amount << endl;
Expand Down
4 changes: 1 addition & 3 deletions demo/websocketOrders/websocketOrdersdemo.cpp
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@


#include <iostream>
#include <client/websocketOrdersClient.h>

using namespace std;

int main() {
websocketOrdersClient client{APIKEY, SECRETKEY};
WebsocketOrdersClient client{APIKEY, SECRETKEY};

client.subOrders("htusdt", [](OrdersUpdate ordersUpdate) {
cout << ordersUpdate.symbol << endl;
Expand Down
45 changes: 45 additions & 0 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#
# Ubuntu Dockerfile
#
# https://github.com/dockerfile/ubuntu
#

# Pull base image.
FROM ubuntu:18.04

# Install.
RUN \
sed -i 's/# \(.*multiverse$\)/\1/g' /etc/apt/sources.list && \
apt-get update && \
apt-get -y upgrade && \
apt-get install -y build-essential && \
apt-get install -y curl git vim wget cmake && \
apt-get install -y libssl-dev libcurl4-openssl-dev zlib1g-dev libcpprest-dev && \
rm -rf /var/lib/apt/lists/*

# Set environment variables.
ENV HOME /root

# Define working directory.
WORKDIR /root

RUN \
git clone https://github.com/huobiapi/huobi_Cpp.git && \
cd huobi_Cpp && \
mkdir build && \
cd build && \
cmake .. -DCMAKE_PREFIX_PATH=/opt/cpprest-2.10.16/lib64/cmake/ && \
make && \
make install

WORKDIR /root

RUN \
cd huobi_Cpp/demo/reference && \
mkdir build && \
cd build && \
cmake .. -DCMAKE_PREFIX_PATH=/opt/cpprest-2.10.16/lib64/cmake/ -DCMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu/cmake && \
make

# Define default command.
CMD ["bash"]
8 changes: 1 addition & 7 deletions include/client/accountClient.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#ifndef HUOBI_ACCOUNTCLIENT_H
#define HUOBI_ACCOUNTCLIENT_H

Expand All @@ -22,13 +20,9 @@ struct AccountClient {

long futuresTransfer(FuturesTransferRequest &request);

long subuserTransfer(SubuserTransferRequest &request);

vector<Balance> getSubuserAggregateBalance();

vector<AccountAndBalance> getSubuidAccount(long subUid);

void manageSubUser(ManageSubUserRequest &request);
AccountTransferResponse accountTransfer(AccountTransferRequest &request);

private:
Signature signature;
Expand Down
29 changes: 29 additions & 0 deletions include/client/algoClient.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

#ifndef HUOBI_ALGOCLIENT_H
#define HUOBI_ALGOCLIENT_H

#include "include.h"
#include <vector>

using namespace rapidjson;
using namespace std;

struct AlgoClient {

AlgoClient(char *accessKey, char *secretKey) : signature{accessKey, secretKey} {
}

std::string createAlgoOrder(CreateAlgoOrderRequest &request);

std::vector<AlgoOrder> openingAlgoOrders(OpeningAlgoOrdersRequest &request);

std::vector<AlgoOrder> historyAlgoOrders(HistoryAlgoOrdersRequest &request);

AlgoOrder specificAlgoOrder(std::string clientOrderId);

CancelAlgoOrderResult cancelAlgoOrder(vector<std::string>clientOrderIds);
private:
Signature signature;
};

#endif //HUOBI_ALGOCLIENT_H
2 changes: 0 additions & 2 deletions include/client/crossMarginClient.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#ifndef HUOBI_CROSSMARGINCLIENT_H
#define HUOBI_CROSSMARGINCLIENT_H

Expand Down
2 changes: 0 additions & 2 deletions include/client/isolatedMarginClient.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#ifndef HUOBI_ISOLATEDMARGINCLIENT_H
#define HUOBI_ISOLATEDMARGINCLIENT_H

Expand Down
5 changes: 3 additions & 2 deletions include/client/marketClient.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#ifndef HUOBI_MARKETCLIENT_H
#define HUOBI_MARKETCLIENT_H

Expand All @@ -23,6 +21,9 @@ struct MarketClient {
std::vector<Trade> getHistoryTrade(HistoryTradeRequest &request);

Candlestick getDetail(const char *symbol);

MarketStatus getMarketStatus();

};

#endif //HUOBI_MARKETCLIENT_H
2 changes: 0 additions & 2 deletions include/client/referenceClient.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@


#ifndef HUOBI_REFERENCECLIENT_H
#define HUOBI_REFERENCECLIENT_H

Expand Down
Loading

0 comments on commit 5c1965a

Please sign in to comment.