[GNC] Can't fetch currency conversion rates between two foreign currencies.

Geoff cleanoutmyshed at gmail.com
Mon Aug 17 23:05:14 EDT 2020


Summary
Gnucash 4.1, Windows 10.
Base currency USD, Trading accounts enabled, Alpha Vantage API Key.
Create 3 (asset) accounts in currencies USD, GBP, EUR.
When doing transfers to/from Base & Foreign currencies, the Fetch Rate 
button in the Transfer Funds dialogue box successfully retrieves the 
exchange rate and calculates the currency conversions - screenshot 
currency1.
When doing transfers to/from the two Foreign currencies, (eg EUR/GBP), 
the Fetch Rate button in the Transfer Funds dialogue box again runs the 
perl process to get the exchange rate but returns with no data - 
screenshot currency2.
As a result, a conversion rate of zero is recorded in the price database 
- screenshot currency3.

Ruminations
Is this functionality meant to be supported by gnucash?  It *is* 
supported by the gnc-fq-dump and gnc-fq-helper scripts.
I haven't previously used currency conversions with gnucash, but was 
prompted to do this test by the long running thread of Samantha Payn, 
possibly accessible on Nabble: 
http://gnucash.1415818.n4.nabble.com/GNC-Difficulty-with-online-price-retrieval-John-Ralls-tc4720222.html

Supporting Documentation
Screenshots of gnucash, gnc-fq-helper, and excerpts from gnucash debug log.

