Hikyuu
Public 成员函数 | 友元 | 所有成员列表

账户交易管理模块,管理帐户的交易记录及资金使用情况 更多...

#include <TradeManager.h>

Public 成员函数

 TradeManager (const Datetime &datetime=Datetime(199001010000LL), price_t initcash=100000.0, const TradeCostPtr &costfunc=TC_Zero(), const string &name="SYS")
 
virtual ~TradeManager ()
 
void reset ()
 复位,清空交易、持仓记录 更多...
 
void regBroker (const OrderBrokerPtr &broker)
 注册订单代理 更多...
 
void clearBroker ()
 清空已注册的订单代理 更多...
 
Datetime getBrokerLastDatetime () const
 从哪个时刻开始启动订单代理进行下单操作 更多...
 
void setBrokerLastDatetime (const Datetime &date)
 设置开始订单代理操作的时刻 更多...
 
shared_ptr< TradeManagerclone ()
 
double getMarginRate (const Datetime &datetime, const Stock &stock)
 获取指定对象的保证金比率 更多...
 
string name () const
 账户名称 更多...
 
void name (const string &name)
 设置账户名称 更多...
 
price_t initCash () const
 初始资金 更多...
 
Datetime initDatetime () const
 账户建立日期 更多...
 
Datetime firstDatetime () const
 第一笔买入交易发生日期,如未发生交易返回Null<Datetime>() 更多...
 
Datetime lastDatetime () const
 最后一笔交易日期,注意和交易类型无关,如未发生交易返回账户建立日期 更多...
 
bool reinvest () const
 红利/股息/送股再投资标志,即是否忽略权息信息 更多...
 
int precision () const
 交易精度 更多...
 
TradeCostPtr costFunc () const
 获取交易算法指针 更多...
 
void costFunc (const TradeCostPtr &func)
 设置交易算法指针 更多...
 
price_t currentCash () const
 返回当前现金 更多...
 
price_t cash (const Datetime &datetime, KQuery::KType ktype=KQuery::DAY)
 获取指定日期的现金 更多...
 
bool have (const Stock &stock) const
 当前是否持有指定的证券 更多...
 
bool haveShort (const Stock &stock) const
 当前空头仓位是否持有指定的证券 更多...
 
size_t getStockNumber () const
 当前持有的证券种类数量 更多...
 
size_t getShortStockNumber () const
 当前空头持有的证券种类数量 更多...
 
size_t getHoldNumber (const Datetime &datetime, const Stock &stock)
 获取指定时刻的某证券持有数量 更多...
 
size_t getShortHoldNumber (const Datetime &datetime, const Stock &stock)
 获取指定时刻的空头某证券持有数量 更多...
 
size_t getDebtNumber (const Datetime &datetime, const Stock &stock)
 获取指定时刻已借入的股票数量 更多...
 
price_t getDebtCash (const Datetime &datetime)
 获取指定时刻已借入的现金额 更多...
 
const TradeRecordListgetTradeList () const
 获取全部交易记录 更多...
 
TradeRecordList getTradeList (const Datetime &start, const Datetime &end) const
 获取指定日期范围内的交易记录[start, end) 更多...
 
PositionRecordList getPositionList () const
 获取当前全部持仓记录 更多...
 
const PositionRecordListgetHistoryPositionList () const
 获取全部历史持仓记录,即已平仓记录 更多...
 
PositionRecordList getShortPositionList () const
 获取当前全部空头仓位记录 更多...
 
const PositionRecordListgetShortHistoryPositionList () const
 获取全部空头历史仓位记录 更多...
 
PositionRecord getPosition (const Stock &) const
 获取指定证券的当前持仓记录,如当前未持有该票,返回Null<PositionRecord>() 更多...
 
PositionRecord getShortPosition (const Stock &) const
 获取指定证券的当前空头仓位持仓记录,如当前未持有该票,返回Null<PositionRecord>() 更多...
 
BorrowRecordList getBorrowStockList () const
 获取当前借入的股票列表 更多...
 
CostRecord getBuyCost (const Datetime &datetime, const Stock &stock, price_t price, size_t num) const
 计算买入成本 更多...
 
CostRecord getSellCost (const Datetime &datetime, const Stock &stock, price_t price, size_t num) const
 计算卖出成本 更多...
 
