Hikyuu  0.1
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 setName (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
 获取全部交易记录 更多...
 
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)
 获取收益曲线,即扣除历次存入资金后的资产净值曲线 更多...
 
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::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

获取全部交易记录

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

账户名称

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::setName ( const string name)
inline

设置账户名称

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

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

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

友元及相关函数文档

friend class boost::serialization::access
friend

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