我目前在用同花顺supermind量化平台的“策略研究”和“模拟交易”两个板块进行日常量化选股,现在遇到问题:上日收盘后进行初步选股并形成股票列表,次日竞价结束后再在昨日的股票列表里精选出竞价表现优秀的股票,但代码是按日执行的,如何在今日竞价接收后取到昨日初选股票列表数据?
我目前在用同花顺supermind量化平台的“策略研究”和“模拟交易”两个板块进行日常量化选股,现在遇到问题:上日收盘后进行初步选股并形成股票列表,次日竞价结束后再在昨日的股票列表里精选出竞价表现优秀的股票,但代码是按日执行的,如何在今日竞价接收后取到昨日初选股票列表数据?
在 SuperMind 平台中,您可以通过 get_iwencai 函数在策略的初始化阶段(init 函数)中执行选股,并将选股结果保存到 context 对象中。这样,您可以在次日竞价结束后通过 context 对象访问到昨日的选股结果。具体步骤如下:
init 函数中调用 get_iwencai 函数,执行选股并将结果保存到 context 对象中。open_auction 函数中,通过 context 对象访问昨日的选股结果,并进行进一步的筛选。示例代码如下:
def init(context):
# 在初始化函数中调用 get_iwencai 函数执行选股,并将结果保存到 context 对象中
get_iwencai('非ST,市值大于100亿', set_attr='yesterday_stocks')
def open_auction(context, bar_dict):
# 在 open_auction 函数中通过 context 对象访问昨日的选股结果
yesterday_stocks = context.yesterday_stocks
# 进一步筛选竞价表现优秀的股票
# 假设您需要筛选竞价表现优秀的股票,可以使用 history 函数获取竞价数据
# 这里仅展示如何获取昨日选股结果,具体的筛选逻辑需要根据您的需求编写
for stock in yesterday_stocks:
# 获取股票竞价数据
auction_data = history([stock], ['open', 'high', 'low', 'close'], 1, '1d', skip_paused=False, fq='pre', df=True)
# 根据竞价数据进行筛选
# 例如,筛选开盘价高于昨日收盘价的股票
if auction_data[stock]['open'][0] > auction_data[stock]['close'][0]:
# 进行进一步操作,例如下单
order(stock, 100)
通过上述代码,您可以在次日竞价结束后通过 context 对象访问到昨日的选股结果,并进行进一步的筛选。请根据您的具体需求调整筛选逻辑。