CostRecord getBorrowCashCost (const Datetime &datetime, price_t cash)
 计算计入现金时的费用成本 更多...
 
CostRecord getReturnCashCost (const Datetime &borrow_datetime, const Datetime &return_datetime, price_t cash)
 计算归还融资成本 更多...
 
CostRecord getBorrowStockCost (const Datetime &datetime, const Stock &stock, price_t price, size_t num)
 计算融劵借入成本 更多...
 
CostRecord getReturnStockCost (const Datetime &borrow_datetime, const Datetime &return_datetime, const Stock &stock, price_t price, size_t num)
 计算融劵归还成本 更多...
 
bool checkin (const Datetime &datetime, price_t cash)
 存入资金 更多...
 
bool checkout (const Datetime &datetime, price_t cash)
 取出资金 更多...
 
bool checkinStock (const Datetime &datetime, const Stock &stock, price_t price, size_t number)
 存入资产 更多...
 
bool checkoutStock (const Datetime &datetime, const Stock &stock, price_t price, size_t number)
 取出当前资产 更多...
 
TradeRecord buy (const Datetime &datetime, const Stock &stock, price_t realPrice, size_t number, price_t stoploss=0.0, price_t goalPrice=0.0, price_t planPrice=0.0, SystemPart from=PART_INVALID)
 买入操作 更多...
 
TradeRecord sell (const Datetime &datetime, const Stock &stock, price_t realPrice, size_t number=Null< size_t >(), price_t stoploss=0.0, price_t goalPrice=0.0, price_t planPrice=0.0, SystemPart from=PART_INVALID)
 卖出操作 更多...
 
TradeRecord sellShort (const Datetime &datetime, const Stock &stock, price_t realPrice, size_t number, price_t stoploss=0.0, price_t goalPrice=0.0, price_t planPrice=0.0, SystemPart from=PART_INVALID)
 卖空 更多...
 
TradeRecord buyShort (const Datetime &datetime, const Stock &stock, price_t realPrice, size_t number=Null< size_t >(), price_t stoploss=0.0, price_t goalPrice=0.0, price_t planPrice=0.0, SystemPart from=PART_INVALID)
 卖空后回补 更多...
 
bool borrowCash (const Datetime &datetime, price_t cash)
 借入资金,从其他来源借取的资金,如融资 更多...
 
bool returnCash (const Datetime &datetime, price_t cash)
 归还资金 更多...
 
bool borrowStock (const Datetime &datetime, const Stock &stock, price_t price, size_t number)
 借入证券 更多...
 
bool returnStock (const Datetime &datetime, const Stock &stock, price_t price, size_t number)
 归还证券 更多...
 
FundsRecord getFunds (KQuery::KType ktype=KQuery::DAY) const
 获取账户当前时刻的资产详情 更多...
 
FundsRecord getFunds (const Datetime &datetime, KQuery::KType ktype=KQuery::DAY)
 获取指定时刻的资产市值详情 更多...
 
PriceList getFundsCurve (const DatetimeList &dates, KQuery::KType ktype=KQuery::DAY)
 获取资产净值曲线,含借入的资产 更多...
 
PriceList getProfitCurve (const DatetimeList &dates, KQuery::KType ktype=KQuery::DAY)
 获取收益曲线,即扣除历次存入资金后的资产净值曲线 更多...
 
bool addTradeRecord (const TradeRecord &tr)
 直接加入交易记录 更多...
 
string toString () const
 字符串输出 更多...
 
void tocsv (const string &path)
 以csv格式输出交易记录、未平仓记录、已平仓记录、资产净值曲线 更多...
 

友元

class boost::serialization::access
 

详细描述

账户交易管理模块,管理帐户的交易记录及资金使用情况

默认参数:
reinvest(bool): false 红利/股息/送股再投资标志,即是否忽略权息信息
precision(int): 2 计算精度
support_borrow_cash(bool): false 买入操作时是否自动融资
support_borrow_stock(bool): false 卖空时是否自动融劵

构造及析构函数说明

hku::TradeManager::TradeManager ( const Datetime datetime = Datetime(199001010000LL),
price_t  initcash = 100000.0,
const TradeCostPtr costfunc = TC_Zero(),
const string name = "SYS" 
)
hku::TradeManager::~TradeManager ( )
virtual

