证券交易由于价格波动,在使用Gnucash做记录之前完全不清楚盈亏情况的。交易软件中一般显示的都是市值的盈亏,包括基金也是在不同的系统和平台里面,想统计年度的实现盈亏也是个头大的事情。
其实还有一种方式更为简化一些,那就是只记录一下期初的证券成本和资金账户余额,这样在期末时候通过实际余额来计算盈亏。但是对于证券投资的交易事项一开始也不是很确定该如何进行统计和记录。真的是赚是赔都靠直觉。特别是在分批买入和卖出操作时候。所以下面的方式是根据长期投资的原则比较适合我目前的情况的方式。
首先,因为工作原因不可能花时间去盯盘的,因此策略上采用选取绩优的企业以及行业或指数基金,在低估时候进行买入,而在相对估值偏高时候卖出,这样虽然不能有快速的增长,但是从长期的持有结果来看,也还可以,重要的是不花时间,风险较低。毕竟在职业上的提升和回报目前是更为稳健的方式。投资策略每个人的理解都有所差异吧,适合自己就好。
建立证券信息
一般不会同时持有太多的基金和股票,所以将确定需要持有和交易的股票和基金先添加到证券信息之中。操作为 工具-证券编辑器-添加。
比如,打算投资一个场内的指基510630 消费行业基金和一支股票000333美的集团。那么可以按照如下信息填写。
1full name: 消费行业
2symbol: 510630
3Display symbol: 消费行业
4Type: 场内基金
5
6full name: 美的集团
7Symbol: 000333.sz
8Display Symbol: 美的集团
9Type: 沪深A股
在代码后跟.sz 代表深圳市场 .ss代表上海市场,这个是Yahoo的命名规范。
在线更新价格
Gnucash支持在线更新股票价格,而市场也是涵盖了纽交所,纳斯达克和港股以及沪深A股。这是通过Perl的Finance::Quote CPAN来实现的,安装完GnuCash后在程序组里有一个GnuCash - 安装在线价格检索功能
的菜单,执行后会自动安装Perl(默认是StrawBerry Perl)和相应的Perl模块。
由于网速的问题可能会失败,多执行几次就可以。安装完后可以通过一下命令来测试一下。
1C:\Program Files (x86)\gnucash\bin>echo (yahoo_json "601990.ss") | perl gnc-fq-helper
2(("601990.ss" (symbol . "601990.ss") (gnc:time-no-zone . "2021-09-03 12:00:00") (last . #e10.69) (currency . "CNY")))
3
4或者
5
6C:\Program Files (x86)\gnucash\bin>perl gnc-fq-dump -v yahoo_json 601990.ss
7Finance::Quote fields Gnucash uses:
8 symbol: 601990.ss <=== required
9 date: 09/03/2021 <=== recommended
10 currency: CNY <=== required
11 last: 10.69 <=\
12 nav: <=== one of these
13 price: <=/
14 timezone: <=== optional
15
16All fields returned by Finance::Quote for stock 601990.ss
17
18stock field value
19----- ----- -----
20601990.ss close: 10.84
21601990.ss currency: CNY
22601990.ss date: 09/03/2021
23601990.ss div_yield: 1.1992619
24601990.ss eps: 0.266
25601990.ss exchange: Sourced from Yahoo Finance (as JSON)
26601990.ss high: 11.35
27601990.ss isodate: 2021-09-03
28601990.ss last: 10.69
29601990.ss low: 10.66
30601990.ss method: yahoo_json
31601990.ss name: 601990.ss (NANJING SECURITIES CO. LTD.)
32601990.ss open: 11.25
33601990.ss pe: 40.18797
34601990.ss success: 1
35601990.ss symbol: 601990.ss
36601990.ss type: EQUITY
37601990.ss volume: 80687600
38601990.ss year_range: 8.26 - 14.84
如果看到价格信息说明perl环境和模块安装成功。接着在菜单工具
, 证券编辑器
中选中报价来源信息中的获取在线报价
, 接着选择单栏
,价格源选择Yahoo as JSON
.
更新价格可以通过GUI和CMD 两种方式。
- GUI
菜单工具
,汇率数据库
中点击获取报价
。
- CMD
执行如下命令
1C:\Program Files (x86)\gnucash\bin>gnucash-cli.exe --quotes get "file://d:/Documents/accounts.gnucash"
2
3已找到 Finance::Quote 版本 1.51。
4
如果没有错误提示就说明执行成功,这样在投资组合中就可以看到最新的盈亏情况。
增加证券科目
在资产大类下的二级科目投资型货币资产下建立明细科目。选择科目类型为股票,然后在"Security/Currency"中选择建立好的股票信息,也可以在这里新建。
假设分别在1月买入通过50元每股的价格买入150股,然后在5月和7月分别以60和70的价格卖出。这中间会产生佣金和相应的税费。这部分如果金额低的话可以不单独计算,最后统一通过余额调整做一次的盈亏就可以。如果金额大,或则希望更真实的反映这部分的交易成本可以按照第一笔交易中将这部分计入到支出中。
当期末或者完全出售该股票后,可以通过菜单中的"操作" - “View lots” 来进行实现盈亏的计算。
进入lots界面,可以看到左下角中包含的历次交易记录,然后点击检查和修复科目后系统会自行计算并生成交易记录。由于系统并不知道盈亏的收益和亏损该计入哪个科目,所以会自动生成一个名为孤立的科目,手工调整为收入大类下的投资收益即可。这样该股票的交易就结束了。
报表
可以通过报表中的高级投资组合 来直观的查看期间的持仓和收益情况。(如果已经清仓则看不到,可以在损益表中直接查看以实现盈亏)
以消费基金为例。分别记录了三比交易。
11月以1.5价格买入1000份。
22月以1.8价格买入1000份。
37月以2.0价格卖出1500份,手续费10元。
上述交易记录到消费基金科目后,在报表-资产-中打开高级投资组合。可以看到实际盈亏情况和投资回报率。