hikyuu2/hikyuu_pywrap/trade_manage/_OrderBroker.cpp

103 lines
3.5 KiB
C++
Raw Normal View History

/*
* _OrderBroker.cpp
*
* Created on: 2017628
* Author: fasiondog
*/
#include <boost/python.hpp>
#include <hikyuu/trade_manage/OrderBrokerBase.h>
#include "../_Parameter.h"
#include "../pickle_support.h"
using namespace boost::python;
using namespace hku;
class OrderBrokerWrap : public OrderBrokerBase, public wrapper<OrderBrokerBase> {
public:
OrderBrokerWrap() : OrderBrokerBase() {}
OrderBrokerWrap(const string& name) : OrderBrokerBase(name) {}
Datetime _buy(Datetime datetime, const string& market, const string& code, price_t price,
double num) {
return this->get_override("_buy")(datetime, market, code, price, num);
}
Datetime _sell(Datetime datetime, const string& market, const string& code, price_t price,
double num) {
return this->get_override("_sell")(datetime, market, code, price, num);
}
};
2017-10-03 00:02:38 +08:00
string (OrderBrokerBase::*ob_get_name)() const = &OrderBrokerBase::name;
void (OrderBrokerBase::*ob_set_name)(const string&) = &OrderBrokerBase::name;
void export_OrderBroker() {
2020-07-13 02:01:25 +08:00
class_<OrderBrokerWrap, boost::noncopyable>(
"OrderBrokerBase",
R"(订单代理包装基类,用户可以参考自定义自己的订单代理,加入额外的处理
:param bool real:
:param float slip: slip则下单; )")
.def(init<>())
.def(init<const string&>())
2020-07-13 02:01:25 +08:00
.def(self_ns::str(self))
2020-07-13 02:01:25 +08:00
.def(self_ns::repr(self))
.add_property("name", ob_get_name, ob_set_name, "代理名称")
.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)")
.def("_buy", pure_virtual(&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", pure_virtual(&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)");
register_ptr_to_python<OrderBrokerPtr>();
}