资金管理策略

公共参数:

  • auto-checkin=False (bool) : 当账户现金不足以买入资金管理策略指示的买入数量时,自动向账户中补充存入(checkin)足够的现金。
  • max-stock=200 (int) : 最大持有的证券种类数量(即持有几只股票,而非各个股票的持仓数)

内建资金管理策略

不做资金管理策略

hikyuu.trade_sys.MM_Nothing()

特殊的资金管理策略,相当于不做资金管理,有多少钱买多少。

固定交易数量资金管理策略

hikyuu.trade_sys.MM_FixedCount([n = 100])

固定交易数量资金管理策略。每次买入固定的数量。

Parameters:n (int) – 每次买入的数量(应该是交易对象最小交易数量的整数,此处程序没有此进行判断)
Returns:资金管理策略实例

固定风险资金管理策略

hikyuu.trade_sys.MM_FixedRisk([risk = 1000.00])

固定风险资金管理策略对每笔交易限定一个预先确定的或者固定的资金风险,如每笔交易固定风险1000元。公式:交易数量 = 固定风险 / 交易风险。

Parameters:risk (float) – 固定风险
Returns:资金管理策略实例

固定资本资金管理策略

hikyuu.trade_sys.MM_FixedCapital([capital = 10000.0])
Parameters:capital (float) – 固定资本单位
Returns:资金管理策略实例

固定比例资金管理策略

固定单位资金管理策略

hikyuu.trade_sys.MM_FixedUnits([n = 33])
Parameters:n (int) – n个资金单位
Returns:资金管理策略实例

威廉斯固定风险资金管理策略

hikyuu.trade_sys.MM_WilliamsFixedRisk([p=0.1, max_loss=1000.0])

固定百分比资金管理策略

hikyuu.trade_sys.MM_FixedPercent([p = 0.03])

固定百分比风险模型。公式:P(头寸规模)= 账户余额 * 百分比 / R(每股的交易风险)。[BOOK3], [BOOK4] .

Parameters:p (float) – 百分比
Returns:资金管理策略实例

固定波幅资金管理策略

自定义资金管理策略

自定义资金管理策略接口:

资金管理策略基类

class hikyuu.trade_sys.MoneyManagerBase([name])

资金管理策略基类

name 名称
getParam(name)

获取指定的参数

Note

所有的资金管理策略具有参数“auto-checkin”(bool类型,默认为False),其含义为“当账户现金不足以买入资金管理策略指示的买入数量时,自动向账户中补充存入(checkin)足够的现金。

Parameters:name (str) – 参数名称
Returns:参数值
Raises:out_of_range – 无此参数
setParam(name, value)

设置参数

Parameters:
  • name (str) – 参数名称
  • value (int | bool | float | string) – 参数值
Raises:

logic_error – Unsupported type! 不支持的参数类型

setTM(tm)
Parameters:tm (TradeManager) – 设置交易管理对象
setQuery(query)

设置查询条件

Parameters:query (KQuery) – 查询条件
getQuery()

获取查询条件

Returns:查询条件
Return type:KQuery
reset()

复位操作

clone()

克隆操作

getBuyNumber(datetime, stock, price, risk)

获取指定交易对象可买入的数量

Parameters:
  • datetime (Datetime) – 交易时间
  • stock (Stock) – 交易对象
  • price (float) – 交易价格
  • risk (float) – 交易承担的风险,如果为0,表示全部损失,即市值跌至0元
Returns:

可买入数量

Return type:

int

getSellNumber(datetime, stock, price, risk)

获取指定交易对象可卖出的数量

Parameters:
  • datetime (Datetime) – 交易时间
  • stock (Stock) – 交易对象
  • price (float) – 交易价格
  • risk (float) – 新的交易承担的风险,如果为0,表示全部损失,即市值跌至0元
Returns:

可卖出数量

Return type:

int

buyNotify(trade_record)

【重载接口】交易系统发生实际买入操作时,通知交易变化情况,一般存在多次增减仓的情况才需要重载

Parameters:trade_record (TradeRecord) – 发生实际买入时的实际买入交易记录
sellNotify(trade_record)

【重载接口】交易系统发生实际卖出操作时,通知实际交易变化情况,一般存在多次增减仓的情况才需要重载

Parameters:trade_record (TradeRecord) – 发生实际卖出时的实际卖出交易记录
_getBuyNumber(datetime, stock, price, risk)

【重载接口】获取指定交易对象可买入的数量

Parameters:
  • datetime (Datetime) – 交易时间
  • stock (Stock) – 交易对象
  • price (float) – 交易价格
  • risk (float) – 交易承担的风险,如果为0,表示全部损失,即市值跌至0元
Returns:

可买入数量

Return type:

int

_getSellNumber(datetime, stock, price, risk)

【重载接口】获取指定交易对象可卖出的数量。如未重载,默认为卖出全部已持仓数量。

Parameters:
  • datetime (Datetime) – 交易时间
  • stock (Stock) – 交易对象
  • price (float) – 交易价格
  • risk (float) – 新的交易承担的风险,如果为0,表示全部损失,即市值跌至0元
Returns:

可卖出数量

Return type:

int

_reset()

【重载接口】子类复位接口,复位内部私有变量

_clone()

【重载接口】子类克隆接口