帮助文档目录

本地文件数据插件

本地文件数据插件(LocalFile)允许您从 CSV 文件读取标的信息、最新价格和历史日线数据,无需依赖网络 API。适合已持有本地行情数据的用户,或希望从 akshare、tushare、通达信、Yahoo Finance 等工具导出的数据直接加载到 WealthSight 中使用。

适用场景

  • 已通过 akshare、tushare 等工具批量导出了历史行情 CSV 文件。
  • 拥有从券商交易软件(通达信、同花顺、东方财富等)导出的日线数据。
  • 希望离线使用行情数据,不依赖网络 API 的稳定性和频率限制。
  • 需要整合多个数据来源的行情到一个统一的本地文件中。

配置

设置 → 插件管理 → LocalFile 中:

  • 填写 CSV 数据文件路径(必填),支持绝对路径或相对路径。
  • 根据需要调整 文件编码(可选,默认 UTF-8,留空则自动检测)。
  • 保存设置后,插件会自动读取文件并构建数据索引。
  • 更新 CSV 文件后,插件会在后续查询时后台自动检测并重载;也可以点击 重新加载文件 立即刷新数据。

CSV 文件格式

必填列

列名说明示例
SecurityCode标的代码000001600519AAPL00700
Name标的名称平安银行Apple Inc.
Date交易日期2024-01-02
Close收盘价12.50

可选列

列名说明
Currency交易货币(CNY / HKD / USD 等)
SymbolCode插件内部唯一标识码,如 000001.SZ0700.HK;不填则自动使用 SecurityCode
High最高价
Low最低价

表头别名支持

插件支持中英文表头自动识别,以下列名均可被正确映射,不区分大小写、不限制列的顺序

用户代码列(SecurityCode)代码证券代码股票代码标的代码security_codestock_codewind_code

内部标识列(SymbolCode,可选)ts_codetickersymbolcode

名称列名称证券名称股票名称简称namestock_namecompany_name

日期列日期交易日期时间datetrade_datedatetime

收盘价列收盘收盘价最新价closepricenav(基金净值)等

最高/最低价列最高/最低最高价/最低价high/low

币种列币种货币currencycur

格式示例

1
2
3
4
5
6
SecurityCode,Name,Currency,Date,Close,High,Low
000001,平安银行,CNY,2024-01-02,12.50,12.80,12.20
000001,平安银行,CNY,2024-01-03,12.55,12.70,12.30
600519,贵州茅台,CNY,2024-01-02,1680.00,1700.00,1660.00
00700,腾讯控股,HKD,2024-01-02,300.00,305.00,298.00
AAPL,Apple Inc.,USD,2024-01-02,185.00,187.00,183.00

# 开头的行会被视为注释自动跳过。空值可用 -N/A 或直接留空表示。

其中:

  • SecurityCode 用于用户识别和常规搜索,如 000001AAPL
  • SymbolCode 用于插件内部唯一识别;提供后会优先作为内部主键使用。
  • 搜索支持 SecurityCodeName,如果提供了 SymbolCode,也支持按 SymbolCode 搜索。

兼容的外部数据源

akshare(推荐)

akshare 是一个开源的 Python 金融数据接口库,可从东方财富、新浪财经、腾讯财经等获取 A 股、港股、美股历史数据。

获取 akshare

1
pip install akshare

导出 A 股历史数据为 WealthSight 兼容格式(附带转换脚本,见文末):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import akshare as ak
import pandas as pd

def export_to_wealthsight(symbol, name, market="SZ", output_path=None):
    """将 akshare 历史数据导出为 WealthSight CSV 格式"""
    df = ak.stock_zh_a_hist(
        symbol=symbol, period="daily",
        start_date="20100101", end_date="20251231",
        adjust="qfq"  # 前复权
    )
    if df is None or df.empty:
        print(f"未获取到 {symbol} 的数据")
        return

    df = df.rename(columns={
        "日期": "Date", "收盘": "Close",
        "最高": "High", "最低": "Low"
    })
    df["SecurityCode"] = symbol
    df["Name"] = name
    df["Currency"] = "CNY"

    cols = ["SecurityCode", "Name", "Currency", "Date", "Close", "High", "Low"]
    path = output_path or f"{symbol}_{name}.csv"
    df[cols].to_csv(path, index=False, encoding="utf-8-sig")
    print(f"已导出: {path},共 {len(df)} 条记录")