C:\Program Files (x86)\gnucash\bin>perl gnc-fq-helper
(currency "USD" "GBP")
(("USD" (symbol . "USD") (gnc:time-no-zone . "2020-08-18 11:33:31") 
(last . #e0.76158) (currency . "GBP")))
(currency "USD" "EUR")
(("USD" (symbol . "USD") (gnc:time-no-zone . "2020-08-18 11:33:31") 
(last . #e0.8409) (currency . "EUR")))
(currency "GBP" "EUR")
(("GBP" (symbol . "GBP") (gnc:time-no-zone . "2020-08-18 11:33:31") 
(last . #e1.10407) (currency . "EUR")))
(currency "EUR" "GBP")
(("EUR" (symbol . "EUR") (gnc:time-no-zone . "2020-08-18 11:33:31") 
(last . #e0.90552) (currency . "GBP")))


* 10:41:16 DEBUG <gnc.scm> rpt-subdir=gnucash/reports/standard
* 10:41:16 DEBUG <gnc.scm> mod-dir=c:\Program Files 
(x86)\gnucash\share/guile/site/2.2\gnucash/reports/standard
* 10:41:16 DEBUG <gnc.scm> dir-files=(view-column trial-balance 
transaction taxinvoice register reconcile-report receivables receipt 
price-scatter portfolio payables owner-report new-owner-report new-aging 
net-charts lot-viewer job-report invoice income-statement 
income-gst-statement general-ledger general-journal equity-statement 
dashboard customer-summary category-barchart cashflow-barchart cash-flow 
budget budget-income-statement budget-flow budget-barchart 
budget-balance-sheet balsheet-pnl balsheet-eg balance-sheet 
balance-forecast advanced-portfolio account-summary account-piecharts)
* 10:41:16 DEBUG <gnc.scm> rpt-subdir=gnucash/reports/example
* 10:41:16 DEBUG <gnc.scm> mod-dir=c:\Program Files 
(x86)\gnucash\share/guile/site/2.2\gnucash/reports/example
* 10:41:16 DEBUG <gnc.scm> dir-files=(welcome-to-gnucash sample-graphs 
hello-world daily-reports average-balance)
* 10:41:16 DEBUG <gnc.scm> rpt-subdir=gnucash/reports/locale-specific/us
* 10:41:16 DEBUG <gnc.scm> mod-dir=c:\Program Files 
(x86)\gnucash\share/guile/site/2.2\gnucash/reports/locale-specific/us
* 10:41:16 DEBUG <gnc.scm> dir-files=(taxtxf)
* 10:41:16 DEBUG <gnc.scm> rpt-subdir=gnucash/report/stylesheets
* 10:41:16 DEBUG <gnc.scm> mod-dir=c:\Program Files 
(x86)\gnucash\share/guile/site/2.2\gnucash/report/stylesheets
* 10:41:16 DEBUG <gnc.scm> dir-files=(plain head-or-tail footer css)
* 10:41:18 DEBUG <gnc.scm> gnc:fq-check-sources results: (1.49 adig aex 
aiahk alphavantage amfiindia asegr asx aufunds australia bamosz bet 
bmonesbittburns bourso bse bsero canada canadamutual citywire cominvest 
cse deka dutch dwsfunds europe fetch_live_currencies fidelity 
fidelity_direct fidelityfixed financecanada finanzpartner finland fool 
france ftfunds ftportfolios ftportfolios_direct fundlibrary goldmoney 
greece hex hu hufund hungary hustock iexcloud indiamutual 
known_currencies lerevenu maninv morningstar morningstarau morningstarch 
morningstarjp mstaruk nasdaq nyse nz nzx platinum romania seb_funds 
sixfunds sixshares stockhousecanada_fund tdefunds tdwaterhouse tiaacref 
tnetuk troweprice troweprice_direct trustnet tsp tsx uk_unit_trusts 
ukfunds unionfunds usa usfedbonds vanguard vwd yahoo_json yahoo_yql za 
za_unittrusts)
* 10:41:18 MESSG <gnc.scm> Found Finance::Quote version 1.49

* 10:41:18  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=Bank 
USD starting baln=0/1
* 10:41:18  INFO <gnc.account> [xaccAccountSetGUID] acct=0ac95368
* 10:41:18  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=Bank 
EUR starting baln=0/1
* 10:41:18  INFO <gnc.account> [xaccAccountSetGUID] acct=0ac95480
* 10:41:18  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=Bank 
GBP starting baln=0/1
* 10:41:18  INFO <gnc.account> [xaccAccountSetGUID] acct=0ac95598

======================================================
Enter transfer USD / GBP  - Screenshot "currency1.jpg"
======================================================
* 10:41:38  INFO <gnc.gui> [lookup_price] No price Found for USD, GBP
* 10:41:38  INFO <gnc.gui> [lookup_price] No price Found for USD, GBP
* 10:41:41 DEBUG <gnc.scm> ALPHAVANTAGE_API_KEY=*REDACTED*
* 10:41:41 DEBUG <gnc.scm> handling-request: (currency EUR USD)
* 10:41:43 DEBUG <gnc.scm> results: ((EUR (symbol . EUR) 
(gnc:time-no-zone . 2020-08-18 10:41:41) (last . 11879/10000) (currency 
. USD)))
* 10:41:43 DEBUG <gnc.scm> handling-request: (currency GBP USD)
* 10:41:44 DEBUG <gnc.scm> results: ((GBP (symbol . GBP) 
(gnc:time-no-zone . 2020-08-18 10:41:41) (last . 131129/100000) 
(currency . USD)))

* 10:41:44  INFO <gnc.gui> [lookup_price] Found reverse price: 1 GBP = 
1.311290 USD
* 10:41:44  WARN <qof> [gnc_numeric_to_decimal()] Rounding required when 
'never round' specified.
* 10:41:44  WARN <qof> [gnc_numeric_to_decimal()] Rounding required when 
'never round' specified.
* 10:46:15  INFO <gnc.gui> [lookup_price] Found reverse price: 1 GBP = 
1.311290 USD
* 10:46:15  INFO <gnc.gui> [update_price] Existing price is preferred, 
so won't supersede.

* 10:46:15  INFO <gnc.ledger> [gnc_split_register_save] finished saving 
split "" of trans "usd gbp"

* 10:46:15  INFO <gnc.register> [listen_for_account_events] insert new 
account Trading:CURRENCY:GBP into qf=0de8d988

* 10:46:15  INFO <gnc.register> [listen_for_account_events] insert new 
account Trading:CURRENCY:USD into qf=0de8d988


======================================================
Enter transfer GBP / EUR  - Screenshot "currency2.jpg"
======================================================
* 10:48:21  INFO <gnc.gui> [lookup_price] No price Found for GBP, EUR
* 10:48:21  INFO <gnc.gui> [lookup_price] No price Found for GBP, EUR
* 10:48:25 DEBUG <gnc.scm> ALPHAVANTAGE_API_KEY=*REDACTED*
* 10:48:25 DEBUG <gnc.scm> handling-request: (currency EUR USD)
* 10:48:28 DEBUG <gnc.scm> results: ((EUR (symbol . EUR) 
(gnc:time-no-zone . 2020-08-18 10:48:26) (last . 11887/10000) (currency 
. USD)))
* 10:48:28 DEBUG <gnc.scm> handling-request: (currency GBP USD)
* 10:48:29 DEBUG <gnc.scm> results: ((GBP (symbol . GBP) 
(gnc:time-no-zone . 2020-08-18 10:48:26) (last . 131203/100000) 
(currency . USD)))

* 10:48:29  INFO <gnc.gui> [lookup_price] No price Found for GBP, EUR
* 10:50:12  INFO <gnc.gui> [lookup_price] No price Found for GBP, EUR

* 10:50:12  INFO <gnc.gui> [new_price] Created price: 1 GBP = 0.000000 EUR

* 10:50:12  INFO <gnc.gui> [lookup_price] Found price: 1 GBP = 0.000000 EUR
* 10:50:13  INFO <gnc.gui> [lookup_price] Found price: 1 GBP = 0.000000 EUR
* 10:50:13  INFO <gnc.gui> [update_price] Same price for GBP in EUR

* 10:50:13  INFO <gnc.ledger> [gnc_split_register_save] finished saving 
split "" of trans "gbp eur"

* 10:50:13  INFO <gnc.register> [listen_for_account_events] insert new 
account Trading:CURRENCY:EUR into qf=0de8d988


Thanks

Geoff
=====

-------------- next part --------------
A non-text attachment was scrubbed...
Name: currency1.jpg
Type: image/jpeg
Size: 84733 bytes
Desc: not available
URL: <http://lists.gnucash.org/pipermail/gnucash-user/attachments/20200818/ff4bdffc/attachment-0004.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: currency2.jpg
Type: image/jpeg
Size: 82352 bytes
Desc: not available
URL: <http://lists.gnucash.org/pipermail/gnucash-user/attachments/20200818/ff4bdffc/attachment-0005.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: currency3.jpg
Type: image/jpeg
Size: 61095 bytes
Desc: not available
URL: <http://lists.gnucash.org/pipermail/gnucash-user/attachments/20200818/ff4bdffc/attachment-0006.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: currency4.jpg
Type: image/jpeg
Size: 33952 bytes
Desc: not available
URL: <http://lists.gnucash.org/pipermail/gnucash-user/attachments/20200818/ff4bdffc/attachment-0007.jpg>
-------------- next part --------------
* 10:41:16 DEBUG <gnc.scm> rpt-subdir=gnucash/reports/standard
* 10:41:16 DEBUG <gnc.scm> mod-dir=c:\Program Files (x86)\gnucash\share/guile/site/2.2\gnucash/reports/standard
* 10:41:16 DEBUG <gnc.scm> dir-files=(view-column trial-balance transaction taxinvoice register reconcile-report receivables receipt price-scatter portfolio payables owner-report new-owner-report new-aging net-charts lot-viewer job-report invoice income-statement income-gst-statement general-ledger general-journal equity-statement dashboard customer-summary category-barchart cashflow-barchart cash-flow budget budget-income-statement budget-flow budget-barchart budget-balance-sheet balsheet-pnl balsheet-eg balance-sheet balance-forecast advanced-portfolio account-summary account-piecharts)
* 10:41:16 DEBUG <gnc.scm> rpt-subdir=gnucash/reports/example
* 10:41:16 DEBUG <gnc.scm> mod-dir=c:\Program Files (x86)\gnucash\share/guile/site/2.2\gnucash/reports/example
* 10:41:16 DEBUG <gnc.scm> dir-files=(welcome-to-gnucash sample-graphs hello-world daily-reports average-balance)
* 10:41:16 DEBUG <gnc.scm> rpt-subdir=gnucash/reports/locale-specific/us
* 10:41:16 DEBUG <gnc.scm> mod-dir=c:\Program Files (x86)\gnucash\share/guile/site/2.2\gnucash/reports/locale-specific/us
* 10:41:16 DEBUG <gnc.scm> dir-files=(taxtxf)
* 10:41:16 DEBUG <gnc.scm> rpt-subdir=gnucash/report/stylesheets
* 10:41:16 DEBUG <gnc.scm> mod-dir=c:\Program Files (x86)\gnucash\share/guile/site/2.2\gnucash/report/stylesheets
* 10:41:16 DEBUG <gnc.scm> dir-files=(plain head-or-tail footer css)
* 10:41:18 DEBUG <gnc.scm> gnc:fq-check-sources results: (1.49 adig aex aiahk alphavantage amfiindia asegr asx aufunds australia bamosz bet bmonesbittburns bourso bse bsero canada canadamutual citywire cominvest cse deka dutch dwsfunds europe fetch_live_currencies fidelity fidelity_direct fidelityfixed financecanada finanzpartner finland fool france ftfunds ftportfolios ftportfolios_direct fundlibrary goldmoney greece hex hu hufund hungary hustock iexcloud indiamutual known_currencies lerevenu maninv morningstar morningstarau morningstarch morningstarjp mstaruk nasdaq nyse nz nzx platinum romania seb_funds sixfunds sixshares stockhousecanada_fund tdefunds tdwaterhouse tiaacref tnetuk troweprice troweprice_direct trustnet tsp tsx uk_unit_trusts ukfunds unionfunds usa usfedbonds vanguard vwd yahoo_json yahoo_yql za za_unittrusts)
* 10:41:18 MESSG <gnc.scm> Found Finance::Quote version 1.49

* 10:41:18  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=Bank USD starting baln=0/1
* 10:41:18  INFO <gnc.account> [xaccAccountSetGUID] acct=0ac95368
* 10:41:18  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=Bank EUR starting baln=0/1
* 10:41:18  INFO <gnc.account> [xaccAccountSetGUID] acct=0ac95480
* 10:41:18  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=Bank GBP starting baln=0/1
* 10:41:18  INFO <gnc.account> [xaccAccountSetGUID] acct=0ac95598

======================================================
Enter transfer USD / GBP  - Screenshot "currency1.jpg"
======================================================
* 10:41:38  INFO <gnc.gui> [lookup_price] No price Found for USD, GBP
* 10:41:38  INFO <gnc.gui> [lookup_price] No price Found for USD, GBP
* 10:41:41 DEBUG <gnc.scm> ALPHAVANTAGE_API_KEY=*REDACTED*
* 10:41:41 DEBUG <gnc.scm> handling-request: (currency EUR USD)
* 10:41:43 DEBUG <gnc.scm> results: ((EUR (symbol . EUR) (gnc:time-no-zone . 2020-08-18 10:41:41) (last . 11879/10000) (currency . USD)))
* 10:41:43 DEBUG <gnc.scm> handling-request: (currency GBP USD)
* 10:41:44 DEBUG <gnc.scm> results: ((GBP (symbol . GBP) (gnc:time-no-zone . 2020-08-18 10:41:41) (last . 131129/100000) (currency . USD)))

* 10:41:44  INFO <gnc.gui> [lookup_price] Found reverse price: 1 GBP = 1.311290 USD
* 10:41:44  WARN <qof> [gnc_numeric_to_decimal()] Rounding required when 'never round' specified.
* 10:41:44  WARN <qof> [gnc_numeric_to_decimal()] Rounding required when 'never round' specified.
* 10:46:15  INFO <gnc.gui> [lookup_price] Found reverse price: 1 GBP = 1.311290 USD
* 10:46:15  INFO <gnc.gui> [update_price] Existing price is preferred, so won't supersede.

* 10:46:15  INFO <gnc.ledger> [gnc_split_register_save] finished saving split "" of trans "usd gbp"

* 10:46:15  INFO <gnc.register> [listen_for_account_events] insert new account Trading:CURRENCY:GBP into qf=0de8d988

* 10:46:15  INFO <gnc.register> [listen_for_account_events] insert new account Trading:CURRENCY:USD into qf=0de8d988


======================================================
Enter transfer GBP / EUR  - Screenshot "currency2.jpg"
======================================================
* 10:48:21  INFO <gnc.gui> [lookup_price] No price Found for GBP, EUR
* 10:48:21  INFO <gnc.gui> [lookup_price] No price Found for GBP, EUR
* 10:48:25 DEBUG <gnc.scm> ALPHAVANTAGE_API_KEY=*REDACTED*
* 10:48:25 DEBUG <gnc.scm> handling-request: (currency EUR USD)
* 10:48:28 DEBUG <gnc.scm> results: ((EUR (symbol . EUR) (gnc:time-no-zone . 2020-08-18 10:48:26) (last . 11887/10000) (currency . USD)))
* 10:48:28 DEBUG <gnc.scm> handling-request: (currency GBP USD)
* 10:48:29 DEBUG <gnc.scm> results: ((GBP (symbol . GBP) (gnc:time-no-zone . 2020-08-18 10:48:26) (last . 131203/100000) (currency . USD)))

* 10:48:29  INFO <gnc.gui> [lookup_price] No price Found for GBP, EUR
* 10:50:12  INFO <gnc.gui> [lookup_price] No price Found for GBP, EUR

* 10:50:12  INFO <gnc.gui> [new_price] Created price: 1 GBP = 0.000000 EUR

* 10:50:12  INFO <gnc.gui> [lookup_price] Found price: 1 GBP = 0.000000 EUR
* 10:50:13  INFO <gnc.gui> [lookup_price] Found price: 1 GBP = 0.000000 EUR
* 10:50:13  INFO <gnc.gui> [update_price] Same price for GBP in EUR

* 10:50:13  INFO <gnc.ledger> [gnc_split_register_save] finished saving split "" of trans "gbp eur"

* 10:50:13  INFO <gnc.register> [listen_for_account_events] insert new account Trading:CURRENCY:EUR into qf=0de8d988



More information about the gnucash-user mailing list