交易管理类

交易管理可理解为一个模拟账户进行模拟交易。一般使用 crtTM 创建交易管理实例。

公共参数:

  • reinvest=False (bool) : 红利是否再投资
  • precision=2 (int) : 金额计算精度
  • support_borrow_cash=False (bool) : 是否自动融资
  • support_borrow_stock=False (bool) : 是否自动融券
  • save_action=True (bool) : 是否保存Python命令序列
hikyuu.trade_manage.crtTM([datetime = Datetime(199001010000), initcash = 100000, costfunc = TC_Zero(), name = "SYS"])

创建交易管理实例,也可以理解为创建一个模拟账户管理交易

Parameters:
  • datetime (Datetime) – 账户建立日期
  • initcash (float) – 初始资金
  • costfunc (TradeCost) – 交易成本算法
  • name (string) – 账户名称
Return type:

TradeManager

class hikyuu.trade_manage.TradeManager(datetime, initcash, costfunc, name)
name

名称

costFunc

交易成本算法

initCash

(只读)初始资金

initDatetime

(只读)账户建立日期

firstDatetime

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

lastDatetime

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

reinvest

(只读)红利/股息/送股再投资标志

precision

(只读)

checkin(datetime, cash)

向账户内存入现金

Parameters:
  • datetime (Datetime) – 交易时间
  • cash (float) – 存入的现金量
Return type:

TradeRecord

checkout(datetime, cash)

从账户内取出现金

Parameters:
  • datetime (Datetime) – 交易时间
  • cash (float) – 取出的资金量
Return type:

TradeRecord

buy(datetime, stock, realPrice, number[, stoploss = 0.0, goalPrice = 0.0, planPrice = 0.0, part = System.INVALID])

买入操作

Parameters:
  • datetime (Datetime) – 买入时间
  • stock (Stock) – 买入的证券
  • realPrice (float) – 实际买入价格
  • num (int) – 买入数量
  • stoploss (float) – 止损价
  • goalPrice (float) – 目标价格
  • planPrice (float) – 计划买入价格
  • part (SystemPart) – 交易指示来源
Return type:

TradeRecord

sell(datetime, stock, realPrice[, number = Constant.null_size, stoploss = 0.0, goalPrice = 0.0, planPrice = 0.0, part = System.INVALID])

卖出操作

Parameters:
  • datetime (Datetime) – 卖出时间
  • stock (Stock) – 卖出的证券
  • realPrice (float) – 实际卖出价格
  • num (int) – 卖出数量,如果等于Constant.null_size,表示全部卖出
  • stoploss (float) – 新的止损价
  • goalPrice (float) – 新的目标价格
  • planPrice (float) – 原计划卖出价格
  • part (SystemPart) – 交易指示来源
Return type:

TradeRecord

have(stock)

当前是否持有指定的证券

Parameters:stock (Stock) – 指定证券
Return type:bool
getStockNumber()

当前持有的证券种类数量,即当前持有几只股票(非各个股票的持仓数)

Return type:int
getHoldNumber(datetime, stock)

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

Parameters:
  • datetime (Datetime) – 指定时刻
  • stock (Stock) – 指定的证券
Return type:

int

getPosition(stock)

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

Parameters:stock (Stock) – 指定的证券
Return type:PositionRecord
getTradeList()

获取全部交易记录

Return type:TradeRecordList
getPositionList()

获取当前全部持仓记录

Return type:PositionRecordList
getHistoryPositionList()

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

Return type:PositionRecordList
getBuyCost(datetime, stock, price, num)

计算买入成本

Parameters:
  • datetime (Datetime) – 交易时间
  • stock (Stock) – 交易的证券
  • price (float) – 买入价格
  • num (int) – 买入数量
Return type:

CostRecord

getSellCost(datetime, stock, price, num)

计算卖出成本

Parameters:
  • datetime (Datetime) – 交易时间
  • stock (Stock) – 交易的证券
  • price (float) – 卖出价格
  • num (int) – 卖出数量
Return type:

CostRecord

getFunds([ktype = KQuery.DAY])

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

Parameters:ktype (KQuery.KType) – K线类型
Return type:FundsRecord
getFunds(datetime[, ktype = KQuery.DAY])

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

Parameters:
Return type:

FundsRecord

getFundsCurve(dates[, ktype = KQuery.DAY])

获取资产净值曲线

Parameters:
  • dates (DatetimeList) – 日期列表,根据该日期列表获取其对应的资产净值曲线
  • ktype (KQuery.KType) – K线类型,必须与日期列表匹配
Returns:

资产净值列表

Return type:

PriceList

getProfitCurve(dates[, ktype = KQuery.DAY])

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

Parameters:
  • dates (DatetimeList) – 日期列表,根据该日期列表获取其对应的收益曲线,应为递增顺序
  • ktype (KQuery.KType) – K线类型,必须与日期列表匹配
Returns:

收益曲线

Return type:

PriceList

tocsv(path)

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

Parameters:path (string) – 输出文件所在目录