Zh-hans/在线报价

From GnuCash
Jump to: navigation, search

(此页面有部分代码块被错误翻译,请打开英语原文比对查看,谢谢)

GnuCash 可以自动检索有价证券等的当前价值(例如股票,共同基金,货币汇率),称为报价,因此您无需手动更新GnuCash价格数据库中这些证券的价格。如果您跟踪的是少数几种证券的价格,则此功能可节省大量时间。

概述

GnuCash将 投资 的股票 价格 存储 在各自的购买/出售/拆分 交易中, 并 在内部价格数据库中存储 其他 报价 。 尽管可以将价格手动输入价格数据库,但从在线资源更新价格更为方便。 GnuCash使用以 Perl 编程语言 编写的外部程序, 称为 Finance :: Quote (通常简称为F :: Q ),以在线获取这些报价。 因此,要使GnuCash的此功能正常工作,您的计算机将需要安装一些额外的软件,而不仅仅是GnuCash应用程序本身,并需要具有活动的Internet连接。 ' [1] [2] '

关于财务::报价

财务::报价 的Perl模块在管理

由于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软件从世界各地的几个网站收集价格数据,这些网站以不同的方式提供此信息。 一些消息来源提供

  • JSONYQL之 类 的 API , ' '
  • ' 通常以 CSV 文件的形式'下载 s, 最后,
  • 通过从网页本身中提取信息来实现字面上的理解。

由于这些来源经常变化,因此我们建议您保持Finance :: Quote为最新。 (有关说明,请参见下文。)

在GnuCash中设置在线报价

GnuCash的指南 包括 说明书 上设立网上报价。 该设置过程为Finance :: Quote提供了输入,因此必须在GnuCash价格数据库中的“获取报价”按钮生效之前完成它。

重要的
  1. 该符号取决于来源:
    $  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
  2. 您的命令外壳会解释一些特殊的字符:
    $   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识别为内部或外部命令,可操作程序或批处理文件

因此,请使用以下命令:

  1. 打开命令行窗口:
    Windows 10(不在平板电脑模式下)
    单击 “开始”按钮右侧的 “ Cortana 问我任何问题” 字段,开始输入 cmd ,应会出现一个搜索菜单。 菜单应显示 Command Prompt 。 左键单击或点击“ 命令提示符”图标
    Windows 8(或平板电脑模式下的Windows 10)
    在“开始”屏幕上,开始输入 cmd ,应该会出现一个搜索菜单。 菜单应显示 Command Prompt 。 左键单击或点击“ 命令提示符”图标
    Windows 7的
    单击“ 开始” 按钮, 在“搜索程序和文件” 字段中 键入 cmd ,然后按Enter
    Windows XP
    单击“ 开始” 按钮,“ 所有程序” ,“ 附件” ,“ 命令提示符”
  2. 如果尚不是当前驱动器,请切换到包含GnuCash程序文件的驱动器(通常为C驱动器):
    C :
  3. 转到包含必需的gnc-fq-xxx perl脚本的... \ gnucash \ bin目录:
    Windows 32位版本
    cd \ Program Files \ gnucash \ bin

    Windows 64位版本

    cd \程序文件(x86)\ gnucash \ bin
  4. 任何 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软件的最简单方法是使用提供的安装工具或系统的软件包管理器。 这两个 的WindowsMacOS的 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 。 请注意,您的发行版的程序包维护者可以在程序包名称前加上 perllib 或这两者。 我们还建议您检查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 并将文件标记为可执行文件。
可以在 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需要配置,但是大多数可以自动完成。
如果您在下面回答“否”,则将为每个
配置选项
输入一个交互式对话框。您想自动配置尽可能多的内容吗?[是的] 

通常可以接受默认值。

资料来源
FAQ#Q:如何在Mac上安装Finance :: Quote?
Windows#Finance :: Quote
FAQ#Q:获取股票报价时如何解决“系统错误”或“未知错误”?

找到正确的来源和符号

