该工具允许您将多个交易导出 (CSV) 转换为 Ghostfolio 可以读取的导入文件。目前支持:
比特瓦沃
布克斯
德吉罗
e投睿
芬兰养老金
自由贸易
盈透证券(IBKR)
投资性
镶木地板
荷兰合作银行
革命
施瓦布
瑞讯银行
交易 212
XTB
您的经纪人不在名单中吗?请随意创建一个问题,或者更好的是,您自己构建它并创建拉取请求!有关更多信息,请参阅贡献。
请参阅下面每个受支持经纪商的交易导出说明。
登录您的 Bitvavo 帐户并单击右上角您的姓名。接下来,点击“交易历史记录”。单击 处的蓝色“导出”按钮以创建导出。选择 CSv 选项之一,然后再次单击“导出”。
打开应用程序并转到“帐户价值”,然后“查看历史记录”。单击右上角的下载图标可下载您的交易历史记录。导出的内容将发送到您的电子邮件地址。
由于 BUX 的限制,您每天最多可以请求 3 个 CSV 导出! 。
登录您的 DEGIRO 帐户并创建导出文件(通过“收件箱”>“帐户概览”,见下图)。选择您想要导出历史记录的时间段,然后单击下载。
登录您的 eToro 账户并导航至“投资组合”。然后在顶部菜单中选择“历史记录”。接下来,单击最右侧的图标并选择“帐户对账单”。选择感兴趣的日期并单击“创建”。在下一页上,单击右上角的 Excel 图标下载文件。下载后,在 Excel 中打开文件并删除除“帐户活动”选项卡之外的所有选项卡。然后使用 Excel 将文件转换为 CSV。
登录您的 Finpension 帐户。从登陆页面选择您的投资组合。然后在屏幕右侧选择“交易”,在下一页右侧注意“交易报告(CSV 文件)”,然后单击通过电子邮件发送或单击本地下载。
打开自由贸易应用程序。从左上角“投资组合”标题下的选项中选择您的投资组合。从屏幕底部的图标列表中选择“活动”。选择右上角的共享图标,然后按照屏幕上的说明进行操作。
登录您的盈透证券账户。导航至“帐户管理”,然后单击侧栏中的“报告”。接下来,单击“报告”部分中的“Flex Queries”选项卡。在 Flex“查询部分”中,单击右侧的加号 (+) 图标以创建新的 Flex 查询。为交易创建一个新的灵活查询,为股息创建另一个灵活查询。将导出格式设置为“CSV”。请参阅图像下方所需的列。
对于交易,选择“交易”。然后选择以下属性: Buy/Sell, TradeDate, ISIN, Quantity, TradePrice, TradeMoney, CurrencyPrimary, IBCommission, IBCommissionCurrency
。
对于股息,选择“现金交易”。然后选择以下属性: Type, SettleDate, ISIN, Description, Amount, CurrencyPrimary
。
登录您的投资账户并点击“订单每日日志”。选择帐户和所需的时间段,然后单击刷新按钮。交易应该出现,然后单击下载按钮。
登录 Parquet 并导航至“活动”部分(德语为“Aktivitäten”)。在右上角绿色的“Neue Aktivität”按钮旁边,您会看到“下载为 CSV”选项(德语为“导出 CSV”)。单击此按钮可下载包含您所有活动的 CSV 文件。
登录荷兰合作银行并导航到您的投资。导航至“交易和合同票据”(Mutaties & Nota's)。在顶部选择您要导出的范围。然后滚动到页面底部并单击“导出为.csv”
打开 Revolut 应用程序并打开“投资”选项卡。按“更多”按钮,然后选择“文档”。选择您的投资账户,然后选择第一个选项“账户对账单”。选择“Excel”选项并选择日期范围。然后下载该文件并将其保存在您的设备上。将文件从.xlsx
转换为.csv
。将分隔符设置为,
(逗号)!
登录您的嘉信理财账户。转到“帐户”,然后转到“历史记录”。选择您要从中下载详细信息的帐户。选择“日期范围”并选择“导出”(csv)。保存文件。
登录您的瑞讯账户。从栏菜单中单击“交易”。选择所需的时间段和类型,然后选择右侧的“导出 CSV”按钮。
登录您的 Trading 212 帐户并创建导出文件(通过“历史记录”>“下载”图标)。选择您想要导出历史记录的时间段,然后单击下载。
登录您的 XTB 帐户,然后从顶部栏中单击“帐户历史记录”,然后单击“现金操作”。单击“导出按钮”。选择您要导出历史记录的时间段,选择报告类型“现金业务”,选择文件格式“csv”,然后单击“导出报告”按钮。
您可以通过克隆此存储库在本地计算机上运行该工具。您还可以在 Docker 容器内运行该工具。请参阅下面的运行时特定说明。
要运行 Docker 容器,您需要在计算机上安装 Docker。该镜像已发布到 Docker Hub。
与该工具的本地运行版本相反,容器化版本尝试通过查看文件内的标题行来确定要处理的文件类型。因此无需指定使用哪个转换器。
然后您可以运行该图像,如下所示:
docker run --rm -v {local_in-folder}:/var/tmp/e2g-input -v {local_out_folder}:/var/tmp/e2g-output --env GHOSTFOLIO_ACCOUNT_ID=xxxxxxx dickwolff/export-to-ghostfolio
可以将以下参数传递给 Docker run 命令。
命令 | 选修的 | 描述 |
---|---|---|
-v {local_in-folder}:/var/tmp/e2g-input | 氮 | 放置要处理的文件的输入文件夹 |
-v {local_out_folder}:/var/tmp/e2g-output | 氮 | 将放置 Ghostfolio 导入 JSON 的输出文件夹。当处理文件时发生错误时,输入文件也会移至此处。 |
-v {local_cache_folder}:/var/tmp/e2g-cache | 是 | 将缓存雅虎财经符号的文件夹 |
--env GHOSTFOLIO_ACCOUNT_ID=xxxxxxx | 氮 | 您的 Ghostolio 帐户 ID 1 |
--env USE_POLLING=true | 是 | 当设置为 true 时,容器将不断寻找新文件来处理,并且容器不会停止。 |
--env DEBUG_LOGGING=true | 是 | 当设置为 true 时,容器将显示更详细的日志,这对于错误跟踪很有用。 |
--env PURGE_CACHE=true | 是 | 当设置为 true 时,文件缓存将在启动时被清除。 |
--env GHOSTFOLIO_VALIDATE=true | 是 | 设置为 true 时,该工具会自动根据 Ghostfolio 验证生成的文件。 |
--env GHOSTFOLIO_IMPORT=true | 是 | 当设置为 true 时,该工具将尝试自动将生成的文件导入 Ghostfolio。 |
--env GHOSTFOLIO_URL=http://xxxxxxx | 是 | 本地Ghostfolio 实例的端点。例如http://192.168.1.15:3333 。仅与本地 Ghostfolio 实例一起使用! |
--env GHOSTFOLIO_SECRET=xxxxxxx | 是 | 您的 Ghostfolio 用户的凭据。用于通过import API 端点进行身份验证。仅与本地 Ghostfolio 实例一起使用! |
如果您希望使用隔离的 docker 环境运行,在该环境中您可以完全控制映像,因此可以相信它只包含预期的内容,请使用此选项。
将此存储库克隆到您的系统,然后运行:
docker build -t 导出到 Ghostfolio .docker run --rm -v {local_in-folder}:/var/tmp/e2g-input -v {local_out_folder}:/var/tmp/e2g-output --env GHOSTFOLIO_ACCOUNT_ID= xxxxxxx -t 导出到 Ghostfolio
您可以使用与上面相同的选项在 Dockerhub 上使用镜像
该工具使用cacache
将从 Yahoo Finance 检索到的数据存储在容器内。这样,雅虎财经的负载就会减少,并且该工具应该运行得更快。缓存的数据存储在容器内的/var/tmp/e2g-cache
中。如果您觉得需要使缓存失效,可以通过在运行命令中添加--env PURGE_CACHE=true
来实现。这将在容器启动时清除缓存,并且该工具将在下次必须从雅虎财经检索数据时重新创建缓存。
该工具要求您安装最新的 LTS 版本的 Node,您可以在此处下载。该工具可以在任何可以安装 Node.js 的操作系统上运行。
接下来,将存储库克隆到本地计算机并使用您选择的编辑器(例如 Visual Studio Code)打开。
运行npm install
以安装所有必需的软件包。
该存储库包含一个示例.env
文件。将其从.env.sample
重命名。
将导出文件路径放入INPUT_FILE
变量中。这必须与项目的根相关。
将 Ghostfolio 帐户名称放入GHOSTFOLIO_ACCOUNT_ID
中您希望交易结束的位置
可以通过转至帐户 > 选择您的帐户并从 URL 复制 ID 来检索此信息
您也可以选择将GHOSTFOLIO_UPDATE_CASH
变量设置为TRUE
以便在处理活动后自动更新您的 Ghostfolio 帐户现金余额。
您可以选择通过将DEBUG_LOGGING
变量设置为TRUE
来启用调试日志记录。
您现在可以运行npm run start [exporttype]
。请参阅下面的运行命令表。该工具将打开您的导出并将其转换。它检索 YAHOO Finance 支持的符号(例如,对于ASML
等欧洲股票,它将通过相应的 ISIN 检索ASML.AS
)。
出口商 | 运行命令 |
---|---|
比特瓦沃 | run start bitvavo (或bv ) |
布克斯 | run start bux |
德吉罗 | run start degiro |
e投睿 | run start etoro |
芬兰养老金 | run start finpension (或fp ) |
自由贸易 | run start freetrade (或ft ) |
IBKR | run start ibkr |
投资性 | run start investimental |
镶木地板 | run start pareqt |
荷兰合作银行 | run start rabobank |
革命 | run start revolut |
施瓦布 | run start schwab |
瑞讯银行 | run start swissquote (或sq ) |
交易 212 | run start trading212 (或t212 ) |
XTB | run start xtb |
该工具使用cacache
将从雅虎财经检索到的数据存储在磁盘上。这样,雅虎财经的负载就会减少,并且该工具应该运行得更快。缓存的数据存储在/var/tmp/e2g-cache
中。如果您觉得需要使缓存失效,可以通过删除文件夹来实现,该工具将在您下次运行时重新创建缓存。
现在可以通过转到“Portfolio”>“Activities”并按表格右上角的 3 个点,将导出文件导入 Ghostfolio 中。从 Ghostfolio 1.221.0 开始,您现在可以预览导入并验证数据是否已正确转换。如果您满意,请按导入将活动添加到您的投资组合中。
有一个实验性功能(自 0.12.0 起),您可以使用该功能自动验证生成的文件并将其导入 Ghostfolio!要使用它,请设置相应的环境变量:
多变的 | 描述 |
---|---|
--env GHOSTFOLIO_VALIDATE=true | 设置为 true 时,该工具会自动根据 Ghostfolio 验证生成的文件。 |
--env GHOSTFOLIO_IMPORT=true | 当设置为 true 时,该工具将尝试自动将生成的文件导入 Ghostfolio。 |
--env GHOSTFOLIO_URL=http://xxxxxxx | 本地Ghostfolio 实例的端点。例如http://192.168.1.15:3333 。仅与本地 Ghostfolio 实例一起使用! |
--env GHOSTFOLIO_SECRET=xxxxxxx | 您的 Ghostfolio 用户的凭据。用于通过import API 端点进行身份验证。仅与本地 Ghostfolio 实例一起使用! |
我们欢迎对存储库的任何贡献。请随意创建一个问题,或者更好的是,您自己构建它并创建拉取请求!
该工具可以通过两种方式运行:手动运行和通过 Docker 运行。该工具的两个入口点都可以在“src/”文件夹中找到。该工具在测试中使用模拟,这使得测试能够以一致且可重复的方式运行。这样就不需要雅虎财经服务了。添加模拟是因为测试运行之间的不一致以及雅虎财经的速率限制问题(多次连续运行,尤其是在本地运行时)。
每当您添加新转换器或为现有转换器创建修复程序时,请参阅 Wiki 以获取有关如何使用测试数据扩展模拟的说明。
您可以通过转至帐户 > 编辑您的帐户并复制帐户 ID 字段来检索 Ghostfolio 帐户 ID ↩