成员函数说明

bool hku::TradeManager::addTradeRecord ( const TradeRecord tr)

直接加入交易记录

注解
如果加入初始化账户记录,将清除全部已有交易及持仓记录
参数
tr待加入的交易记录
返回
bool true 成功 | false 失败
bool hku::TradeManager::borrowCash ( const Datetime datetime,
price_t  cash 
)

借入资金,从其他来源借取的资金,如融资

参数
datetime借入时间
cash借入的现金
返回
true | false
bool hku::TradeManager::borrowStock ( const Datetime datetime,
const Stock stock,
price_t  price,
size_t  number 
)

借入证券

参数
datetime借入时间
stock借入的stock
price借入时单股价格
number借入时数量
返回
true | false
TradeRecord hku::TradeManager::buy ( const Datetime datetime,
const Stock stock,
price_t  realPrice,
size_t  number,
price_t  stoploss = 0.0,
price_t  goalPrice = 0.0,
price_t  planPrice = 0.0,
SystemPart  from = PART_INVALID 
)

买入操作

参数
datetime买入时间
stock买入的证券
realPrice实际买入价格
number买入数量
stoploss止损价
goalPrice目标价格
planPrice计划买入价格
from记录是哪个系统部件发出的买入指示
返回
返回对应的交易记录,如果操作失败,business等于INVALID_BUSINESS
TradeRecord hku::TradeManager::buyShort ( const Datetime datetime,
const Stock stock,
price_t  realPrice,
size_t  number = Null<size_t>(),
price_t  stoploss = 0.0,
price_t  goalPrice = 0.0,
price_t  planPrice = 0.0,
SystemPart  from = PART_INVALID 
)

卖空后回补

参数
datetime买入时间
stock买入的证券
realPrice实际买入价格
number卖出数量,如果等于Null<size_t>(), 表示全部卖出
stoploss止损价
goalPrice目标价格
planPrice计划买入价格
from记录是哪个系统部件发出的卖出指示
返回
返回对应的交易记录,如果操作失败,business等于INVALID_BUSINESS
price_t hku::TradeManager::cash ( const Datetime datetime,
KQuery::KType  ktype = KQuery::DAY 
)

获取指定日期的现金

注解
如果不带日期参数,无法根据权息信息调整持仓
bool hku::TradeManager::checkin ( const Datetime datetime,
price_t  cash 
)

存入资金

参数
datetime存入时间
cash存入的资金量
返回
true | false
bool hku::TradeManager::checkinStock ( const Datetime datetime,
const Stock stock,
price_t  price,
size_t  number 
)

存入资产

参数
datetime存入日期
stock待存入的股票
price存入股票的每股价格
number存入股票的数量
返回
true | false
bool hku::TradeManager::checkout ( const Datetime datetime,
price_t  cash 
)

取出资金

参数
datetime取出时间
cash取出的资金量
返回
true | false
bool hku::TradeManager::checkoutStock ( const Datetime datetime,
const Stock stock,
price_t  price,
size_t  number 
)

取出当前资产

参数
datetime取出日期
stock待取出的股票
price取出的每股价格
number取出的数量
返回
true | false
注解
应该不会被用到
void hku::TradeManager::clearBroker ( )

清空已注册的订单代理

TradeManagerPtr hku::TradeManager::clone ( )
TradeCostPtr hku::TradeManager::costFunc ( ) const
inline

获取交易算法指针

void hku::TradeManager::costFunc ( const TradeCostPtr func)
inline

设置交易算法指针

price_t hku::TradeManager::currentCash ( ) const
inline

返回当前现金

注解
仅返回当前信息,不会根据权息进行调整
Datetime hku::TradeManager::firstDatetime ( ) const

第一笔买入交易发生日期,如未发生交易返回Null<Datetime>()

CostRecord hku::TradeManager::getBorrowCashCost ( const Datetime datetime,
price_t  cash 
)
inline

计算计入现金时的费用成本

参数
datetime借入日期
cash现金额
CostRecord hku::TradeManager::getBorrowStockCost ( const Datetime datetime,
const Stock stock,
price_t  price,
size_t  num 
)
inline

计算融劵借入成本

