hikyuu2/hikyuu_pywrap/trade_manage/_OrderBroker.cpp

99 lines
3.5 KiB
C++
Raw Normal View History

/*
* _OrderBroker.cpp
*
* Created on: 2017628
* Author: fasiondog
*/
#include <hikyuu/trade_manage/OrderBrokerBase.h>
2023-12-27 02:51:33 +08:00
#include "../pybind_utils.h"
2023-12-27 02:51:33 +08:00
namespace py = pybind11;
using namespace hku;
2023-12-27 02:51:33 +08:00
class PyOrderBrokerBase : public OrderBrokerBase {
public:
2023-12-27 02:51:33 +08:00
using OrderBrokerBase::OrderBrokerBase;
Datetime _buy(Datetime datetime, const string& market, const string& code, price_t price,
2023-12-27 02:51:33 +08:00
double num) override {
PYBIND11_OVERLOAD_PURE(Datetime, OrderBrokerBase, _buy, datetime, market, code, price, num);
}
Datetime _sell(Datetime datetime, const string& market, const string& code, price_t price,
2023-12-27 02:51:33 +08:00
double num) override {
2024-04-06 01:24:22 +08:00
PYBIND11_OVERLOAD_PURE(Datetime, OrderBrokerBase, _sell, datetime, market, code, price,
num);
}
};
2023-12-27 02:51:33 +08:00
void export_OrderBroker(py::module& m) {
py::class_<OrderBrokerBase, OrderBrokerPtr, PyOrderBrokerBase>(
m, "OrderBrokerBase",
2020-07-13 02:01:25 +08:00
R"(订单代理包装基类,用户可以参考自定义自己的订单代理,加入额外的处理
:param bool real:
:param float slip: slip则下单; )")
2023-12-27 02:51:33 +08:00
.def(py::init<>())
.def(py::init<const string&>(), R"(
:param str name: )")
2020-07-13 02:01:25 +08:00
2023-12-27 02:51:33 +08:00
.def("__str__", to_py_str<OrderBrokerBase>)
.def("__repr__", to_py_str<OrderBrokerBase>)
2020-07-13 02:01:25 +08:00
.def_property("name", py::overload_cast<>(&OrderBrokerBase::name, py::const_),
2023-12-27 18:13:05 +08:00
py::overload_cast<const string&>(&OrderBrokerBase::name),
py::return_value_policy::copy, "名称(可读写)")
2020-07-13 02:01:25 +08:00
.def("buy", &OrderBrokerBase::buy, R"(buy(self, datetime, market, code, price, num)
:param Datetime datetime:
:param str market:
:param str code:
:param float price:
:param float num:
:return:
:rtype: Datetime)")
.def("sell", &OrderBrokerBase::sell, R"(sell(self, datetime, market, code, price, num)
:param Datetime datetime:
:param str market:
:param str code:
:param float price:
:param float num:
:return:
"rtype: Datetime)")
2023-12-27 02:51:33 +08:00
.def("_buy", &OrderBrokerBase::_buy,
2020-07-13 02:01:25 +08:00
R"(_buy(self, datetime, market, code, price, num)
:param Datetime datetime:
:param str market:
:param str code:
:param float price:
:param float num:
:return:
:rtype: Datetime)")
2023-12-27 02:51:33 +08:00
.def("_sell", &OrderBrokerBase::_sell,
2020-07-13 02:01:25 +08:00
R"(_sell(self, datetime, market, code, price, num)
:param Datetime datetime:
:param str market:
:param str code:
:param float price:
:param float num:
:return:
"rtype: Datetime)");
}