什么是集合竞价?有什么用途? 所谓集合竞价就是在当天还没有开盘之前,你可根据前一天的收盘价和对当日股市的预测来输入股票价格,在集合竞价时间里输入计算机主机的所有下单,按照价格优先和时间优先的原则计算出最大成交量的价格,这个价格就会是集合竞价的成交价格,而这个过程被称为集合竞价。
每天开盘价在技术分析上具有重要的意义,目前世界各国股市市场均采用集合竞价的方式来确定开盘价,因为这样可以在一定程度上防止人为操纵现象。
策略实现(基于掘金量化平台)策略思想策略主要步骤实现获取当前交易日日期now = context.now
直接调用context.now函数,返回“datetime.datetime”格式
获取上一交易日日期
last_day = get_previous_trading_date(exchange='SHSE', date=now)
获取上一交易日可调用get_previous_trading_date函数,返回值为字符串格式:
exchang需要设置交易市场代码。
date需要设置指定日期。
获取当天有交易的股票
not_suspended_info = get_history_instruments(symbols='SHSE.000300', start_date=now, end_date=now)
not_suspended_symbols = [item['symbol'] for item in not_suspended_info if not item['is_suspended']]
获取当天有交易的股票,即非停牌的股票,首先需获取停牌信息,这里需调用get_history_instruments函数,返回值类型为list[dict],之后就是将所提取的“字典”转换为”list“:
固定月初调仓
schedule(schedule_func=algo, date_rule='1m', time_rule='09:40:00')
固定时间调仓可使用schedule函数进行定时任务配置:
获取沪深300成分股
stock300 = get_history_constituents(index='SHSE.000300', start_date=last_day,end_date=last_day)[0]['constituents'].keys()
获取指数成分股可调用函数get_history_constituents或者get_constituents,返回值类型为list[dict],这里调用get_history_constituents是因为再回测时需要获取上一交易日的成分股,而get_constituents只能获取最新的成分股:
获取过去交易日的历史信息
return_index_his = history_n(symbol=symbol, frequency='1d', count=30, fields='close,preclose',fill_missing='Last', adjust=ADJUST_PREV, end_time=last_day, df=True)
获取历史信息需要调用histor_n函数,默认返回值为“字典“格式,如果参数df设为True,则返回"dataframe"格式
symbol设置所需获取的标的代码。
frequency获取历史信息的频率,如日线数据设置为1d。
count需要设置获取的bar的数量。
fileds设置返回值的种类。
fill_missing需要设置对于空值的填充方式, None- 不填充,NaN- 用空值填充, Last- 用上一个值填充,默认 None。
adjust需要设置对于复权的处理,ADJUST_NONE or 0: 不复权, ADJUST_PREV or 1: 前复权, ADJUST_POST or 2: 后复权, 默认不复权。
end_time需设置获取历史信息的结束时间。
获取持仓信息
positions = context.account().positions()
在判断平仓条件时,需要获取持仓信息(包含持仓均价),这就需要调用context.account().position函数,返回字典型。
策略回测分析

分析 我们选取了2017年7月至2017年10月作为回测周期,应用“EV/EBITDA”单因子作为选股基础。可以看出:
原创:掘金量化myquant.cn,转载请注明出处!谢谢