Zh-hans/在线报价
(此页面有部分代码块被错误翻译,请打开英语原文比对查看,谢谢)
GnuCash 可以自动检索有价证券等的当前价值(例如股票,共同基金,货币汇率),称为报价,因此您无需手动更新GnuCash价格数据库中这些证券的价格。如果您跟踪的是少数几种证券的价格,则此功能可节省大量时间。
Contents
概述
GnuCash将 投资 的股票 价格 存储 在各自的购买/出售/拆分 交易中, 并 在内部价格数据库中存储 其他 报价 。 尽管可以将价格手动输入价格数据库,但从在线资源更新价格更为方便。 GnuCash使用以 Perl 编程语言 编写的外部程序, 称为 Finance :: Quote (通常简称为F :: Q ),以在线获取这些报价。 因此,要使GnuCash的此功能正常工作,您的计算机将需要安装一些额外的软件,而不仅仅是GnuCash应用程序本身,并需要具有活动的Internet连接。 ' [1] [2] '
关于财务::报价
该 财务::报价 的Perl模块在管理
- GitHub上 ,
- CPAN (均为最近发布),以及
- SourceForge ,
- SourceForge (希望已过时,最新消息:2015年8月22日发布1.38版)。
由于Finance :: Quote软件不是GnuCash的一部分,如果您认为自己在Finance :: Quote模块中发现了一个错误,那么GnuCash开发人员可能无法为您解决问题。 相反,您应该通过以下 bugtrackers 直接向Finance :: Quote开发人员报告问题 :
* https://rt.cpan.org/Public/Dist/Display.html?Status=Active&Name=Finance-Quote 是旧的跟踪器
但是,请务必确信问题确实出在Finance :: Quote软件上,而不是其他地方(例如,您的Internet连接现在可能现在断开了吗?),然后再向Finance :: Quote开发人员提交错误报告。
Finance :: Quote软件从世界各地的几个网站收集价格数据,这些网站以不同的方式提供此信息。 一些消息来源提供
- JSON 或YQL之 类 的 API , ' '
- ' 通常以 CSV 文件的形式'下载 s, 最后,
- 通过从网页本身中提取信息来实现字面上的理解。
由于这些来源经常变化,因此我们建议您保持Finance :: Quote为最新。 (有关说明,请参见下文。)
在GnuCash中设置在线报价
该 GnuCash的指南 包括 说明书 上设立网上报价。 该设置过程为Finance :: Quote提供了输入,因此必须在GnuCash价格数据库中的“获取报价”按钮生效之前完成它。
- 重要的
- 该符号取决于来源:
$ gnc-fq-dump yahoo_json M&M.NS [1] 1732 If 'M.NS' is not a typo you can use command-not-found to lookup the package that contains it, like this: cnf M.NS user@host:$ Finance::Quote fields Gnucash uses: symbol: M <=== required date: 08/17/2020 <=== recommended currency: USD <=== required last: 7.15 <=\ nav: <=== one of these price: <=/ timezone: <=== optional
- 您的命令外壳会解释一些特殊的字符:
$ gnc-fq-dump yahoo_json M和M.NS [1] 1732 如果“ M.NS”不是拼写错误,则可以使用command-not-found查找包含它的软件包,如下所示: cnf M.NS user @ host:$ Finance :: Quote字段Gnucash使用: 符号:M <===必需 日期: 08/17/2020 推荐 货币:USD <===必需 最后一位:7.15 <= \ 导航:< ===这些 价格之一:<= / 时区:<===可选
通过反斜杠转义可返回M的结果
$ gnc-fq-dump -v yahoo_json M\&M.NS Finance::Quote fields Gnucash uses: symbol: M&M.NS <=== required date: 08/17/2020 <=== recommended currency: USD <=== required last: 7.15 <=\ nav: <=== one of these price: <=/ timezone: <=== optional All fields returned by Finance::Quote for stock M&M.NS 股票 field value ----- ----- ----- M&M.NS close: 7.19 M&M.NS currency: USD M&M.NS date: 08/17/2020 M&M.NS div_yield: 21.001391 M&M.NS eps: -10.174 M&M.NS exchange: Sourced from Yahoo Finance (as JSON) M&M.NS high: 7.3 M&M.NS isodate: 2020-08-17 M&M.NS last: 7.15 M&M.NS low: 6.82 M&M.NS method: yahoo_json M&M.NS name: M&M.NS (Macy's Inc) M&M.NS open: 7.21 Use of uninitialized value in printf at /usr/local/bin/gnc-fq-dump line 138. M&M.NS pe: M&M.NS success: 1 M&M.NS symbol: M&M.NS M&M.NS type: EQUITY M&M.NS volume: 22877920 M&M.NS year_range: 4.38 - 18.57
但 百分比编码 可获得正确的结果
$ gnc-fq-dump -v yahoo_json 'M%26M.NS' Finance::Quote fields Gnucash uses: symbol: M%26M.NS <=== required date: 08/18/2020 <=== recommended currency: INR <=== required last: 626.6 <=\ nav: <=== one of these price: <=/ timezone: <=== optional All fields returned by Finance::Quote for stock M%26M.NS stock field value ----- ----- ----- M%26M.NS close: 623.6 M%26M.NS currency: INR M%26M.NS date: 08/18/2020 M%26M.NS div_yield: 0 Use of uninitialized value in printf at /usr/local/bin/gnc-fq-dump line 138. M%26M.NS eps: M%26M.NS exchange: Sourced from Yahoo Finance (as JSON) M%26M.NS high: 632.75 M%26M.NS isodate: 2020-08-18 M%26M.NS last: 627.5 M%26M.NS low: 623.8 M%26M.NS method: yahoo_json M%26M.NS name: M%26M.NS (MAHINDRA &MAHINDRA) M%26M.NS open: 625 Use of uninitialized value in printf at /usr/local/bin/gnc-fq-dump line 138. M%26M.NS pe: M%26M.NS success: 1 M%26M.NS symbol: M%26M.NS M%26M.NS type: EQUITY M%26M.NS volume: 962990 M%26M.NS year_range: 245.4 - 648.6
- 该符号取决于来源:
再一次,Finance :: Quote 在GnuCash外部。 因此,要使其正常运行,您需要在GnuCash本身之外安装一些附加组件。 这包括Perl语言解释器本身,Finance :: Quote模块以及此软件所需的任何依赖项。 有时,您可能需要与GnuCash分开更新Finance :: Quote软件模块(有时,还需要更新Perl解释器)。
为了简化此更新过程,GnuCash开发人员提供了一些帮助程序脚本。
辅助脚本
为方便起见,我们提供了一些帮助程序,旨在简化您安装Finance :: Quote软件模块时的安装,更新和诊断问题。 这些程序的名称以 gnc-fq- *
开头 ,它们本身是用Perl编程语言编写的。
- Microsoft Windows用户运行诸如
gnc-fq-check之
类的perl脚本的注意事项 - 虽然 unixoid 操作系统使用 shebang (
#!
)将perl脚本与Perl解释器相关联,但其他操作系统(例如Windows)将失败,C:\> gnc-fq-check 无法将gnc-fq-check识别为内部或外部命令,可操作程序或批处理文件
因此,请使用以下命令:
- 打开命令行窗口:
- Windows 10(不在平板电脑模式下)
- 单击 “开始”按钮右侧的 “ Cortana
问我任何问题”
字段,开始输入cmd
,应会出现一个搜索菜单。 菜单应显示Command Prompt
。 左键单击或点击“命令提示符”图标
。 - Windows 8(或平板电脑模式下的Windows 10)
- 在“开始”屏幕上,开始输入
cmd
,应该会出现一个搜索菜单。 菜单应显示Command Prompt
。 左键单击或点击“命令提示符”图标
。 - Windows 7的
- 单击“
开始”
按钮, 在“搜索程序和文件”
字段中 键入cmd
,然后按Enter
- Windows XP
- 单击“
开始”
按钮,“所有程序”
,“附件”
,“命令提示符”
- 如果尚不是当前驱动器,请切换到包含GnuCash程序文件的驱动器(通常为C驱动器):
C :
- 转到包含必需的gnc-fq-xxx perl脚本的... \ gnucash \ bin目录:
- Windows 32位版本
cd \ Program Files \ gnucash \ bin
- Windows 64位版本
cd \程序文件(x86)\ gnucash \ bin
- 将 任何 gnc-fq-xxx perl脚本命令 前缀 为
perl
和一个空格:perl gnc-fq-check
- 打开命令行窗口:
与您的GnuCash安装一起,您应该具有以下帮助程序:
- gnc-fq-check
- 该程序返回Finance :: Quote软件的版本号和可用模块的列表。 它还会通知您Finance :: Quote安装是否有问题,或者缺少安装,并且可能会建议您解决问题。
- 依赖关系破坏的示例
$ gnc-fq-check 在@INC中找不到Mozilla / CA.pm(您可能需要安装Mozilla :: CA模块)(@ INC包含:/usr/lib/perl5/site_perl/5.30.1/x86_64 -linux-thread-multi /usr/lib/perl5/site_perl/5.30.1 /usr/lib/perl5/vendor_perl/5.30.1/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.30.1 /usr/lib/perl5/5.30.1/x86_64-linux-thread-multi /usr/lib/perl5/5.30.1 / usr / lib / perl5 / site_perl)位于/usr/lib/perl5/vendor_perl/5.30.1 /Finance/Quote/Tiaacref.pm第33行。 在(eval 303)行1的要求中编译失败 。BEGIN失败-在( usr eval 303)第1行的编译中止了/ usr / local / bin / gnc-fq-check第91行。 (“ 1.47”,“ adig”,“ aex”,“ aiahk”,“ alphavantage”,“ amfiindia”,“ asegr”,“ asia”,“ asx”,“ australia”,“ bamosz”,“ bet”,“ bmonesbittburns”,“ bourso”,“ brasil”,“ bse”,“ bsero“”加拿大“”加拿大“” citywire“” cominvest“” cse“” deka“”荷兰“” dwsfunds“”欧洲“” fetch_live_currencies“”保真“” fidelity_direct“” fidelityfixed“” financecanada“” finanzpartner“”芬兰“ “傻瓜”“法国”“ ftfunds”“ ftportfolios”“ ftportfolios_direct”“ fundlibrary”“ goldmoney”“希腊”“ hex”“ hu”“ hufund”“匈牙利”“ hustock”“印度”“ known_currencies”“ lerevenu”“ maninv”“ morningstar”“ morningstarjp”“ mstaruk”“ nasdaq”“ nyse”“ nz”“ nzx”“白金“”罗马尼亚“” seb_funds“” sixfunds“” sixshares“” stockhousecanada_fund“” tdefunds“” tdwaterhouse“” tiaacref“” tnetuk“” troweprice“” troweprice_direct“” trustnet“” tsp“” tsx“” uk_unit_trusts“ unionfunds“”美国“” usfedbonds“”先锋“” vwd“” yahoo“” yahoo_asia“”yahoo_australia”,“ yahoo_brasil”,“ yahoo_europe”,“ yahoo_json”,“ yahoo_nz”,“ yahoo_yql”,“ za”,“ za_unittrusts”)
第一部分是有关缺少
Mozilla / CA.pm
的错误消息 。- 括号的最后是版本和可用资源的常规输出。
- 笔记
- 最新版本是1.49。
- 如果显示错误,请参阅下一节
gnc-fq-update
,否则继续使用gnc-fq-dump
。 - gnc-fq-更新
- 该程序将安装或更新Finance :: Quote软件模块及其依赖项。 该程序通常需要超级用户或管理特权才能成功。
- gnc-fq-dump
- 该程序返回引用数据源和符号的格式列表,这是很容易阅读 的人 。 这对于检查给定的在线报价来源是否在线和正常运行很有用。
要获取股票价格,请从以下格式的命令行运行命令:
gnc-fq-dump -v <源> <符号>
例如
gnc-fq-dump -v alphavantage IBM
要使用来源 Yahoo作为JSON
获得2种货币aaa和bbb之间的货币转换率 :
gnc-fq-dump -v yahoo_json aaabbb = X
例如
GNC-FQ转储-v yahoo_json USDEUR = X
从Finance :: Quote版本1.41开始,货币的默认来源被硬编码为Alpha Vantage。 例如
gnc-fq-dump货币USD EUR
gnc-fq-helper
该程序是一个过滤器,它的功能与 gnc-fq-dump相同
,但是形式 是程序可以理解的 。 输入和输出是 Scheme 表达式。 这有助于开发人员确定错误是在GnuCash还是F :: Q中。 它还在下载的报价中显示尾随空格。
例如,据报道,2008年9月,联合利华的债券失败了。 这是此帮助程序的示例执行和结果:
user @ host:〜$ echo '(yahoo_json“ A0GFY7.SG”)' | gnc-fq-helper
((“ A0GFY7.SG”(符号。“ A0GFY7.SG”)(gnc:time-no-zone。“ 2008-09-26 16:58:00”)(最后一个89.50)(货币。 “欧元 ”)))
看到错误了吗? 解决方案
由于这些帮助程序是Perl脚本,因此必须成功安装Perl才能正常运行这些帮助程序。
要求
本节介绍了GnuCash的在线报价功能正常运行所需的软件安装。 简而言之,除了GnuCash应用程序本身之外,您还需要安装Perl及其Finance :: Quote模块。
佩尔
Finance :: Quote模块依赖 Perl ,因此必须首先安装Perl。 在不同的操作系统上,Perl的安装过程以不同的方式处理。
在Unix上安装Perl
在大多数类似Unix的操作系统(Linux,AIX,* BSD,HPUX,Solaris等)上,可能已经安装了Perl。 如果不是这样,但是您的类Unix操作系统具有程序包管理器,则它可能会作为Finance :: Quote的依赖项自动安装。
要检查是否安装了Perl,请 perl -v
在终端提示符下 调用 命令以获取Perl解释器的版本号。 如果失败,最好的选择是使用软件包管理器进行安装。 有关使用程序包管理器的更多详细信息,请参阅操作系统的文档。
在macOS上安装Perl
在Apple的macOS计算机上,默认情况下已安装Perl。 要确认这一点,请打开“终端”应用程序(通常位于“应用程序”文件夹的“实用工具”文件夹中),然后调用
perl -v
命令以查看Perl解释器的版本号。
在Windows上安装Perl
根据GnuCash的版本,执行此方法的方法略有不同。
GnuCash 2.5及更高版本
通过运行“安装在线价格检索”命令,一切已为您完成。 您可以在Windows的GnuCash组的开始菜单中找到它。 这将安装 Strawberry Perl 和运行Finance :: Quote所需的所有perl模块。
' 安装Strawberry Perl时,'没有此类文件或目录 或 权限被拒绝的 错误:
在安装perl时启用防病毒软件可能会有所帮助。 此问题已作为服务请求号1446848354报告给McAfee,2014年3月16日。
GnuCash 2.4及更低版本
这些GnuCash版本仅与 ActivePerl一起使用 ,您首先必须手动安装。
- 如果要从ActivePerl的早期版本升级,请先卸载旧版本并删除其目录,然后再安装新版本。
- 从 ActiveState 下载并安装它 。 5.16.3之前的ActivePerl版本可能未提供F :: Q的最新版本(在撰写本文时为1.18)。 即使是在64位Windows上,也建议使用32位版本,但是在Windows XP Pro x64 SP2上同时具有GC 2.4.11和2.4.12(YMMV)的情况下运行64位版本也取得了成功。 如果出现提示,则不必提供详细的联系信息,只需为系统选择MSI安装程序即可。 强烈建议使用默认安装目录。
- 一旦安装了perl,请使用GnuCash组中的开始菜单项“安装在线价格检索”为F :: Q安装必要的Perl模块并验证设置。
由于ActivePerl使用他们自己的预编译的Perl软件包管理器(PPM),因此,在需要更新F :: Q的情况下,应该不使用综合Perl存档网络(CPAN)。 相反,您可以使用 PPM Index:Finance-Quote 查看状态并下载成功编译的最新ppmx。
GnuCash 2.2.6及更低版本
安装与GnuCash 2.4的安装类似,不同的是这些发行版仅适用于ActivePerl 5.8,并且菜单项称为“ Install Finance-Quote”。
但是,建议您升级到最新版本的GnuCash,因为您不太可能获得Finance :: Quote在这些旧版本上仍然可以工作。 您将很难找到ActivePerl 5.8的版本(除非您为ActiveState付钱),并且此Perl版本随附的Finance :: Quote版本已经过时。
资料来源: perl.org
财务::报价
如前所述,Finance :: Quote是必须安装的Perl模块才能启用在线报价获取。 反过来,Finance :: Quote依赖于许多其他Perl模块。
您可以 gnc-fq-check
在安装Perl本身后 通过运行 帮助程序 来检查系统是否安装了Finance :: Quote 。 或者,您可以打开“关于GnuCash”窗口(从菜单中选择“帮助”→“关于”,或者在macOS上,从菜单中选择“ GnuCash”>“关于GnuCash”),然后查找一行显示为 Finance :: Quote:1.49
或类似内容的行; 如果可以找到 此屏幕,此屏幕报告当前安装的Finance :: Quote版本( 在给定的示例中为 1.49
)。 如果GnuCash找不到Finance :: Quote版本,则此行将显示为 Finance::Quote: -
。
安装获取在线报价所需的Finance :: Quote软件的最简单方法是使用提供的安装工具或系统的软件包管理器。 这两个 的Windows 和 MacOS的 GnuCash的包包括提供更新工具财经::报价,而许多Linux发行版提供安装包(一种标准的方式例如, 容易
在基于Debian的Linux发行程序和 DNF
基于红帽Linux的distrubtions工具例如Fedora)。 接下来介绍这些方法。
在Windows上安装Finance :: Quote
在Windows计算机上,GnuCash提供“ 安装在线价格检索”
程序,该程序位于 “开始”菜单 中的 GnuCash 组中。
- 如果您的计算机处于
平板电脑模式
,则必须切换到桌面模式
才能看到该条目。 或者只是跑C :\ Program Files(x86)\ gnucash \ bin \ install-fq-mods.cmd
只需单击它即可开始Finance :: Quote安装过程。 您可以根据需要多次重新运行“ 安装在线价格检索”
程序,以确保Finance :: Quote模块保持最新状态。
在macOS上安装Finance :: Quote
在GnuCash 3.6之前,GnuCash提供了 FinanceQuote Update
应用程序,该应用程序 与主GnuCash应用程序本身一起 位于磁盘映像( .dmg
文件)中。 通过将GnuCash应用程序图标拖放到计算机硬盘驱动器上的某个位置(例如 Applications
文件夹) 来安装GnuCash时 ,您还可以考虑将 FinanceQuote Update
应用程序 安装 到与安装主GnuCash应用程序相同的文件夹中。
通过双击 启动 FinanceQuote Update
应用程序以开始Finance :: Quote安装过程。 您可以根据需要 多次
重新运行FinanceQuote Update
应用程序,以确保Finance :: Quote模块保持最新状态。
在终端提示下在macOS上安装Finance :: Quote
MacOS 10.14.6和10.15.0的新安全要求终止了 FinanceQuote Update
应用程序。 用户现在必须使用Terminal.app来安装Finance Quote。
须藤/Applications/Gnucash.app/Contents/Resources/bin/gnc-fq-update
如果 FinanceQuote更新
小程序失败,您可以在登录到具有管理特权的用户帐户时简单地运行上述命令。 (请注意,仅凭这 su
还不够;您应该注销所有用户帐户,然后以admin用户身份登录要在其上安装Finance :: Quote的计算机,然后从终端运行上述命令。)
与applet一样,您可以根据需要多次重新运行命令,以确保Finance :: Quote模块保持最新状态。
该 GNC-FQ-更新
脚本始终运行MacOS的系统运行时的Perl( 在/ usr / bin中/ perl的
),并忽略安装软件包管理程序需要Perl的。 这样可以确保从Finder启动GnuCash时,可以正确找到Finance :: Quote。
在Linux上安装Finance :: Quote
在 Linux 计算机上,推荐的安装Finance :: Quote的方法是在OS发行版的软件包管理器中搜索 Finance-quote
。 请注意,您的发行版的程序包维护者可以在程序包名称前加上 perl , lib 或这两者。 我们还建议您检查OS软件包存储库提供的Finance :: Quote版本,以确保它是最新版本。
如果'软件包管理器 未提供Finance :: Quote模块的 最新 版本 ,则应 手动 运行gnc-fq-update
帮助程序脚本。 以root用户身份
(使用su
和/或sudo
命令)运行GnuCash Finance Quote更新脚本: '
gnc-fq-更新
这将开始Finance :: Quote及其所有依赖项的安装过程。
- (基于Ubuntu的)发行版的注意事项
- 他们中的一些人从包装中取出了它。 在这种情况下,您可以
- 从 github 下载它, 例如到您的个人
〜/ bin
目录中, - 在第一行中,将
@ -PERL- @
替换 为perl可执行文件的路径,例如/ usr / bin / perl
, 从其名称中 删除结尾的.in
并将文件标记为可执行文件。
- 从 github 下载它, 例如到您的个人
- 可以在 gnucash-user / 2012-September中 找到有关如何在Ubuntu中修复它的讨论 。
从GnuCash版本2.6.12开始,此帮助程序脚本使用CPAN(请参阅下一节)安装以下Perl模块:
- 日期:: Manip
- 财务::报价
- 及其依赖
使用CPAN安装Finance :: Quote
CPAN 是 综合Perl存档网络 ,它提供了免费的Perl软件(称为模块)集合,您可以从中获取perl Finance :: Quote模块及其所有依赖项。 如果上面列出的用于特定操作系统分发的方法失败,则您仍然可以通过直接与CPAN交互来安装Finance :: Quote。
为此,请使用CPAN:
sudo perl -MCPAN -e shell
#或者,如果缺少F :: Q,请使用
安装Finance :: Quote
#,或者,如果F :: Q已过时,请使用
升级财务::报价
#最后检查Date :: Manip
安装日期:: Manip
#并退出:
q
在第 一次 运行 cpan时,
它需要一些配置:
$ cpan
CPAN.pm需要配置,但是大多数可以自动完成。
如果您在下面回答“否”,则将为每个
配置选项
输入一个交互式对话框。您想自动配置尽可能多的内容吗?[是的]
通常可以接受默认值。
找到正确的来源和符号
并非所有来源都提供所有商品,并且不同来源使用不同的符号。 常见的 符号 有:
- 交易代码 :公司名称的1-4个字母缩写,通常用于美国股票;
- 国家安全识别码(NSIN) :类似于CUSIP,通常由国家基金公司使用;
- ISIN :国际安全识别码,至少在欧盟,它们越来越多地取代不同的NSIN;
- 有时由 附录 指出市场的位置。
如果您的商品是共同基金,并且F :: Q提供其基金公司作为来源(deka,dws等),请在共同基金的网站上查找该符号。
如果有其注册交易所的来源(AEX, ASX ,...),请执行相同的操作。
在其他情况下,用Google的ISIN来获取可能来源的列表。
全球参与者:Alpha Vantage和Yahoo *的股票表现更强,而Morningstar *的基金表现更强。
一种检查来源和符号是否正确的快速方法是使用 Helper Script gnc-fq-dump。 从命令行运行
gnc-fq-dump -v <来源> <符号>
来源美国Alphavantage
Finance :: Quote的 alphavantage
和 货币
来源需要AlphaVantage API密钥,您可以从[[:Template:AV AlphaVantage网站]免费获得。 诸如gnc-fq-dump之
类的 命令行 帮助脚本 将从
环境变量ALPHAVANTAGE_API_KEY中
获取密钥 。 如果使用相同的环境,GnuCash也将使用。
一些来源是 多个
来源。 将尝试多种来源,直到获得价格为止。 如果您使用包含 alphavantage
的多个源, 则应使用AlphaVantage API密钥。 见 A.1.3。 Finance ::报价来源-多种来源
为了使GnuCash能够使用在线报价,如果尚未在环境中指定API密钥,则可以在以下位置输入
- GnuCash版本2.6.20 / 2.7.4及更高版本:
GnuCash
首
选项的“
在线报价”
选项卡
- GnuCash 2.6.19 / 2.7.3及更早版本:
environment.local 文件。 如果GnuCash正在运行并且正在使用任何文本编辑器,则退出该窗口(Windows用户应首选记事本,而不要使用写字板或Word); 您在大多数情况下需要管理员权限)添加
ALPHAVANTAGE_API_KEY = ###############
到 environment.local
文件,将您的密钥替换为“ ##############”。
为了使 辅助脚本 gnc-fq-dump 和 gnc-fq-helper 在GnuCash之外 使用 Alpha Vantage 源,必须将ALPHAVANTAGE_API_KEY放入辅助脚本环境中。 例如
Linux或macOS
<syntaxhighligh lang =“ sh”>
ALPHAVANTAGE_API_KEY = ############## gnc-fq-dump alphavantage CSCO </ syntaxhighligh>
或者
<syntaxhighligh lang =“ sh”>
导出ALPHAVANTAGE_API_KEY = ############## gnc-fq-dump alphavantage CSCO </ syntaxhighligh> Windows
<syntaxhighligh lang =“ bat”>
cd \ Program Files(x86)\ gnucash \ bin
set ALPHAVANTAGE_API_KEY = ############## gnc-fq-dump alphavantage CSCO </ syntaxhighligh>要使密钥在每个会话中可用,您也可以将其添加到您的操作系统环境或命令外壳程序配置中。 请参阅您的操作系统手册。
您需要Finance :: Quote版本1.41或更高版本才能使用Alpha Vantage。
Alpha Vantage限制了使用 免费API密钥 在给定时间内可能要求的股票和货币报价的数量 。 如果超过此限制,GnuCash将显示“未知错误”。 Finance :: Quote v#1.48和更高版本可以解决此问题以获取股票报价,而v1.49可以解决此问题以解决货币报价,尽管v1.50(尚未发布,将于2020年6月14日发布)可以更好地应对。 付费[[:Template:AV高级/高级Alpha Vantage订阅]没有此限制。
搜索符号
您可以通过在网络浏览器(例如Chrome或Firefox)的地址字段中输入以下内容来搜索符号
https://www.alphavantage.co/query?function=SYMBOL_SEARCH与关键字=搜索关键词与apikey = #############
例如
https://www.alphavantage.co/query?function=SYMBOL_SEARCH与关键字=国际商业机器及apikey = #############
将您的API密钥替换为“ ##############”。 在Chrome和Firefox中,可以使用空格分隔关键字,但是某些Web浏览器可能需要 %20
代替每个空格。 例如
https://www.alphavantage.co/query?function=SYMBOL_SEARCH与关键字=国际%20Business%20Machines & apikey = #############
澳大利亚证券交易所
在2018年3月18日至2020年5月30日期间的某个时候,从Alpha Vantage获得使用货币符号AUD后缀(例如CBA.AX)以澳元货币在澳交所上市的股票的报价已停止。
伦敦证券交易所
据 GnuCash用户电子邮件列表 上的报道 ,以前Alpha Vantage能够提供报价的LSE股票(例如BP.L)已于2020年6月25日停止工作。
来源雅虎
在2017年11月1日, Yahoo! 终止了其 csv接口 ,该接口 曾是Finance :: Quote用于所有 货币 报价和以下股票报价 的主要来源 :
雅虎* (使用JSON和YQL的除外), 加拿大 , 美国 , 纽约证券交易所 , 纳斯达克 , 排头兵 。
Finance :: Quote维护人员已经建立了一个新的源 Alpha Vantage ,以替换大部分已停产的Yahoo源。
要更新雅虎来源不再工作,使用安全编辑器中的GnuCash来编辑每个安全与 上网行情 启用了使用雅虎停产 来源,然后禁用(取消选中)“ 获取在线报价” 或
- GnuCash 2.6.20 / 2.7.7及更高版本
- 将来源更改为“美国Alphavantage”,“以雅虎JSON”或“以YQL雅虎”。
- 年长的
- 将报价来源的类型更改为“未知”,并将报价来源的类型更改为“ alphavantage”。
如果对非美国股票使用“ Yahoo as JSON”或“ Yahoo as YQL”,则可能必须在股票代码的末尾附加一个后缀,以告诉Finance ::报价该股票在哪个证券交易所上市。 例如, CBA.AX 以货币AUD获得澳大利亚证券交易所股票CBA的报价。 请参阅 Yahoo Finance上的交易所和数据提供商 。
- 小费
- 您仍然可以 通过以下方式 测试 货币
GNC-FQ转储-v yahoo_json USDEUR = X
从GnuCash外部更新已启用的报价
要更新所有启用的报价,您可以运行
GnuCash 4.0及更高版本
的Linux
gnucash-cli-引用获取/path/to/file.gnucash
苹果系统
/Applications/Gnucash.app/Contents/MacOS/Gnucash-cli-引用获取/ Users / <用户名> /Documents/test.gnucash
视窗
gnucash-cli.exe-引用获取文件:// C:/path/to/file.gnucash
GnuCash 3.11及更早版本
的Linux
gnucash-添加价格报价/path/to/file.gnucash
苹果系统
/Applications/Gnucash.app/Contents/MacOS/Gnucash --add-price-quotes / Users / <用户名> /Documents/test.gnucash
视窗
gnucash.exe-添加价格报价文件:// C:/path/to/file.gnucash
警示语
Windows路径
在Windows上,如果路径包含“磁盘字母”,那么您必须传递“文件URI”,否则GnuCash会混淆URI方案的驱动器字母,而无法打开它。 例如 file:// C:/path/to/file.gnucash
打开文件
更新报价会修改GNUCash文件/数据库。 由于不支持多用户访问,因此应在更新报价之前关闭文件/数据库。
在MacOS上的$ PATH中的Perl
您必须确保 perl
命令运行macOS系统Perl( / usr / bin / perl
),而不是程序包管理器安装的Perl,因为 gnc-fq-update
总是将Finance :: Quote安装到macOS系统Perl。 您可以通过在终端中运行来验证这一点, which perl
并确保输出为 / usr / bin / perl
。
Cron和Non-X用法-Linux和macOS(macOS TBC?)
如果尝试在不 运行 dbus的情况下 执行此操作(例如,从 cron 作业或 不带X转发的 ssh ),则可能会出现以下错误:
GConf错误:无法联系配置服务器;最常见的原因是缺少或配置错误的D-Bus会话总线守护程序。
有关信息,请参见http://projects.gnome.org/gconf/。
(详细信息-1:不在活动会话中运行)
由 SyncEvolution-The Missing Link 提供的一种解决方案 是,使用cron命令在报价检索期间启动dbus,该命令类似于:
GnuCash 4.0及更高版本
ENV ` DBUS推出' SH -c “陷阱“杀$ DBUS_SESSION_BUS_PID” EXIT; gnucash-cli-引用获取/path/to/file.gnucash'
GnuCash 3.11及更早版本
ENV ` DBUS推出' SH -c “陷阱“杀$ DBUS_SESSION_BUS_PID” EXIT; gnucash --add-price-quotes /path/to/file.gnucash'
注意:此问题已在Bug#639776中记录。
导入历史价格或报价
如果您的GnuCash版本是使用 Python Bindings 构建的 ,则可以使用以下页面上显示的脚本:
Windows和Mac版本不包含 Python绑定 。
技术细节
F :: Q文件的存储位置取决于您的OS / Distro:
- Linux 取决于其安装方式:
- 通过软件包管理器:
/ usr / share / perl5 / [ vendor / ]财务
- 通过CPAN或gnc-fq-update:
/ usr / share / perl5 / site / Finance
- 自编译:
在/ usr /本地/share/perl/5.xx.x/Finance
- 通过软件包管理器:
- Windows :
C:\ Strawberry \ perl \ site \ lib \ Finance
- macOS :
/Library/Perl/5.xx/Finance
,其中xx
取决于安装Finanace :: Quote时使用的Perl版本。- macOS升级可能需要重新安装Finance :: Quote,因为
@INC
中未包含旧版本目录 。 - 假定安装
须藤gnc-fq-update
或者
须藤cpan -i
。 通过MacPorts或Homebrew进行安装(例如,
/ usr / bin / local / perl gnc-fq-update
@INC
或覆盖全局perl。 请记住,从Finder启动应用程序捆绑包不会读取外壳环境! - 自制安装的Perl 不会在更新之间保留模块 。 如果选择使用安装了Homebrew的Perl来运行它,则必须在Perl更新后重新安装Finance :: Quote。
- macOS升级可能需要重新安装Finance :: Quote,因为
您可以通过运行以下命令获取路径:
perldoc -lm Finance ::报价
故障排除
请尝试以下步骤。 在每个步骤之后,运行GnuCash并查看该解决方案是否解决了检索股票报价的问题。
- Microsoft Windows用户运行诸如
gnc-fq-check之
类的perl脚本的注意事项
- 打开命令行窗口:
- Windows 10(不在平板电脑模式下)
- 单击 “开始”按钮右侧的 “ Cortana
问我任何问题”
字段,开始输入cmd
,应会出现一个搜索菜单。 菜单应显示Command Prompt
。 左键单击或点击“命令提示符”图标
。 - Windows 8(或平板电脑模式下的Windows 10)
- 在“开始”屏幕上,开始输入
cmd
,应该会出现一个搜索菜单。 菜单应显示Command Prompt
。 左键单击或点击“命令提示符”图标
。 - Windows 7的
- 单击“
开始”
按钮, 在“搜索程序和文件”
字段中 键入cmd
,然后按Enter
- Windows XP
- 单击“
开始”
按钮,“所有程序”
,“附件”
,“命令提示符”
- 如果尚不是当前驱动器,请切换到包含GnuCash程序文件的驱动器(通常为C驱动器):
C :
- 转到包含必需的gnc-fq-xxx perl脚本的... \ gnucash \ bin目录:
- Windows 32位版本
cd \ Program Files \ gnucash \ bin
- Windows 64位版本
cd \程序文件(x86)\ gnucash \ bin
- 将任何gnc-fq-xxx perl脚本命令前缀为
perl
和一个空格:perl gnc-fq-check
- Windows用户: Finance :: Quote的最新版本在Windows上需要perl的最新版本。 如果您在安装时遇到问题,请使用“控制面板”和Windows资源管理器删除所有具有的perl,然后运行“
安装在线价格检索”
,这将为您安装最新版本的 Strawberry Perl 。 注意: 如果您将perl用于其他目的,则不一定要这样做,但是在那种情况下,您可能已经知道如何升级perl。 - 确保您正在运行 最新版本的Finance :: Quote 。 使用 gnc-fq-check 检查您正在运行的版本。 将此与 CPAN 或 Finance :: Quote Releases 上的最新版本进行比较 。 该 CPAN 链接是搜索和财经::报价将是第一次打; 名称下是最新的版本号和发布日期。
在Windows或macOS上,您可以通过 再次 运行 Online Quote Retrieval Installation 程序或从Unix命令行运行 gnc-fq-update 来更新到最新的F :: Q版本 。 提供者会定期更改界面,因此必须保持Finance :: Quote的最新状态以应对更改,这一点很重要。 - 从命令行 使用 gnc-fq-dump 检查您的F :: Q来源和股票代码,以及默认货币(请参阅首选项,账户)和账户使用的其他货币之间的货币兑换率是否可用。
- 如果是
gnc-fq-dump
命令 的输出- 看起来还可以,但是Gnucash仍然无法从命令行运行获取报价:
- 的Linux
回声 '(yahoo_json“ CSCO”)' | gnc-fq-helper
- 苹果系统
回声 '(yahoo_json“ CSCO”)' | /Applications/Gnucash.app/Contents/Resources/bin/gnc-fq-helper
- 视窗
回声(yahoo_json “ CSCO”)| perl gnc-fq-helper
您应该得到类似于
((“ CSCO”(symbol。“ CSCO”).....(currency。“ USD”)))的东西
。 在这里您还可以找到坏的东西,例如 尾随空白 。- 给出有关丢失文件的错误消息,这就是您的问题。 这是gnucash所不知道的依赖项,因此不会对其进行检查。 您将需要满足缺失的依赖性。
但是通常,至少在linux下,它有助于运行
gnc-fq-更新
作为根 。
对于Windows,另请参阅 Windows Finance :: Quote 。 - 从命令行使用
--debug
参数 运行gnucash (请参见 Tracefile ),尝试检索报价,然后通过电子邮件发送给用户 邮件列表 或在IRC上 与开发人员联系 。 - 有时了解Perl实际加载的模块可能会有所帮助。
该命令将告诉您确切的信息,例如Tiaacref:
perldoc -lm Finance :: Quote :: Tiaacref
- 按照此 用户报告中的说明 检查 安全软件 (病毒扫描程序)是否阻止了您 。 [3]
文献资料
标准品