# 示例:导出平安银行
export_to_wealthsight("000001", "平安银行")

更多示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 导出多只股票
stocks = [
    ("000001", "平安银行"),
    ("600519", "贵州茅台"),
    ("000858", "五粮液"),
]
for code, name in stocks:
    export_to_wealthsight(code, name)

# 港股(需安装 akshare 港股扩展)
# df = ak.stock_hk_hist(symbol="00700", period="daily", adjust="qfq")

# 美股
# df = ak.stock_us_hist(symbol="AAPL", period="daily", adjust="qfq")

合并多个 CSV 文件(追加模式):

1
2
3
4
5
6
7
8
import glob
import pandas as pd

files = glob.glob("*_*.csv")  # 匹配 000001_平安银行.csv 等
dfs = [pd.read_csv(f) for f in files]
combined = pd.concat(dfs, ignore_index=True)
combined.to_csv("wealthsight_data.csv", index=False, encoding="utf-8-sig")
print(f"已合并 {len(files)} 个文件,共 {len(combined)} 条记录")

tushare

tushare Pro 是一个专业的金融数据平台,需注册获取 Token。

tushare 数据导出

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import tushare as ts

ts.set_token("你的Token")
pro = ts.pro_api()

df = pro.daily(ts_code="000001.SZ", start_date="20200101", end_date="20251231")
df = df.rename(columns={
    "ts_code": "SymbolCode",       # 显式提供 SymbolCode
    "trade_date": "Date",
    "close": "Close",
    "high": "High",
    "low": "Low"
})
df["SecurityCode"] = df["SymbolCode"].str[:6]
df["Date"] = pd.to_datetime(df["Date"]).dt.strftime("%Y-%m-%d")
df["Currency"] = "CNY"

cols = ["SymbolCode", "SecurityCode", "Currency", "Date", "Close", "High", "Low"]
df[cols].to_csv("tushare_data.csv", index=False, encoding="utf-8-sig")

通达信 / 同花顺

通达信和同花顺的数据导出功能通常生成包含 日期、开盘、最高、最低、收盘、成交量、成交额 的文本文件。

适配方法

  1. 从软件中导出历史日线数据(通常为 .txt.xls 格式)。
  2. 用 Excel 打开,在第一行前插入表头行,确保包含 日期收盘(或 收盘价)列。
  3. 添加 SecurityCodeName 列并填写对应值。
  4. 另存为 CSV(UTF-8 编码)。

插件会自动识别 日期 → Date、收盘/收盘价 → Close 等中文表头。

Yahoo Finance

使用 yfinance Python 库获取 Yahoo Finance 历史数据:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import yfinance as yf

def export_yahoo(symbol, name, currency, output_path=None):
    ticker = yf.Ticker(symbol)
    df = ticker.history(period="max")
    if df.empty:
        return

    df = df.reset_index()
    df = df.rename(columns={
        "Date": "Date", "Close": "Close",
        "High": "High", "Low": "Low"
    })
    df["SecurityCode"] = symbol
    df["Name"] = name
    df["Currency"] = currency
    df["Date"] = df["Date"].dt.strftime("%Y-%m-%d")

    cols = ["SecurityCode", "Name", "Currency", "Date", "Close", "High", "Low"]
    path = output_path or f"{symbol}.csv"
    df[cols].to_csv(path, index=False, encoding="utf-8-sig")
    print(f"已导出 {symbol}: {path},共 {len(df)} 条")

# 美股
export_yahoo("AAPL", "Apple Inc.", "USD")
# 港股(Yahoo 格式:00700.HK)
export_yahoo("0700.HK", "腾讯控股", "HKD")
# A 股(Yahoo 格式:000001.SZ)
export_yahoo("000001.SZ", "平安银行", "CNY")

东方财富 Choice

