Rock Sun
Ai invest

使用AI编程来投资 - 准备环境

使用 AI 编写自己的投资工具

今年是A股一个难得的小牛市,突破了十年的高点,市场上又诞生了不少专业投资者。最近一个非 IT 背景的朋友想用程序辅助自己的投资工作,我们做了一些沟通后,我发现他的需求用几句程序就可以实现。但是,没有编程经验的人,搭建一个可以运行程序的环境并不容易,而且他也一定有一些琐碎的其他需求,这些程序要发挥作用,也必须和他自己的工作流程结合起来。

此外,我觉得氛围编程已经发展到如此强大,没有编程经验的人完全享受不到,实在是太可惜了。因此,我决定编写一系列文章,帮助圈外人也可以用氛围编程来实现自己的目标,例如辅助投资。

工具选型

市场上最流行的开发工具是 Visual Studio Code,简称 VS Code 或 VSCode。 VS Code 本身已经集成了 GitHub Copilot,具备了 AI 编程的能力。其实我感觉 GitHub Copilot 的效果不错,处理简单问题非常的高效,而且与 VSCode 的许多功能紧密结合,能够直接完成一些 VSCode 的操作。不过,免费账号的模型比较弱,额度也比较少,国内使用也容易遇到网络问题。

还有许多专门的 AI IDE,例如比较流行的商业产品 Windsurf 和 Cursor,这些工具基于 VSCode,提供了更加强大的能力。但是费用比较高,在国内使用也会遇到比较麻烦的各种问题。

本文的目标群体并非技术人员,所以应该避免许多潜在的问题,所以我选择目前国内宣传的比较多,我自己也是用过的 Trae 中国版。海外的朋友也可以选择国际版

编程语言自然还是选择 Python,因为够简单,有许多 AI 相关的库和工具。

安装 Trae

大家还是用 Windows 的多。我们到 Trae 中国版的官方网站,下载最新的Windows 安装包。官网地址:

安装过程非常简单,就像一般的 Windows 安装程序一样。不需要什么额外的设置,安装后双击 Trae CN 图标,就可以看到 Trae 界面:

alt text

这时候,为了使用完整的功能,需要点击登录按钮:

alt text

大家可以手机号注册登录,也可以选择使用掘金账号登录。根据提示登录后,可以看到 Trae 界面中右侧变成了聊天窗口,你可以像使用 AI 聊天那样展开对话:

alt text

安装 Python

Python 是 AI 时代最通用的编程语言,突出的优点是简单,同时它非常的灵活,不过灵活的另一面是可能不太严谨。虽然本文的读者可能不是专业人士,但是按照我的经验来看,好的习惯会给大家带来许多好处,所以还是要追求一定程度的严谨。

Python 目前的大版本是 3,存在许多次级版本,例如 3.10, 3.11, 3.12, 3.13 等等。理论上在较旧的版本中可以运行的程序,也能在较新的版本上运行。例如,3.10 上可以运行的程序,应该可以在 3.13 上运行。不过,在实践中,有一些复杂的应用基于某个 Python 版本开发,但却没法在较新的(尤其是最新的)版本中运行。因此,我们也一般不会选择最新的 Python,在这个系列文章中,我们选择 3.12 版本。

大家,可以到 Python 官网下载 Windows 的 Windows 安装包版本,下载地址是:

本文写作时, 3.12 的最新小版本是 10。阅读本文时,可能有更新的小版本,没有关系,尽管选择,不会影响后续的学习。

下载之后双击,按照提示安装即可。

安装完成后,我们需要在命令行窗口验证安装是否成功。

命令行是早期计算机以及现在许多服务器管理的主要方式,在现在的 Windows 10/11 中依然存在,而且有两个,分别是 CMD 和 PowerShell。

命令行方式对我们来说很重要,命令行是我们与程序之间沟通的重要方式。大家可能习惯了 Windows 或者手机上这种图形化的操作方式,但实际上,当我们自己编写小工具时,或者组织复杂的程序工作流程时,命令行是更快捷的方式。

在 Windows 桌面中同时按下 Windows + r 键,在出现的窗口上输入 cmd

alt text

然后回车,就出现了一个命令窗口:

alt text

然后输入 python --version

C:\Users\sdj21>python --version
Python 3.12.10

C:\Users\sdj21>

如果像上面一样出现 3.12.10 ,那说明 Python 已经安装成功了。

刚才的命令行窗口不要关,我们还需要安装一个 Python 的依赖和环境管理工具 uvuv 有许多安装方式,在国内有一些方式会遇到问题,我们选择一个不太容易出问题的方式,在刚才的命令行窗口输入 pip install uv -i https://mirror.nju.edu.cn/pypi/web/simple

C:\Users\sdj21>pip install uv -i https://mirror.nju.edu.cn/pypi/web/simple/
Looking in indexes: https://mirror.nju.edu.cn/pypi/web/simple/
Collecting uv
  Downloading https://mirror.nju.edu.cn/pypi/web/packages/5f/9c/50ad29d3697bb85ba09e47d2d3ebf7ef694320c8054c2513f641782da96e/uv-0.8.20-py3-none-win_amd64.whl (21.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 50.4 MB/s eta 0:00:00
