我在 2018 年的时候第一次买基金,但那年基本上是一直买一直跌,到了 2019 年,买的几个指数基金回本后就清仓了,结果 2019 年就涨了好多,只是和我没关系了。

今年再一次决定买点基金作为长期投资,毕竟还算新手,使用的最简单的策略,觉得当天的价位较低时买入一点,大涨就不管了。但是上班时经常忘记去看盘,想起来的时候就过了下午 3 点了,前几天突然想起来可以用 GitHub Action 来每天定时执行比价,也省的自己投入精力就看涨跌,于是就花了几个小时,做了这个服务。

GitHub Action 是 GitHub 于 2018 年推出的持续集成服务,之前读过阮一峰老师的一篇GitHub Actions 教程:定时发送天气邮件,当时觉得邮件通知还是不够及时,而且我那段时间也没在买基金,所以就没往这方面想。

Bark

对于我来说,更及时的通知就是手机系统的推送了,但一方面我没有自己的苹果开发者账号,另一方面开发一个 App 用于接收通知也需要浪费一些时间。前段时间就正好知道了一个App,叫 Bark,可以在 App Store 下载。这个 App 只有一个功能,就是接收并保存推送通知,而我要做的只是调用一个 HTTP 请求。

Shell

有了 GitHub Action 和 Bark,接下来就是写点代码了,先看一下我的目录结构:

.github/workflows/judgment.yml
jedgment.sh
001549.json
001548.json
001593.json

下面的这 3 个 json 文件代表了三个基金,里面定义了各自基金的基本信息(基金名称、基金代码、持仓成本价)。.github/workflows/judgment.yml是 GitHub Action 的配置文件,这个文件中的定义了任务的执行时机及执行步骤。其中一个步骤就是执行jedgment.sh,这个脚本文件是唯一的一个代码文件,里面的代码也很简单,会依次读取下面的 json 文件中的基金信息,然后将自己的持仓成本价和实时的净值估算进行比较,得出购买结论后,调用 Bark 的接口像自己的手机发送推送。

涉及到的代码很简单,可以在GitHub查看完整代码。