资金管理策略|MM
公共参数:
auto-checkin=False (bool) : 当账户现金不足以买入资金管理策略指示的买入数量时,自动向账户中补充存入(checkin)足够的现金。
max-stock=20000 (int) : 最大持有的证券种类数量(即持有几只股票,而非各个股票的持仓数)
disable_ev_force_clean_position=False (bool) : 禁用市场环境失效时强制清仓
disable_cn_force_clean_position=False (bool) : 禁用系统有效条件失效时强制清仓
内建资金管理策略
不做资金管理策略
- hikyuu.trade_sys.MM_Nothing()
特殊的资金管理策略,相当于不做资金管理,有多少钱买多少。
固定交易数量资金管理策略
- hikyuu.trade_sys.MM_FixedCount([n=100])
固定交易数量资金管理策略。每次买入固定的数量。
- 参数:
n (float) -- 每次买入的数量(应该是交易对象最小交易数量的整数,此处程序没有此进行判断)
- 返回:
资金管理策略实例
- hikyuu.trade_sys.MM_FixedCountTps([buy_counts, sell_counts])
连续买入/卖出固定数量资金管理策略。
- 参数:
buy_counts (list) -- 买入数量列表
sell_counts (list) -- 卖出数量列表
- 返回:
资金管理策略实例
固定风险资金管理策略
- hikyuu.trade_sys.MM_FixedRisk([risk=1000.00])
固定风险资金管理策略对每笔交易限定一个预先确定的或者固定的资金风险,如每笔交易固定风险1000元。公式:交易数量 = 固定风险 / 交易风险。
- 参数:
risk (float) -- 固定风险
- 返回:
资金管理策略实例
固定资本资金管理策略
- hikyuu.trade_sys.MM_FixedCapital([capital=10000.0])
固定资金管理策略, 即控制每次买入投入的总资金。买入数量 = 当前现金 / capital
- 参数:
capital (float) -- 固定资本单位
- 返回:
资金管理策略实例
- hikyuu.trade_sys.MM_FixedCapitalFunds([capital=10000.0])
固定资本管理策略。买入数量 = 当前总资产 / capital
- 参数:
capital (float) -- 固定资本单位
- 返回:
资金管理策略实例
固定单位资金风险管理策略
- hikyuu.trade_sys.MM_FixedUnits([n=33])
固定单位资金管理策略。公式: 买入数量 = 当前现金 / n / 当前风险risk
- 参数:
n (int) -- n个资金单位
- 返回:
资金管理策略实例
威廉斯固定风险资金管理策略
- hikyuu.trade_sys.MM_WilliamsFixedRisk([p=0.1, max_loss=1000.0])
威廉斯固定风险资金管理策略,买入数量 =(账户余额 × 风险百分比p)÷ 最大损失(max_loss)
- 参数:
p (float) -- 风险百分比
max_loss (float) -- 最大损失
- 返回:
资金管理策略实例
固定百分比资金管理策略
固定波幅资金管理策略
自定义资金管理策略
自定义资金管理策略接口:
MoneyManagerBase.buyNotify()- 【可选】接收实际买入通知,预留用于多次增减仓处理MoneyManagerBase.sellNotify()- 【可选】接收实际卖出通知,预留用于多次增减仓处理MoneyManagerBase._getBuyNumber()- 【必须】获取指定交易对象可买入的数量MoneyManagerBase._getSellNumber()- 【可选】获取指定交易对象可卖出的数量,如未重载,默认为卖出全部已持仓数量MoneyManagerBase._reset()- 【可选】重置私有属性MoneyManagerBase._clone()- 【必须】克隆接口
资金管理策略基类
- class hikyuu.trade_sys.MoneyManagerBase
资金管理策略基类
- name 名称
- tm 设置或获取交易管理对象
- query 设置或获取查询条件
- __init__(self[, name="MoneyManagerBase])
初始化构造函数
- 参数:
name (str) -- 名称
- get_param(self, name)
获取指定的参数
备注
所有的资金管理策略具有参数“auto-checkin”(bool类型,默认为False),其含义为“当账户现金不足以买入资金管理策略指示的买入数量时,自动向账户中补充存入(checkin)足够的现金。
- 参数:
name (str) -- 参数名称
- 返回:
参数值
- 抛出:
out_of_range -- 无此参数
- set_param(self, name, value)
设置参数
- 参数:
name (str) -- 参数名称
value (int | bool | float | string) -- 参数值
- 抛出:
logic_error -- Unsupported type! 不支持的参数类型
- reset(self)
复位操作
- clone(self)
克隆操作
- get_buy_num(self, datetime, stock, price, risk, part_from)
获取指定交易对象可买入的数量
- 参数:
datetime (Datetime) -- 交易时间
stock (Stock) -- 交易对象
price (float) -- 交易价格
risk (float) -- 交易承担的风险,如果为0,表示全部损失,即市值跌至0元
part_from (System.Part) -- 来源系统组件
- 返回:
可买入数量
- 返回类型:
float
- get_sell_num(self, datetime, stock, price, risk, part_from)
获取指定交易对象可卖出的数量
- 参数:
datetime (Datetime) -- 交易时间
stock (Stock) -- 交易对象
price (float) -- 交易价格
risk (float) -- 新的交易承担的风险,如果为0,表示全部损失,即市值跌至0元
part_from (System.Part) -- 来源系统组件
- 返回:
可卖出数量
- 返回类型:
float
- current_buy_count(self, stock)
当前连续买入计数
- current_sell_count(self, stock)
当前连续卖出计数
- _buy_notify(self, trade_record)
【重载接口】交易系统发生实际买入操作时,通知交易变化情况,一般存在多次增减仓的情况才需要重载
- 参数:
trade_record (TradeRecord) -- 发生实际买入时的实际买入交易记录
- _sell_notify(self, trade_record)
【重载接口】交易系统发生实际卖出操作时,通知实际交易变化情况,一般存在多次增减仓的情况才需要重载
- 参数:
trade_record (TradeRecord) -- 发生实际卖出时的实际卖出交易记录
- _get_buy_num(self, datetime, stock, price, risk, part_from)
【重载接口】获取指定交易对象可买入的数量
- 参数:
datetime (Datetime) -- 交易时间
stock (Stock) -- 交易对象
price (float) -- 交易价格
risk (float) -- 交易承担的风险,如果为0,表示全部损失,即市值跌至0元
part_from (System.Part) -- 来源系统组件
- 返回:
可买入数量
- 返回类型:
float
- _get_sell_num(self, datetime, stock, price, risk, part_from)
【重载接口】获取指定交易对象可卖出的数量。如未重载,默认为卖出全部已持仓数量。
- 参数:
datetime (Datetime) -- 交易时间
stock (Stock) -- 交易对象
price (float) -- 交易价格
risk (float) -- 新的交易承担的风险,如果为0,表示全部损失,即市值跌至0元
part_from (System.Part) -- 来源系统组件
- 返回:
可卖出数量
- 返回类型:
float
- _reset(self)
【重载接口】子类复位接口,复位内部私有变量
- _clone(self)
【重载接口】子类克隆接口