并非所有来源都提供所有商品,并且不同来源使用不同的符号。 常见的 符号 有:

  • 交易代码 :公司名称的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-dumpgnc-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
  • WindowsC:\ 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
      )将其放在各自的安装树中。 使用来自程序包管理器的perl模块可能需要修改全局 @INC 或覆盖全局perl。 请记住,从Finder启动应用程序捆绑包不会读取外壳环境!
    • 自制安装的Perl 不会在更新之间保留模块 。 如果选择使用安装了Homebrew的Perl来运行它,则必须在Perl更新后重新安装Finance :: Quote。

您可以通过运行以下命令获取路径:

perldoc -lm Finance ::报价

故障排除

请尝试以下步骤。 在每个步骤之后,运行GnuCash并查看该解决方案是否解决了检索股票报价的问题。

Microsoft Windows用户运行诸如gnc-fq-check之类的perl脚本的注意事项
  1. 打开命令行窗口:
    Windows 10(不在平板电脑模式下)
    单击 “开始”按钮右侧的 “ Cortana 问我任何问题” 字段,开始输入 cmd ,应会出现一个搜索菜单。 菜单应显示 Command Prompt 。 左键单击或点击“ 命令提示符”图标
    Windows 8(或平板电脑模式下的Windows 10)
    在“开始”屏幕上,开始输入 cmd ,应该会出现一个搜索菜单。 菜单应显示 Command Prompt 。 左键单击或点击“ 命令提示符”图标
    Windows 7的
    单击“ 开始” 按钮, 在“搜索程序和文件” 字段中 键入 cmd ,然后按Enter
    Windows XP
    单击“ 开始” 按钮,“ 所有程序” ,“ 附件” ,“ 命令提示符”
  2. 如果尚不是当前驱动器,请切换到包含GnuCash程序文件的驱动器(通常为C驱动器):
    C :
  3. 转到包含必需的gnc-fq-xxx perl脚本的... \ gnucash \ bin目录:
    Windows 32位版本
    cd \ Program Files \ gnucash \ bin

    Windows 64位版本

    cd \程序文件(x86)\ gnucash \ bin
  4. 将任何gnc-fq-xxx perl脚本命令前缀为 perl 和一个空格:
    perl gnc-fq-check
  1. Windows用户: Finance :: Quote的最新版本在Windows上需要perl的最新版本。 如果您在安装时遇到问题,请使用“控制面板”和Windows资源管理器删除所有具有的perl,然后运行“ 安装在线价格检索” ,这将为您安装最新版本的 Strawberry Perl注意: 如果您将perl用于其他目的,则不一定要这样做,但是在那种情况下,您可能已经知道如何升级perl。
  2. 确保您正在运行 最新版本的Finance :: Quote 。 使用 gnc-fq-check 检查您正在运行的版本。 将此与 CPANFinance :: Quote Releases 上的最新版本进行比较 。 该 CPAN 链接是搜索和财经::报价将是第一次打; 名称下是最新的版本号和发布日期。
    在Windows或macOS上,您可以通过 再次 运行 Online Quote Retrieval Installation 程序或从Unix命令行运行 gnc-fq-update 来更新到最新的F :: Q版本 。 提供者会定期更改界面,因此必须保持Finance :: Quote的最新状态以应对更改,这一点很重要。
  3. 从命令行 使用 gnc-fq-dump 检查您的F :: Q来源和股票代码,以及默认货币(请参阅首选项,账户)和账户使用的其他货币之间的货币兑换率是否可用。
  4. 如果是 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
  5. 从命令行使用 --debug 参数 运行gnucash (请参见 Tracefile ),尝试检索报价,然后通过电子邮件发送给用户 邮件列表 或在IRC上 与开发人员联系 。
  6. 有时了解Perl实际加载的模块可能会有所帮助。 该命令将告诉您确切的信息,例如Tiaacref:
    perldoc -lm Finance :: Quote :: Tiaacref
  7. 按照此 用户报告中的说明 检查 安全软件 (病毒扫描程序)是否阻止了您 。 [3]

文献资料

标准品