企业微信

同花顺自选股批量导入的三种路径

手动导入

同花顺电脑版提供“自选股”右键菜单中的“导入自选股”选项。支持从txt或csv文件读取代码列表。文件每行一个股票代码,如600000、000001、300750。导入前需要将文件编码保存为ANSI或UTF-8无BOM格式,否则会出现乱码导致导入失败。手机端同花顺不支持文件导入,只能逐只添加或通过“自选股同步”从电脑端拉取。

文件导入的具体步骤

  1. 准备代码文件:用记事本新建文件,每行写入一个股票代码。

  2. 沪市代码加后缀.SH,深市.SZ,北交所.BJ。同花顺也可识别无后缀的六位数字。

  3. 打开同花顺PC端,进入“自选股”页面,右键点击“自选股”分组,选择“导入自选股”。

  4. 选择文件,勾选“覆盖原有自选股”或“追加”。

  5. 确认导入,刷新后可见新股票。

常见问题:代码格式错误(如带字母前缀)、文件路径含中文、同花顺版本过低。建议使用2019年以后版本。

同花顺批量导入自选股如何操作

API与程序化导入

同花顺官方未开放自选股写入API。量化交易者常通过模拟键鼠或内存操作实现批量导入。下面给出一个使用pywinauto操作同花顺窗口的示例。只适用于Windows平台,且需要同花顺窗口保持在前台。


from pywinauto import Application

import time

app = Application('uia').connect(path='hexin.exe')

main_win = app.window(title='同花顺')

main_win.set_focus()

# 点击自选股页面

main_win.child_window(title='自选股', control_type='Button').click_input()

time.sleep(1)

# 右键菜单导入

main_win.child_window(title='自选股', control_type='TreeItem').right_click_input()

main_win.child_window(title='导入自选股', control_type='MenuItem').click_input()

time.sleep(0.5)

# 文件对话框操作需要额外处理,此处省略

# 推荐使用pyautogui直接发送键盘快捷键

import pyautogui

pyautogui.hotkey('ctrl', 'a')

pyautogui.typewrite('C:\\stock_codes.txt')

pyautogui.press('enter')

更稳定的方式:读取同花顺自选股存储文件。路径通常为C:\同花顺软件\userdata\自选股\selfstock.dat,但为二进制加密格式。解密需逆向工程,不推荐普通用户尝试。

期货自选股导入

同花顺期货通支持批量导入合约。期货代码格式如rb2510i2509au2512。导入方法相同,但需注意期货合约有到期日,导入后需定期清理。期货自选股导入后,可配合条件单、预警功能使用。量化交易中,常将主力合约列表动态写入自选股,再通过同花顺预警触发交易信号。

量化交易中的自选股与股票池

在量化策略中,自选股常作为候选股票池。批量导入几百只股票后,用同花顺的“实时行情”导出数据,再喂给Python策略。同花顺支持导出自选股为Excel,步骤:自选股页面右键 -> 导出数据 -> 选择字段(代码、名称、最新价、涨跌幅等)。导出后的文件可被pandas直接读取。


import pandas as pd

df = pd.read_excel('自选股导出.xlsx')

print(df.head())

对于期货,导出数据包含合约、买卖价、持仓量。量化策略中需注意期货主力合约换月,建议每周重新导入一次。

常见错误与解决方案

编码问题:用记事本另存为时选择ANSI。

代码重复:导入前用Python去重。


codes = list(set(codes))

with open('unique.txt', 'w') as f:

    for c in codes:

        f.write(c + '\n')

同花顺版本差异:券商版同花顺可能阉割导入功能,使用官方免费版。

权限问题:以管理员身份运行同花顺。

导入后不显示:按F5刷新,或重启同花顺。

进阶批量操作

对于需要每日更新自选股的量化交易者,可编写脚本自动生成代码文件并调用同花顺导入。结合Windows任务计划,实现开盘前自动导入当日股票池。期货场景下,可自动导入所有活跃合约。


import os

import datetime

# 生成期货主力合约列表(示例)

contracts = ['rb2510', 'i2509', 'au2512', 'ag2512']

with open('futures_self.txt', 'w') as f:

    for c in contracts:

        f.write(c + '\n')

# 调用同花顺导入(需提前录制宏或使用pywinauto)

同花顺宏功能可录制导入自选股操作,但灵活性差。推荐使用pyautogui + 图像识别定位按钮。

注意事项

自选股数量上限:同花顺免费版约500只,VIP可扩容。期货合约无明确上限,但过多影响行情刷新速度。

导入频率:避免频繁导入,防止软件卡死。

备份自选股:定期导出为txt或Excel,防止丢失。

多设备同步:登录同花顺账号后,自选股自动云同步。批量导入后等待同步完成再关闭软件。

手动导入:准备代码文件 -> 右键导入 -> 选择文件 -> 确认。

程序化导入:pywinauto控制窗口 -> 模拟点击 -> 文件对话框输入路径。

期货导入:代码加交易所后缀或直接使用合约代码。

导出与量化结合:导出自选股为Excel -> pandas读取 -> 策略计算。

掌握同花顺批量导入自选股,可大幅提升股票池维护效率,为量化交易提供基础数据。