参数
datetime融劵日期
stock借入的对象
price每股价格
num借入的数量
BorrowRecordList hku::TradeManager::getBorrowStockList ( ) const

获取当前借入的股票列表

Datetime hku::TradeManager::getBrokerLastDatetime ( ) const
inline

从哪个时刻开始启动订单代理进行下单操作

CostRecord hku::TradeManager::getBuyCost ( const Datetime datetime,
const Stock stock,
price_t  price,
size_t  num 
) const
inline

计算买入成本

参数
datetime交易日期
stock交易的证券对象
price买入价格
num买入数量
返回
CostRecord 交易成本记录
price_t hku::TradeManager::getDebtCash ( const Datetime datetime)

获取指定时刻已借入的现金额

size_t hku::TradeManager::getDebtNumber ( const Datetime datetime,
const Stock stock 
)

获取指定时刻已借入的股票数量

FundsRecord hku::TradeManager::getFunds ( KQuery::KType  ktype = KQuery::DAY) const

获取账户当前时刻的资产详情

参数
ktype日期的类型
返回
资产详情
FundsRecord hku::TradeManager::getFunds ( const Datetime datetime,
KQuery::KType  ktype = KQuery::DAY 
)

获取指定时刻的资产市值详情

参数
datetime必须大于帐户建立的初始日期,或为Null<Datetime>()
ktype日期的类型
返回
资产详情
注解
当datetime等于Null<Datetime>()时,与getFunds(KType)同
PriceList hku::TradeManager::getFundsCurve ( const DatetimeList dates,
KQuery::KType  ktype = KQuery::DAY 
)

获取资产净值曲线,含借入的资产

参数
dates日期列表,根据该日期列表获取其对应的资产净值曲线
ktypeK线类型,必须与日期列表匹配,默认KQuery::DAY
返回
资产净值列表
const PositionRecordList& hku::TradeManager::getHistoryPositionList ( ) const
inline

获取全部历史持仓记录,即已平仓记录

size_t hku::TradeManager::getHoldNumber ( const Datetime datetime,
const Stock stock 
)

获取指定时刻的某证券持有数量

double hku::TradeManager::getMarginRate ( const Datetime datetime,
const Stock stock 
)

获取指定对象的保证金比率

参数
datetime日期
stock指定对象
PositionRecord hku::TradeManager::getPosition ( const Stock stock) const

获取指定证券的当前持仓记录,如当前未持有该票,返回Null<PositionRecord>()

PositionRecordList hku::TradeManager::getPositionList ( ) const

获取当前全部持仓记录

PriceList hku::TradeManager::getProfitCurve ( const DatetimeList dates,
KQuery::KType  ktype = KQuery::DAY 
)

获取收益曲线,即扣除历次存入资金后的资产净值曲线

参数
dates日期列表,根据该日期列表获取其对应的收益曲线,应为递增顺序
ktypeK线类型,必须与日期列表匹配,默认为KQuery::DAY
返回
收益曲线
CostRecord hku::TradeManager::getReturnCashCost ( const Datetime borrow_datetime,
const Datetime return_datetime,
price_t  cash 
)
inline

计算归还融资成本

参数
borrow_datetime借入日期
return_datetime归还日期
cash归还金额
CostRecord hku::TradeManager::getReturnStockCost ( const Datetime borrow_datetime,
const Datetime return_datetime,
const Stock stock,
price_t  price,
size_t  num 
)
inline

计算融劵归还成本

参数
borrow_datetime借入日期
return_datetime归还日期
stock归还的对象
price归还时每股价格
num归还的数量
CostRecord hku::TradeManager::getSellCost ( const Datetime datetime,
const Stock stock,
price_t  price,
size_t  num 
) const
inline

计算卖出成本

参数
datetime交易日期
stock交易的证券对象
price卖出价格
num卖出数量
返回
CostRecord 交易成本记录
const PositionRecordList& hku::TradeManager::getShortHistoryPositionList ( ) const
inline

获取全部空头历史仓位记录

size_t hku::TradeManager::getShortHoldNumber ( const Datetime datetime,
const Stock stock 
)

获取指定时刻的空头某证券持有数量

PositionRecord hku::TradeManager::getShortPosition ( const Stock stock) const

