前言
今天主要和大家分享的是期货查询类的函数和期货设置类的函数!
具体的开通渠道可以看文章末尾!
一、get_margin_rate—— 获取用户设置的保证金比例
保证金是期货交易中的一个重点,这个函数就是用来获取我们设置的保证金比例的!具体的函数如下
get_margin_rate(transaction_code)
其中的参数如下
transaction_code:期货合约的交易代码,str类型,如沪铜2112("CU2112")的交易代码为"CU";
具体的代码示例
def initialize(context):g.security = "CU2112.XSGE"set_universe(g.security)# 设置沪铜品种的保证金比例为8%set_margin_rate("CU", 0.08)def before_trading_start(context, data):# 获取沪铜品种的保证金比例margin_rate = get_margin_rate("CU")log.info(margin_rate)# 获取苹果品种的保证金比例margin_rate = get_margin_rate("AP")log.info(margin_rate)def handle_data(context, data):pass
二、get_instruments—— 获取合约信息
这个函数用来获取相关合约的上市具体信息!具体代码如下
get_instruments(contract)
其中的contract指的是字符串,期货的合约代码,str类型;
返回如下的信息
FutureParams对象,主要返回的字段为:
1、contract_code -- 合约代码,str类型;
2、contract_name -- 合约名称,str类型;
3、exchange -- 交易所:大商所、郑商所、上期所、中金所,str类型;
4、trade_unit -- 交易单位,int类型;
5、contract_multiplier -- 合约乘数,float类型;
6、delivery_date -- 交割日期,str类型;
7、isting_date -- 上市日期,str类型;
8、trade_code -- 交易代码,str类型;
9、margin_rate -- 保证金比例,float类型;
这里有一个注意事项
在期货实盘模块中,由于行情源的限制,涨跌幅目前暂时是无法提供的
具体的代码示例
def initialize(context):g.security = ["CU2112.XSGE", "IF2112.CCFX"]set_universe(g.security)def before_trading_start(context, data):# 获取股票池代码合约信息for security in g.security:info = get_instruments(security)log.info(info)def handle_data(context, data):pass
三、set_future_commission —— 设置期货手续费
这种设置类函数就和前面介绍的滑点函数一样,都是为了让模拟盘的回测更加贴近实盘!主要作用是设置期货的手续费
函数具体如下
set_future_commission(transaction_code, commission)
其中的参数如下
transaction_code:期货合约的交易代码,str类型,如沪铜2112("CU2112")的交易代码为"CU";
commission:手续费,浮点型,设置说明:
当交易时的手续费是按手数收取时,则这里应当设置为每手收取的金额,例如:将期货的手续费设置为2元/手,此处应填写2;
当交易时的手续费是按总成交额收取时,则这里应当设置为总成交额的比例,例如:将期货的手续费费率设置为0.4/万,此处应填写0.00004;
代码示例如下
def initialize(context):g.security = "CU2112.XSGE"set_universe(g.security)# 设置沪铜的手续费,0.4/万set_future_commission("CU", 0.00004)# 设置沪金的手续费,2元/手set_future_commission("AU", 2)def handle_data(context, data):# 买入沪铜2112buy_open(g.security, 2)# 买入沪金2112buy_open("AU2112.XSGE", 20)
四、set_margin_rate —— 设置期货保证金比例
一样的,都是为了更贴近实盘,主要是用来设置期货保证金比例!
具体函数如下
set_margin_rate(transaction_code, margin_rate)
其中的参数
transaction_code:期货合约的交易代码,str类型,如沪铜2112("CU2112")的交易代码为"CU";
margin_rate:保证金比例,浮点型,将对应期货的保证金比例设置为5%则输入0.05;
代码实际使用示例
def initialize(context):g.security = "CU2112.XSGE"set_universe(g.security)# 设置沪铜品种收取的保证金比例设置为5%set_margin_rate("CU", 0.05)def handle_data(context, data):# 买入沪铜2112buy_open(g.security, 10)