策略研究合竞价选股(源)

原 【策略研究】集合竞价选股(附源码)

什么是集合竞价?有什么用途?

​ 所谓集合竞价就是在当天还没有开盘之前,你可根据前一天的收盘价和对当日股市的预测来输入股票价格,在集合竞价时间里输入计算机主机的所有下单,按照价格优先和时间优先的原则计算出最大成交量的价格,这个价格就会是集合竞价的成交价格,而这个过程被称为集合竞价。

​ 每天开盘价在技术分析上具有重要的意义,目前世界各国股市市场均采用集合竞价的方式来确定开盘价,因为这样可以在一定程度上防止人为操纵现象。

策略实现(基于掘金量化平台)

策略思想

  • 获取沪深300的成份股数据,并统计其30天内开盘价大于前收盘价的天数,并在该天数大于阈值18的时候加入股票池。

  • 对不在股票池的股票平仓,并等权配置股票池的标的股票,每次交易间隔1个月。

策略主要步骤实现

获取当前交易日日期

now = context.now = context.now

​ 直接调用context.now函数,返回“datetime.datetime”格式

获取上一交易日日期

last_day = get_previous_trading_date(exchange='SHSE', date=now) = 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']]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“:

  • symbols需要设置订阅的标的代码。

  • start_dateend_date需设置获取成分股的开始与结束日期,这里需要调成上一交易日以获取上一交易日的成分股信息。

固定月初调仓

schedule(schedule_func=algo, date_rule='1m', time_rule='09:40:00')(schedule_func=algo, date_rule='1m', time_rule='09:40:00')

​ 固定时间调仓可使用schedule函数进行定时任务配置:

  • schedule_func为调用的策略函数的名称。

  • date_rule可设为1m(一月)。

  • time_rule为开仓日的开仓时间,这里设为每月第一个交易日的09:40:00

获取沪深300成分股

stock300 = get_history_constituents(index='SHSE.000300', start_date=last_day,end_date=last_day)[0]['constituents'].keys() = get_history_constituents(index='SHSE.000300', start_date=last_day,end_date=last_
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值