Installing collected packages: uv
Successfully installed uv-0.8.20

C:\Users\sdj21>uv --version
uv 0.8.20 (3e6fd0b77 2025-09-22)

C:\Users\sdj21>

可以看到我又执行了一个 uv --version,提示是 0.8.20 ,说明 uv 也安装成功了。

开始开发

如果 Trae 没开,请打开,然后点选 文件 -> 打开文件夹,然后选择 D:\projects\rocksun\hello-invest:

alt text

你也可以选择其他目录,但是请注意几点。文件夹和文件夹的父文件夹,名称都是英文小写、没有大写、没有中文、也没有空格、也没有其他特殊字符,这是一个非常好的习惯,可以避免许多问题;其次,这个目录是空的,因为我们将要在这里开一个新的 Python 项目。

保持在 Trae 的窗口,按下 Ctrl+` ,请注意这个点是键盘 tab 上方的那个键。按下之后会在 Trae 界面的下方出现命令行(终端)窗口:

alt text

窗口提示符前面的 PS,表明这是一个 PowerShell 命令行窗口,与之前我们用的 CMD 不太一样,不过这里不用太在意,Trae 也可以启动 CMD 窗口,在本文中没有太大的区别。

在命令行窗口输入 uv inituv sync

alt text

可以看到 uv init 创建了一个 python 项目,包括一个项目配置文件 pyproject.toml,还有一个 main.py 文件;而 uv sync 创建了一个 Python 虚拟环境。

什么是 “Python 虚拟环境”,我觉得 AI 时代我都不需要做过多的解释。直接在 Trae 右侧的窗口中提问就行。

现在就可以运行我们的 Python 程序了,还是在这个命令行(终端)窗口,输入 uv run .\main.py

PS D:\projects\rocksun\hello-invest> uv run .\main.py
Hello from hello-invest!
PS D:\projects\rocksun\hello-invest>

下面我们做一点与 A 股投资相关的开发了。

还记得我们之前安装 uv 时执行的命令吗?

pip install uv -i https://mirror.nju.edu.cn/pypi/web/simple/

其实也可以不用加 -i https://mirror.nju.edu.cn/pypi/web/simple/,但是如果不加这个参数,我们的安装过程会非常慢,通过 -i 参数,我们使用国内的一个镜像,所以可以快速地安装 uv。

我们自然希望后面安装其他 Python 工具和库的时候可以更快一点,所以我们修改 pyproject.toml 文件,在最后增加:

[tool.uv]
index-url = "https://mirror.nju.edu.cn/pypi/web/simple/"

然后,注意一定要保存 pyproject.toml 文件,这个快捷键应该知道吧?

然后光标回到命令行(终端)窗口,我们输入 uv add adata

PS D:\projects\rocksun\hello-invest> uv add adata
Resolved 17 packages in 2.72s
Prepared 16 packages in 4.35s
░░░░░░░░░░░░░░░░░░░░ [0/16] Installing wheels...                                                                                                             warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
         If the cache and target directories are on different filesystems, hardlinking may not be supported.
         If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warning.
Installed 16 packages in 1.13s
 + adata==2.9.4
 + beautifulsoup4==4.13.5
 + certifi==2025.8.3
 + charset-normalizer==3.4.3
 + idna==3.10
 + numpy==2.3.3
 + pandas==2.3.2
 + py-mini-racer==0.6.0
 + python-dateutil==2.9.0.post0
 + pytz==2025.2
 + requests==2.32.5
 + six==1.17.0
 + soupsieve==2.8
 + typing-extensions==4.15.0
 + tzdata==2025.2
 + urllib3==2.5.0
PS D:\projects\rocksun\hello-invest>

看到上面的提示,应该已经安装完成了,打开 main.py,把内容替换为:

import adata

def main():
    df = adata.stock.market.get_capital_flow('300120','2025-09-22', '2025-09-23')
    print(df)


if __name__ == "__main__":
    main()

然后再到命令行(终端)窗口,输入 uv run .\main.py

PS D:\projects\rocksun\hello-invest> uv run .\main.py
    stock_code  trade_date  main_net_inflow  sm_net_inflow  mid_net_inflow  lg_net_inflow  max_net_inflow
119     300120  2025-09-22       75574876.0    -50632484.0     -24942394.0     28871932.0      46702944.0
120     300120  2025-09-23       25850263.0     -9365297.0     -16484966.0     11015327.0      14834936.0
PS D:\projects\rocksun\hello-invest>

我们得到这个股票这两天的资金流水信息。

更进一步

讲到这里,其实聪明的小伙伴就可以自己搞氛围编程了,其实这个系列文章如果要继续,也是会通过氛围编程实现。还记得 Trae 界面上右侧的聊天窗口吗?那个 @Chat 是可以点的,换成 @Builder ,然后写上你想实现的功能,看看 AI 能不能帮你完成?