东方财富 Choice 数据终端导出的 CSV 通常包含 代码、名称、日期、收盘价、最高价、最低价 等列,插件可直接识别。

Wind 万得

Wind 导出的数据通常包含 wind_code 列,插件会自动映射为 SecurityCode,无需手动重命名。

自定义 / 手动整理

如果数据来源不在上述列表中,只需确保 CSV 包含 SecurityCodeNameDateClose 四列,即可正常使用。表头名称可以使用中文或英文,插件会自动识别。

数据更新

  • 插件启动时自动加载 CSV 文件。
  • 更新 CSV 文件后,插件会在后续搜索、取价、取历史时后台自动检查文件是否变化并热更新索引。
  • 自动检查有轻量节流,不会在每次查询都重复扫描文件;通常会在您修改文件后的下一次查询触发检查,并在短时间内完成后台重载。
  • 后台重载期间,WealthSight 会继续使用上一版已成功加载的数据;新索引构建成功后才会切换到最新文件内容。
  • 如果新文件存在格式错误或缺少必填列,自动重载会失败,但不会打断当前可用数据;可在插件状态中查看失败原因。
  • 如需立即生效,可在 插件管理 → LocalFile → 重新加载文件 手动刷新数据索引。
  • 建议配合定时脚本(如 cron / Windows 任务计划)定期重新生成 CSV 文件,再用插件的"重新加载"操作更新数据。

常见问题

插件显示"索引未就绪"

请检查:

  • CSV 文件路径是否正确。
  • 文件是否存在且可读。
  • 是否包含必填列(SecurityCode、Name、Date、Close);缺少任意一列都会导致重载失败。
  • 文件编码是否与设置一致(可尝试留空使用自动检测)。

我的 CSV 文件更新后,什么时候会被读取到

  • 插件不会持续监听文件系统,而是在您后续进行搜索、取价、取历史等操作时,顺带检查文件是否更新。
  • 一旦检测到文件修改,插件会在后台重建索引;重建成功后,新的查询结果就会使用最新文件内容。
  • 如果希望更新后立刻生效,而不是等下一次查询触发检查,请手动点击 重新加载文件
  • 如果文件很大,后台重载可能需要更长时间;在此期间,WealthSight 仍会继续使用上一版已成功加载的数据。

搜索不到标的

  • 确认 CSV 中该标的有至少一行有效的历史数据。
  • 搜索时优先输入 SecurityCode(如 000001)或 Name(如 平安银行);若 CSV 提供了 SymbolCode(如 000001.SZ),也可直接搜索。
  • 大小写不敏感,A 股代码和美股代码自动区分。

价格显示为空

  • 该标的在 CSV 中没有历史数据行,或 Close 列为空。
  • 插件返回的是 最新日期的收盘价,并非实时盘中价格。

如何合并多个 CSV 文件

如果从不同来源导出了多个 CSV,可以用 Python 脚本合并(见上文 akshare 节的合并示例),或手动将数据复制到同一个 CSV 中。插件支持多标的数据混合在同一个文件中。

支持的货币有哪些

插件本身不限制货币类型,CSV 中的 Currency 列可填任意标准货币代码(CNY、HKD、USD、EUR、GBP、JPY 等)。留空时不影响使用,但部分功能(如分币种筛选)会受限。

注意事项

  • 插件是 纯本地 的,不会向任何远程服务器发送数据。
  • A 股(6 位数字)、港股(1~5 位数字)、美股(纯字母)的代码格式天然不碰撞,无需额外区分。
  • 数据更新频率取决于您更新 CSV 文件的频率,建议配合数据获取脚本定期更新。
  • 历史数据不完整时,WealthSight 的分析功能可能会受到限制。
  • 本插件为官方维护,与其他社区插件一样,数据准确性由用户自行确认。

相关文档

没有找到您需要的内容?发邮件到 support@wealthsight.cn, 反馈时附上本页标题和软件版本号,可以帮助我们更快定位问题。

WealthSight 是本地投资档案工具,用于整合、查看与管理你个人的投资交易与持仓数据;不荐股、不预测行情、不承诺投资收益,帮助文档仅用于功能说明,不构成投资建议。