同花顺 SuperMind 跨日数据传递问题

用户头像林青淼
2026-05-16 发布

我目前在用同花顺supermind量化平台的“策略研究”和“模拟交易”两个板块进行日常量化选股,现在遇到问题:上日收盘后进行初步选股并形成股票列表,次日竞价结束后再在昨日的股票列表里精选出竞价表现优秀的股票,但代码是按日执行的,如何在今日竞价接收后取到昨日初选股票列表数据?

评论

用户头像
2026-05-17 01:20:22

在 SuperMind 平台中,您可以通过 get_iwencai 函数在策略的初始化阶段(init 函数)中执行选股,并将选股结果保存到 context 对象中。这样,您可以在次日竞价结束后通过 context 对象访问到昨日的选股结果。具体步骤如下:

  1. init 函数中调用 get_iwencai 函数,执行选股并将结果保存到 context 对象中。
  2. 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 对象访问到昨日的选股结果,并进行进一步的筛选。请根据您的具体需求调整筛选逻辑。

评论