27 #pragma clang diagnostic ignored "-Wundefined-inline"
31 #include "../kite.hpp"
32 #include "../utils.hpp"
34 namespace kiteconnect {
37 utils::http::Params bodyParams = {
38 {
"exchange", params.exchange },
39 {
"tradingsymbol", params.symbol },
40 {
"transaction_type", params.transactionType },
41 {
"quantity", std::to_string(params.quantity) },
42 {
"product", params.product },
43 {
"order_type", params.orderType },
46 utils::addParam(bodyParams, params.price,
"price");
47 utils::addParam(bodyParams, params.validity,
"validity");
48 utils::addParam(bodyParams, params.disclosedQuantity,
"disclosed_quantity");
49 utils::addParam(bodyParams, params.triggerPrice,
"trigger_price");
50 utils::addParam(bodyParams, params.squareOff,
"squareoff");
51 utils::addParam(bodyParams, params.stopLoss,
"stoploss");
52 utils::addParam(bodyParams, params.trailingStopLoss,
"trailing_stoploss");
53 utils::addParam(bodyParams, params.icebergLegs,
"iceberg_legs");
54 utils::addParam(bodyParams, params.icebergQuantity,
"iceberg_quantity");
55 utils::addParam(bodyParams, params.validityTtl,
"validity_ttl");
56 utils::addParam(bodyParams, params.tag,
"tag");
58 return callApi<string, utils::json::JsonObject, true>(
"order.place",
59 bodyParams, { params.variety }, [](utils::json::JsonObject& data) {
60 return utils::json::get<string>(data,
"order_id");
65 utils::http::Params bodyParams = {};
67 utils::addParam(bodyParams, params.parentOrderId,
"parent_order_id");
68 utils::addParam(bodyParams, params.quantity,
"quantity");
69 utils::addParam(bodyParams, params.price,
"price");
70 utils::addParam(bodyParams, params.orderType,
"order_type");
71 utils::addParam(bodyParams, params.triggerPrice,
"trigger_price");
72 utils::addParam(bodyParams, params.validity,
"validity");
73 utils::addParam(bodyParams, params.disclosedQuantity,
"disclosed_quantity");
75 return callApi<string, utils::json::JsonObject, true>(
"order.modify",
76 bodyParams, { params.variety, params.orderId },
77 [](utils::json::JsonObject& data) {
78 return utils::json::get<string>(data,
"order_id");
83 const string& variety,
const string& orderId,
const string& parentOrderID) {
85 utils::FmtArgs fmtArgs;
86 if (variety ==
"bo") {
87 endpoint =
"order.cancel.bo";
88 fmtArgs = { variety, orderId, parentOrderID };
90 endpoint =
"order.cancel";
91 fmtArgs = { variety, orderId };
93 return callApi<string, utils::json::JsonObject, true>(
94 endpoint, {}, fmtArgs, [](utils::json::JsonObject& data) {
95 return utils::json::get<string>(data,
"order_id");
100 return callApi<std::vector<order>, utils::json::JsonArray,
true>(
101 "orders", {}, {}, [](utils::json::JsonArray& data) {
102 std::vector<order> Orders;
103 for (
auto& i : data) { Orders.emplace_back(i.GetObject()); }
109 return callApi<std::vector<order>, utils::json::JsonArray,
true>(
110 "order.info", {}, { orderId }, [](utils::json::JsonArray& data) {
111 std::vector<order> history;
112 for (
auto& i : data) { history.emplace_back(i.GetObject()); }
118 return callApi<std::vector<trade>, utils::json::JsonArray,
true>(
119 "trades", {}, {}, [](utils::json::JsonArray& data) {
120 std::vector<trade>
trades;
121 for (
auto& i : data) {
trades.emplace_back(i.GetObject()); }
127 return callApi<std::vector<trade>, utils::json::JsonArray,
true>(
128 "order.trades", {}, { orderId }, [](utils::json::JsonArray& data) {
129 std::vector<trade>
trades;
130 for (
auto& i : data) {
trades.emplace_back(i.GetObject()); }