本文通过用户与 AI 的对话,展示如何在 Trae IDE 中安装环境、配置项目,并利用 AI 开发和优化基于 AKShare 库的 ETF 实时行情脚本。内容包括 Trae IDE 安装、项目配置、脚本开发、问题修复及功能扩展。
前置条件
软件 :Anaconda 安装设置,详见我之前发布的文章
虚拟环境 :自定义环境名 AKTool,Python 3.11 + AKShare 库,详见我之前发布的文章
安装 Trae IDE
- 访问官方网站 :前往 www.trae.com.cn/home 下载 Trae IDE 安装包。
- 安装建议:不建议安装在系统盘(如 C 盘),推荐选择 D 盘或 E 盘以避免权限问题。
- 安装步骤:运行安装程序,按照提示完成安装,确保选择合适的安装路径。
项目设置
- 新建项目文件夹 :创建一个项目文件夹,例如
E:\PycharmProjects\PythonProject\AKTool
。 - 打开项目 :启动 Trae IDE,通过"文件 > 打开文件夹"选择
E:\PycharmProjects\PythonProject\AKTool
作为项目根目录。
新建配置文件
-
创建配置文件:
- 打开菜单"文件 > 使用配置文件新建窗口 > 创建配置文件"。
- 输入名称
AKTool
,点击"创建"。
-
添加项目文件夹:
- 在文件夹和工作区中添加项目文件夹
E:\PycharmProjects\PythonProject\AKTool
。
- 在文件夹和工作区中添加项目文件夹
-
配置内容:
- 点击"内容 > 设置",在侧边栏打开设置面板。
- 修改配置文件内容为:
- 点击"内容 > 设置",在侧边栏打开设置面板。
json
{
"workbench.colorTheme": "Deep Blue",
"python.condaPath": "E:\anaconda3\Scripts\conda.exe activate AKTool",
"python.defaultInterpreterPath": "E:\anaconda3\envs\AKTool"
}
- 按
Ctrl+S
保存。
初始需求:获取 ETF 实时行情
用户输入 :
根据接口说明文档,撰写一个获取所有ETF实时行情的脚本。 ETF基金实时行情-东财
接口: fund_etf_spot_em
目标地址: https://quote.eastmoney.com/center/gridlist.html#fund_etf
描述: 东方财富-ETF 实时行情
限量: 单次返回所有数据
输入参数
名称 类型 描述
输出参数
名称 类型 描述
代码 object -
名称 object -
最新价 float64 -
IOPV实时估值 float64 -
基金折价率 float64 注意单位: %
涨跌额 float64 -
涨跌幅 float64 注意单位: %
成交量 float64 -
成交额 float64 -
开盘价 float64 -
最高价 float64 -
最低价 float64 -
昨收 float64 -
换手率 float64 -
量比 float64 -
委比 float64 -
外盘 float64 -
内盘 float64 -
主力净流入-净额 float64 -
主力净流入-净占比 float64 -
超大单净流入-净额 float64 -
超大单净流入-净占比 float64 -
大单净流入-净额 float64 -
大单净流入-净占比 float64 -
中单净流入-净额 float64 -
中单净流入-净占比 float64 -
小单净流入-净额 float64 -
小单净流入-净占比 float64 -
现手 float64 -
买一 float64 -
卖一 float64 -
最新份额 float64 -
流通市值 int64 -
总市值 int64 -
数据日期 object -
更新时间 object -
接口示例
import akshare as ak
fund_etf_spot_em_df = ak.fund_etf_spot_em()
print(fund_etf_spot_em_df)
数据示例
markdown
代码 名称 ... 数据日期 更新时间
0 520890 港股通红利低波ETF ... 2024-12-26 2024-12-26 16:11:57+08:00
1 159331 红利港股ETF ... 2024-12-26 2024-12-26 15:34:48+08:00
2 159333 港股央企红利ETF ... 2024-12-26 2024-12-26 15:34:45+08:00
3 159583 通信设备ETF ... 2024-12-26 2024-12-26 15:35:03+08:00
4 515880 通信ETF ... 2024-12-26 2024-12-26 16:11:33+08:00
... ... ... ... ... ...
1005 561170 绿电50ETF ... 2024-12-26 2024-12-26 16:11:52+08:00
1006 562550 绿电ETF ... 2024-12-26 2024-12-26 16:11:39+08:00
1007 159301 公用事业ETF ... 2024-12-26 2024-12-26 15:34:36+08:00
1008 159611 电力ETF ... 2024-12-26 2024-12-26 15:34:12+08:00
1009 560580 电力ETF南方 ... 2024-12-26 2024-12-26 16:11:52+08:00
1010 rows x 37 columns
AI 回复 :
Trae CN 生成以下脚本,保存为 get_etf_spot.py
:
python
import akshare as ak
# 调用 fund_etf_spot_em 接口获取 ETF 实时行情数据
fund_etf_spot_em_df = ak.fund_etf_spot_em()
# 打印获取到的 ETF 实时行情数据
print(fund_etf_spot_em_df)
运行测试 :
在 Trae IDE 中,点击运行按钮执行脚本。注意控制台输出,确认环境配置成功,标志为:
(AKTool) PS E:\PycharmProjects\AKTool> & E:/anaconda3/envs/AKTool/python.exe e:/PycharmProjects/AKTool/get_etf_spot.py
功能扩展:保存数据到 CSV 文件
用户输入 :
增加将数据保存为 CSV 文件的功能。
AI 回复 :
Trae CN 修改脚本,加入 Pandas 的 to_csv
方法:
python
import akshare as ak
import pandas as pd
# 调用 fund_etf_spot_em 接口获取 ETF 实时行情数据
fund_etf_spot_em_df = ak.fund_etf_spot_em()
# 将数据保存到 CSV 文件
csv_file_path = 'etf_spot_data.csv'
fund_etf_spot_em_df.to_csv(csv_file_path, index=False)
# 打印获取到的 ETF 实时行情数据
print(fund_etf_spot_em_df)
print(f"数据已保存到 {csv_file_path}")
运行测试 :
点击运行按钮,检查控制台输出,确认环境标志:
(AKTool) PS E:\PycharmProjects\AKTool> & E:/anaconda3/envs/AKTool/python.exe e:/PycharmProjects/AKTool/get_etf_spot.py
问题修复:解决 CSV 中文乱码
用户输入 :
CSV 文件在 Excel 中打开时中文乱码。
AI 回复 :
Trae CN 修改脚本,设置 encoding='gbk'
:
python
import akshare as ak
import pandas as pd
# 调用 fund_etf_spot_em 接口获取 ETF 实时行情数据
fund_etf_spot_em_df = ak.fund_etf_spot_em()
# 将数据保存到 CSV 文件,指定编码为 gbk
csv_file_path = 'etf_spot_data.csv'
fund_etf_spot_em_df.to_csv(csv_file_path, index=False, encoding='gbk')
# 打印获取到的 ETF 实时行情数据
print(fund_etf_spot_em_df)
print(f"数据已保存到 {csv_file_path}")
运行测试 :
点击运行按钮,确认控制台环境标志:
(AKTool) PS E:\PycharmProjects\AKTool> & E:/anaconda3/envs/AKTool/python.exe e:/PycharmProjects/AKTool/get_etf_spot.py
进一步优化:动态文件名与子目录保存
用户输入:\
- 保存 CSV 到"数据导出"子目录。
- 文件名改为
ETF行情导出_日期时间
,以"更新时间"列最后值为准。
AI 回复 :
Trae CN 生成优化脚本:
ini
import akshare as ak
import pandas as pd
import os
from datetime import datetime
# 调用 fund_etf_spot_em 接口获取 ETF 实时行情数据
fund_etf_spot_em_df = ak.fund_etf_spot_em()
# 获取更新时间列的最后一个时间
last_update_time = fund_etf_spot_em_df['更新时间'].iloc[-1]
# 将时间字符串转换为 datetime 对象
last_update_datetime = pd.to_datetime(last_update_time).to_pydatetime()
# 格式化日期时间
formatted_time = last_update_datetime.strftime("%Y%m%d%H%M%S")
# 定义子目录
sub_dir = '数据导出'
# 检查子目录是否存在,如果不存在则创建
if not os.path.exists(sub_dir):
os.makedirs(sub_dir)
# 构建完整的 CSV 文件路径
csv_file_name = f"ETF行情导出_{formatted_time}.csv"
csv_file_path = os.path.join(sub_dir, csv_file_name)
# 将数据保存到 CSV 文件,指定编码为 gbk
fund_etf_spot_em_df.to_csv(csv_file_path, index=False, encoding='gbk')
# 打印获取到的 ETF 实时行情数据
print(fund_etf_spot_em_df)
print(f"数据已保存到 {csv_file_path}")
运行测试 :
点击运行按钮,确认控制台环境标志:
(AKTool) PS E:\PycharmProjects\AKTool> & E:/anaconda3/envs/AKTool/python.exe e:/PycharmProjects/AKTool/get_etf_spot.py
总结
本教程展示了如何通过 Trae IDE 和 AI 协作,开发基于 AKShare 的金融数据脚本。主要经验包括:
- 配置 IDE 与测试环境:通过 Trae IDE 配置 Anaconda 虚拟环境(AKTool),确保脚本运行稳定,控制台标志确认环境正确性。
- 小步迭代与充分测试:从基础数据获取到 CSV 导出、乱码修复、动态文件名,每次功能更新后都进行运行测试,用户反馈驱动快速优化。
- 高效开发流程:Trae IDE 的简洁界面结合 AI 的智能代码生成,让初学者也能快速上手,完成复杂金融数据任务。