9.2 股票量化策略的设置函数

9.2 股票量化策略的设置函数


在股票量化策略的初始化函数中,要进行一些初始化设置,如设置基准、设置佣金/印花税、设置成交量比例等,就会用到设置函数。下面来具体讲解一下各种设置函数。

9.2.1 设置基准函数

设置基准函数的语法格式如下:

set_benchmark(security)

默认情况下,选定沪深300 指数的每日价格作为判断股票量化策略好坏和一系列风险值计算的基准。当然也可以使用set_benchmark 指定其他股票、指数、ETF 的价格作为基准。需要注意的是,这个函数只能在初始化函数( initialize )中调用。

参数security,是指股票、指数或ETF 的代码。设置基准函数的返回值为None。

例如,设定50ETF 基金指数( 510050 )为基准,其代码如下:

set_benchmark( "510050. XSHG" )

再如,设定深证成指( 399001 )为基准,其代码如下:

set_benchmark( "399001.XSHG" )

还可以设置具体某一只股票,如设定招商银行(600036 )为基准,其代码如下:

set_benchmark ( "600036.XSHG" )

9.2.2 设置佣金/印花税函数

设置佣金/印花税函数的语法格式如下:

set_order cost(cost, type , ref=None)

设置佣金/印花税函数,用来设定每笔交易要收取的手续费,系统会根据用户指定的费率计算每笔交易的手续费。该函数有三个参数,各个参数意义如下:

参数cost 是OrderCost 对象,各项子参数意义如下:

open_tax ,买入时印花税(只股票类标的收取,基金与期货不收) 。

close_tax ,卖出时印花税(只股票类标的收取,基金与期货不收) 。

open_cornrnission ,买入时佣金,申购场外基金的手续费。

close_commission ,卖出时佣金,赎回场外基金的手续费。

close _ today cornrnission,平今仓佣金。

min_commission ,最低佣金,不包含印花税。

参数type ,是指股票( stock )、基金( fund) 、金融期货( index_futures) 、期货( futures )、债券基金(bond fund) 、股票基金( stock fund) , ODII 基金( ODII_fund) 、货币基金( money market_fund )、混合基金(mixture fund)。

参数Ref,是参考代码,支持股票代码、基金代码、期货合约代码,以及期货的品种,如"000001.XSHE" 、"510180.xSHG" 、"IF1809" 。

设置佣金/印花税函数的实例代码如下:

9.2.3 设置滑点函数

设置滑点函数的语法格式如下:

set_slippage(object)

设定滑点,回测或模拟时有效。当投资者下单后,真实的成交价格与下单时预期的价恪总会有一定偏差,因此投资者加入了滑点模式可以更好地模拟真实市场的表现。需要注意的是,当前只支持固定滑点。

当投资者使用固定滑点肘,投资者下单的多少并不会影响最后的成交价格,只需要指定一个价差。当投资者下达一个买单指令肘,成交的价格等于当时(执行order 函数所在的单位时间)的平均价格加上价差的一半;当投资者下达一个卖出指令肘,卖出的价格等于当时的平均价格减去价差的一半。

价差可以设定为一个固定值或者按照百分比设定。

固定值: 是指这个价差可以是一个固定的值(比如0.02 元,交易时加减0.01 元) ,设定方式为: FixedSlippage(0.02) 。

百分比: 是指这个价差可以是当时价格的一个百分比(比如0.2%,交易时加减当时价格的0.1 %),设定方式为: PriceRelatedSlippage(0.002) 。

设置滑点函数的实例代码如下:

9.2.4 设置动态复权(真实价格)模式函数

设置动态复权(真实价格)模式函数的语法格式如下:

set_option( ‘use_real_price' , value)

注意,该函数只能在初始化函数( init ialize )中调用。

参数value 的值,是True 或False 。

设置动态复权(真实价格)模式函数的实例代码如下:

9.2.5 设置成交量比例函数

设置成交量比例函数的语法格式如下:

set_option( ‘order_volume_ratio' , value)

参数value 是一个float 值,根据实际行情限制每笔订单的成交量。对于每一笔订单,如果是市价单,成交量不超过: 每日成交量x value ;如果是限价单,限价单撮合时设定分价表中每一个价格的成交量的比率。设置成交量比例函数的实例代码如下:

#设定成交量比例

9.2.6 设置是否开启盘口撮合模式函数

设置是否开启盘口撮合模式函数的语法格式如下:

set_option(‘match_with order book' , value)

设置是否开启盘口撮合模式只对模拟盘生效,默认开启,即value 的值为True。如果value 的值为False ,关闭盘口撮合模式,使用Bar 进行撮合。设置是否开启盘口撮合模式函数代码如下:

#盘口撮合模式

set_option( ‘match_with_order book' , True)

#盘口使用Bar 进行撮合

set_ option( ‘match_with_ order_book' , False)

9.2.7 设置要操作的股票池函数

设置要操作的股票池函数的语法格式如下:

set_universe(security_list)

该函数只用于设定history 函数的默认security _list ,除此之外并无其他用处。参数security_list 是指股票列表。

设置要操作的股票池函数代码如下:

set_universe ([‘000001. XSHE' ,‘600000. XSHG' ])