获取指定证券的当前空头仓位持仓记录,如当前未持有该票,返回Null<PositionRecord>()

PositionRecordList hku::TradeManager::getShortPositionList ( ) const

获取当前全部空头仓位记录

size_t hku::TradeManager::getShortStockNumber ( ) const
inline

当前空头持有的证券种类数量

size_t hku::TradeManager::getStockNumber ( ) const
inline

当前持有的证券种类数量

const TradeRecordList& hku::TradeManager::getTradeList ( ) const
inline

获取全部交易记录

TradeRecordList hku::TradeManager::getTradeList ( const Datetime start,
const Datetime end 
) const

获取指定日期范围内的交易记录[start, end)

参数
start起始日期
end结束日期
返回
交易记录列表
bool hku::TradeManager::have ( const Stock stock) const
inline

当前是否持有指定的证券

注解
这里未使用日期参数,必须保证是按日期顺序执行
参数
stock指定证券
返回
true 是 | false 否
bool hku::TradeManager::haveShort ( const Stock stock) const
inline

当前空头仓位是否持有指定的证券

注解
这里未使用日期参数,必须保证是按日期顺序执行
参数
stock指定证券
返回
true 是 | false 否
price_t hku::TradeManager::initCash ( ) const
inline

初始资金

Datetime hku::TradeManager::initDatetime ( ) const
inline

账户建立日期

Datetime hku::TradeManager::lastDatetime ( ) const
inline

最后一笔交易日期,注意和交易类型无关,如未发生交易返回账户建立日期

string hku::TradeManager::name ( ) const
inline

账户名称

void hku::TradeManager::name ( const string name)
inline

设置账户名称

int hku::TradeManager::precision ( ) const
inline

交易精度

void hku::TradeManager::regBroker ( const OrderBrokerPtr broker)

注册订单代理

参数
broker订单代理实例
bool hku::TradeManager::reinvest ( ) const
inline

红利/股息/送股再投资标志,即是否忽略权息信息

void hku::TradeManager::reset ( )

复位,清空交易、持仓记录

bool hku::TradeManager::returnCash ( const Datetime datetime,
price_t  cash 
)

归还资金

参数
datetime归还日期
cash归还现金
返回
true | false
bool hku::TradeManager::returnStock ( const Datetime datetime,
const Stock stock,
price_t  price,
size_t  number 
)

归还证券

参数
datetime归还时间
stock归还的stock
price归还时单股价格
number归还数量
返回
true | false
TradeRecord hku::TradeManager::sell ( const Datetime datetime,
const Stock stock,
price_t  realPrice,
size_t  number = Null<size_t>(),
price_t  stoploss = 0.0,
price_t  goalPrice = 0.0,
price_t  planPrice = 0.0,
SystemPart  from = PART_INVALID 
)

卖出操作

参数
datetime卖出时间
stock卖出的证券
realPrice实际卖出价格
number卖出数量,如果等于Null<size_t>(), 表示全部卖出
stoploss新的止损价
goalPrice新的目标价格
planPrice原计划卖出价格
from记录是哪个系统部件发出的卖出指示
返回
返回对应的交易记录,如果操作失败,business等于INVALID_BUSINESS
TradeRecord hku::TradeManager::sellShort ( const Datetime datetime,
const Stock stock,
price_t  realPrice,
size_t  number,
price_t  stoploss = 0.0,
price_t  goalPrice = 0.0,
price_t  planPrice = 0.0,
SystemPart  from = PART_INVALID 
)

卖空

参数
datetime卖空时间
stock卖空的证券
realPrice实际卖空价格
number卖出数量
stoploss止损价
goalPrice目标价格
planPrice计划卖空价格
from记录是哪个系统部件发出的买入指示
返回
返回对应的交易记录,如果操作失败,business等于INVALID_BUSINESS
void hku::TradeManager::setBrokerLastDatetime ( const Datetime date)
inline

设置开始订单代理操作的时刻

void hku::TradeManager::tocsv ( const string path)

以csv格式输出交易记录、未平仓记录、已平仓记录、资产净值曲线

参数
path输出文件所在目录
string hku::TradeManager::toString ( ) const

字符串输出

友元及相关函数文档

friend class boost::serialization::access
friend

该类的文档由以下文件生成: