[UPDATED link 1/20/2011 - the author (Hung Le) updated the Java app and the link now points to the updated version. This is an ideal alternative for those that only need to update quotes (no Account Statement updates) and don’t wish to install Python scripting]
The first comment I received on my new Blog site is from Hung Le and he offers a Java app (hleOfxQuotes) he wrote to obtain quotes from Yahoo! and output them into an OFX file for import into Money. If you already have Java installed, download the latest Release version of the app , save it on your PC, and just click on it.
The program is easy to use and works great! The first time you import the file, just link it to a Dummy Investment Account you can create on the spot (don’t link it to a real account, since the download shows you own zero (0) shares of each so as to not have any effect on your net worth). If you mess this up, see this Blog Page to fix the linked account.
NOTES:
- The other accounts that actually contain these stocks and funds will automatically update, but you will not see a daily change value as you do with online updates.
- The first download update of the day takes hold for that date, so run this after 6 or 7 pm EST if you’d like the quotes to be “closing bell” values, especially regarding mutual funds (stock values don’t have to be computed).
- If you’d like currency exchange rates (although they work a little differently than the MSN method) or Market indexes, the method I’ve discovered and blogged here works with this app too!
- [added 2/4/2011] Apparently the newer test version(s) also work for Options and foreign exchange investments (see comments below for more)
- If you’d like quotes from other non-USA exchanges and other countries, the method I’ve discovered and blogged here works with this app too!
- Keep in mind though that the Yahoo interface is a “work around” intended solely for tracking things that aren’t held in an OFX-enabled account. If your investments are held in accounts for which you have an OFX download option, that may be the prefered method.
Thank you Hung Le!
-ameridan

For those of you that are curious as what an OFX file looks like, I’m publishing the file generated with the hleOfxQuotes app requesting quotes for Ford stock and the Dow Jones Avg this evening:
<?xml version="1.0" encoding="UTF-8"?> <?OFX OFXHEADER="200" VERSION="200" SECURITY="NONE" OLDFILEUID="NONE" NEWFILEUID="3379335459138709546"?> <OFX> <SIGNONMSGSRSV1> <SONRS> <STATUS> <CODE>0</CODE> <SEVERITY>INFO</SEVERITY> <MESSAGE>Successful Sign On</MESSAGE> </STATUS> <DTSERVER>20100213033831</DTSERVER> <LANGUAGE>ENG</LANGUAGE> </SONRS> </SIGNONMSGSRSV1> <INVSTMTMSGSRSV1> <INVSTMTTRNRS> <TRNUID>3965303700877776334</TRNUID> <STATUS> <CODE>0</CODE> <SEVERITY>INFO</SEVERITY> </STATUS> <INVSTMTRS> <DTASOF>20100213033831</DTASOF> <CURDEF>USD</CURDEF> <INVACCTFROM> <BROKERID>le.com ofx quotes updater</BROKERID> <ACCTID>0000-0001</ACCTID> </INVACCTFROM> <INVPOSLIST> <POSSTOCK> <INVPOS> <SECID> <UNIQUEID>F</UNIQUEID> <UNIQUEIDTYPE>TICKER</UNIQUEIDTYPE> </SECID> <HELDINACCT>OTHER</HELDINACCT> <POSTYPE>LONG</POSTYPE> <UNITS>0</UNITS> <UNITPRICE>11.12</UNITPRICE> <MKTVAL>0.00</MKTVAL> <DTPRICEASOF>20100213033831</DTPRICEASOF> <MEMO>Price as of date based on closing price</MEMO> </INVPOS> <REINVDIV>Y</REINVDIV> </POSSTOCK> <POSSTOCK> <INVPOS> <SECID> <UNIQUEID>^DJI</UNIQUEID> <UNIQUEIDTYPE>TICKER</UNIQUEIDTYPE> </SECID> <HELDINACCT>OTHER</HELDINACCT> <POSTYPE>LONG</POSTYPE> <UNITS>0</UNITS> <UNITPRICE>10,099.14</UNITPRICE> <MKTVAL>0.00</MKTVAL> <DTPRICEASOF>20100213033831</DTPRICEASOF> <MEMO>Price as of date based on closing price</MEMO> </INVPOS> <REINVDIV>Y</REINVDIV> </POSSTOCK> </INVPOSLIST> </INVSTMTRS> </INVSTMTTRNRS> </INVSTMTMSGSRSV1> <SECLISTMSGSRSV1> <SECLIST> <STOCKINFO> <SECINFO> <SECID> <UNIQUEID>F</UNIQUEID> <UNIQUEIDTYPE>TICKER</UNIQUEIDTYPE> </SECID> <SECNAME>FORD MOTOR CO</SECNAME> <TICKER>F</TICKER> <UNITPRICE>11.12</UNITPRICE> <DTASOF>20100213033831</DTASOF> <MEMO>Price as of date based on closing price</MEMO> </SECINFO> </STOCKINFO> <STOCKINFO> <SECINFO> <SECID> <UNIQUEID>^DJI</UNIQUEID> <UNIQUEIDTYPE>TICKER</UNIQUEIDTYPE> </SECID> <SECNAME>Dow Jones Industr</SECNAME> <TICKER>^DJI</TICKER> <UNITPRICE>10,099.14</UNITPRICE> <DTASOF>20100213033831</DTASOF> <MEMO>Price as of date based on closing price</MEMO> </SECINFO> </STOCKINFO> </SECLIST> </SECLISTMSGSRSV1> </OFX>
[UPDATED 1/29/2011] There are also beta test versions posted on Hung Le’s site as well, for those wishing to experiment further, that support two additional quote sources: ft.com and Google Finance Portfolio. Hopefully, those will give our UK/Canada users additional sources for their quotes. He has also added a new mapper.csv function. Please read the Help files (Readme.txt) carefully.
In your current working dirctory, create a file named mapper.csv. It is a comma-separated-value, you can use Excel to create it but remember to save as CSV file.
mapper.csv MUST have the following header (case-sensitive, make sure spelling is correct)
MSMoneySymbol,QuotesSourceSymbol,IsMutualFundAdd row as needed
. First column: the symbol for a stock/fund in your MS Money
. Second column: the symbol that can be find in your quote source
. Third column: true if is a mutual fundLet’s say your ft.com’s results.csv has price info for BBT:NYQ. But in MS Money the same stock has symbol BBT and this is a
stock, you would add row
BBT,BBT:NYQ,FALSEYour results.csv use BBT:NYQ (QuotesSourceSymbol)
The generated *.ofx SHOULD have BBT (MSMoneySymbol)
added by ameridan from Hung Le’s comment 1/31 on Microsoft Money forum:
For currency issue: currently I do write out the OFX currency tag per security but I have no clue if MM will honor it[SECID]
[UNIQUEID]EZJ:LSE[/UNIQUEID]
[UNIQUEIDTYPE]TICKER[/UNIQUEIDTYPE]
[/SECID]
…
[CURRENCY]
[CURRATE]1.00[/CURRATE]
[CURSYM]GBP[/CURSYM]
[/CURRENCY]I set CURRATE to 1.00 right now but I have code to look up the exchange rate (using the pseudo-symbol USDGBP) but I have not put the code in yet because I did not want to muddle the water right now for the UK folks who are still having problem getting MM2005UK to update the price. Obviously, we can also convert from GBP -> USD before writing to *.ofx.
I want to give Google Porfolio a plug here regarding how it handles currency. For Google Portfolio, you can set the porfolio base currency and Google will report the position market value in BOTH: “native” currency and portfolio based currency. For example, let say I set my base currency to GBP and have a position of AAPL, Google will report market value in both USD and GBP. So that will take of currency conversion outside OFX generation tool. Currently hleOfxQuotes.jar can fetch data from Google Portfolio and will:
1. preserve shared count (instead of using 0 count) // this is mostly to see if it will help the UK folks
2. using “native” currency // since I don’t know how multi-currency actually works in MM
But it is fairly easy to add a couple check boxes to let user choose what he/she wants.
FYI, I am back to using MM on daily basis now (hence more active in updating hleOfxQuotes.jar). I gave Quicken a college try but things are not working out:
. I am used how the UI works and could not really overcome that
. In Quicken, if I hide the reconciled transaction, the balance is displayed certain way that is just too confusing.
I don’t mean to bash Quicken here but just a note to say that I am back to the “right” side
.
The comments below are only the most recent – if you wish to review older comments, there is a link near the bottom of the page to do so.

Hung Le said
Danny,
I believe the OFX said:
13.3.2 Precision
OFX does not specify the precision of fields since the precision is client-dependent. However, it is recommended that clients and servers follow these rules:
◆Clients and servers should send as much precision as they have
◆Clients and servers should use a precision equal to or better than 1/256 of a share
So I suppose we are at the mercy of MM for the “client-dependent” part.
Just want to make sure on one point: we are carrying all the precision from quote source to OFX, right? If quote source has 0.005, the OFX should have 0.005.
Danny said
I have exported using the Save OFX button and the output for the share is below. In the Java app window the price shows as 0.0049.
ABH
TICKER
OTHER
LONG
0.085
0.00
0.00
20110216002241
1.00
GBP
Price as of date based on closing price
Y
Hung Le said
Danny,
That is “bad”: a bug. I did not keep enough precision when around when converting: 0.4900 GBX is becoming 0.00 GBP
I will fix this.
Hung Le said
Danny,
I’ve made the change in the source tree to fix the problem you reported. Using your example, the UNITPRICE output is now: 0.0049 as in
<UNITPRICE>0.0049</UNITPRICE>
I’ve made a version with above change available at:
http://www.le.com/~hle/out/hleOfxQuotes/SNAPSHOT/hleOfxQuotes-SNAPSHOT_20110215_001.jar
Others, please don’t use unless you same problem as Danny: loss of precision. In general, anything labeled SNAPSHOT is created straight off the HEAD of the source tree and may contain changes that have not been well tested.
Danny said
Hello again,
I downloaded the SNAPSHOT and have updated for today. It works flawlessly! Excellent work Hung Le!
Cheers,
Danny.
Hung Le said
Regarding help files. I am slowly back-filling them to the Wiki on Google Code:
https://code.google.com/p/hle-ofx-quotes/w/list
In general, I am going to following the following model:
. We will keep the discussion here.
. Once a topic has “enough meat”, I will start summarize it to the Wiki,
Best,
Will said
Aaah, thanks Hung Le….I didn’t save the mapper.csv in the same directory as the .jar program – “RTFI” I guess….
Cheers,
Will
Mike Scott said
Hung Le,
First of all thanks for taking all the trouble to write this utility – many people are getting it to work but I am not!
I have followed your instructions:
<>
The utility retrieves the prices correctly and when I import to MM I am advised that the import was successful. The only trouble is none of the prices are updated at all!
Any ideas – I am using MM 2002 UK?
Thank you.
Veronica said
Mike – I suspect you are having the same problem that we MM2005-UK users found – ie prices are imported but not updated to other shares with the same code. The only way I found round this was to set the unit count to 0.001 on the first run so that MM adds a part-share , which forces a price update. On the next run set the unit count to 0.002 to add another new part-share. From then on keep alternating between 0.001 and 0.002 so that MM has to update the share count and thus the price. See some earlier comments. I think Hung Le was updating the jar to allow this unit count alternation for UK users.
I am using MM2005-UK which until a couple of days ago was still updating all share, fund and index prices automatically. However, since 12-feb it has stopped updating the share prices (though fund & index prices are still auto-updating ok). It could be that MSN-Money just hasn’t had share price updates from Morningstar (or wherever) since the weekend, or it could be the start of the switch-off.
Have you checked that your version of MM2002-UK doesn’t still auto-update ?
cheers,
veronica
Hung Le said
Mike, as Veronica has mentioned, one possibility that you did not enable the “randomized shared count” feature. Please see:
http://code.google.com/p/hle-ofx-quotes/wiki/UKUsers
Section: Known working path.
Leigh said
Mike,
If it’s any help, I get the same symptoms as you. The quotes.ofx file is generated nicely by Hung Le’s java code, MM says the import is successful, but the prices of the shares remain unchanged. Using the Update Prices->Update Prices Manually… I can see that the last on-line update was on 11Feb.
For funds, the last update was yesterday (15Feb).
Strangely, the Last Downloaded date on the Import screen says 30/11/1999. I’m wondering if this date is causing the problem. Perhaps there is some XML element in the quotes.ofx file required to determine the date.
If using MS Money 14.02.120.1105 (from the About MM).
Veronica mentions “Have you checked that your version of MM2002-UK doesn’t still auto-update?”. How does one turn this off?
Any help appreciated.
Leigh
Hung Le said
Leigh,
There is a work-around for the “30/11/1999″ date. You need to enable the setting:
Force <INVTRANLIST> setting. See:
https://code.google.com/p/hle-ofx-quotes/wiki/UKUsers
UK users that still have problem, please go through the above checklist first.
Best,
Leigh said
Result!
I have a solution that works for me. I’ll detail it for you here, in case it helps.
I’m using MM 14.02.120.1105. Using the Yahoo! portfolio didn’t work as the stock prices were in pence and as all the prices in MM are in pounds and pence, the imported figure stock prices was 100x too high. So I put a portfolio in Google. This worked a treat, I just let Money rename the stock codes from e.g. “BP.” to “LON-BP”. As Hung Le suggested, I switched on the Edit->Randomize Share Count and also the Edit->Force .
To get the download to work, in the Google portfolio, as well as adding the share codes, I needed to enter a dummy transaction for each share.
In Google, many funds are missing, however for the moment, MM is still downloading fund prices. I guess when that stops, I have to figure out what to do next.
I hope this helps someone. I’ve been struggling with this for the last 2 days and am so relieved to have more or less the same functionality back. Why, oh why, MS have you stopped this service? How many people are you going to cheese off?
Mike Scott said
Veronica,
Thanks for the comments. No, my version of MM is not auto updating at all. I am glad to see that Leigh has or rather had this problem as well!
Hung Le,
I followed all the instructions in the link you gave including using only FT.com for the prices and resetting the two options in “edit” and your utility imported the correct prices. But, when I clicked the “Mapper” tab all the entries were blank – I am using Build 20110213-001.
I created a dummy account in MM, hit the “Import to MS Money” tab and although the dummy stocks were updated, the stocks with the same name in a different account were not updated.
Mike
Hung Le said
Mike,
For the mapper problem, please see:
https://code.google.com/p/hle-ofx-quotes/wiki/mapperDotCsv
The key part is to make sure mapper.csv is in the same directory as the *.jar file.
Also, send me a copy of your hleOfxQuote-log.txt file. That is the log file. Should be in the same directory as your *.jar file.
Email to hleofxquotes at gmail dot com
will said
THANKS! This is wonderful. I have used Mr. Hung’s Java program for Google Portfolio and it works perfectly. Finally, a way to update USD prices
A comment. I also have a EURO portfolio. And although the Java file correctly draws the share from Google Finance and labels them as EURO and not USD. When I import into Money, it treats them as USD prices and not EURO prices.
I’ll keep following to see if there is a solution.
Regardless, I am very grateful for your help. Many Thanks.
Hung Le said
Hi Will,
This is kind of an unknown area for me: what MM does with non-based currency. I assume your base currency is GBP and one of the security is EUR.
I will look into this and will probably request some data from you.
Best,
will said
Hi,
My base currency is USD. I have tried importing the EUR prices into accounts in MM that are in USD and separately into accounts that are EUR. In both cases, MM thinks the prices are USD even though they are flagged as EUR in your (excellent) Java program.
Hung Le said
Hi Will,
In the 2nd case, into EUR account, did MM than convert the incoming price using some sort of exchange rate? For example, let’s say the incoming price is 1 EUR and current exchange rage from USD to EUR is 0.7418.
Did the price eventually get into MM as: 0.7418?
My theory is that MM is treating all incoming price from OFX as base currency (which is USD in this case). It then figures out that if a security currency is not USD, it will go ahead and convert to security currency using its internal exchange rate table. Can you see if you can confirm or deny that theory?
Thanks,
Dave said
If I am understanding these comments properly, I believe the underlying behaviour is as Hung Le suggests. My portfolio currency is CAD, but I have one stock that is USD. If I manually edit my OFX and set currency as CAD and current price at $10.00 for both a Cdn and the US ticker, when I import to MM the price shown is 10.00 for the Cdn share and 10.089 for the US… so MM does appear to be translating the incoming value from the portfolio currency (defined in the OFX), to the ‘target’ currency for the holding (as defined within MM), using whatever the last exchange rate MM downloaded was. Since we are no longer getting updates, the exchange rates are also probably stagnant now.
I also did the math test : for the USD holding, price per share was 10.089 (ie value in USD), Market Value for the holding was also presented in USD (#shares * 10.089), and Portfolio Value was properly presented in CAD. Adding up Market Value for all holdings Portfolio Value… but if I convert the US holdings Market Value to CAD, things DO add up (did I explain that in a way that it made senes to everyone?)
The problem is, since the exchange rates are guaranteed to be wrong, the currency conversion it is doing for me is useless. Unless we have or find a way to translate holding values from source, or to update the exchange rate tables in MM, I am probably just going to tell MM that the US stock is actually $CAD and just remember I am really looking at something that is in USD.
will said
Hi,
Yes, exactly. MM took the EURO price from your java program … assumed it was USD then converted it to what MM thought should be EURO.
Separately, is there an easy way to “manually” update FX rates in MM?
Hung Le said
Will,
On updating FX rates, unfortunately no, at this point. At least not via the OFX import path. There are some ongoing work to enable to write into *.mny (then hopefully, we will be able to update the FX rate table directly). But that works is still in pretty early stage and not ready for general consumption.
The OFX spec does have support for security specific currency (or target currency) but it appears that MM is not honoring it. In particular, I do write out, for a given security, what its currency is. MM should really just take the price in as-is if the incoming currency matches the target currency.
Hung Le said
Will,
I just re-read you comment. Yes, you can “manually” update the FX table within MM. Try
Tools->Settings->ProgramSettings->UpdateCurrencies
Richie said
Hi Will, Dave,
I have MS Money with base currency set to CA$. I also have German shares in Euro and US$ shares. I have been using Yahoo with success to download all these different currency shares even though Yahoo lists the correct numerical price but labels everything as USD. But when I import into MS Money, the exact same (and correct) numerical price is downloaded and marked as Euro or CA$ etc.
I hate to ask but are you sure you have your Euro investments in a Euro currency account and US$ investments in a US$ account? To check go to the Portfolio Manager page. Then right click on the account name -> see account settings -> account currency and check/change the currency for this particular account.
BTW I’m still using Money Plus Deluxe. I’m scared to move to the Sunset Edition just yet and if it ain’t broke … !!
I hope this helps.
Dave said
Richie,
No… I don’t have my US holding in a US account. I have a single brokerage account (with all statements in CAD) that has securities that trade in different currencies. I also just tried creating a US account and found no difference in behaviour.
Richie said
Hi Will, Dave,
One more thing I just remembered. The first time I updated using the Java program, for many shares (but not all) I had to choose to either to accept the shares as new shares or choose to match the symbols with shares that I already owned. I think I did this by clicking on my Dummy account on the page that pops up immediately after downloading that says “You have 3 statements to read” and then Money immediately went into this routine of choosing to link downloaded shares with shares already present on the local computer.
I wonder if your Euro shares slipped through the cracks and ended up in a wrong currency account etc etc
Hope this helps
Hung Le said
A thought: this could be a case of ‘two wrongs will make it right
’
. Since MM treat EUR price from incoming OFX as USD (wrong #1) and then try to the right thing by convert that value to EUR using exchange rate.
. We can undo the last step by setting the EUR exchange rate to 1 (wrong #2)
Obvious, this will work only if you no longer getting exchange rate from MM server and that setting the exchange rate to 1 does not have any other consequences.
To set the exchange rate manually in MM:
https://code.google.com/p/hle-ofx-quotes/wiki/Edit_FX_Table_Manually
will said
OK, I think I understand how to get the Java import for non USD shares to work without having to cheat the exchange rates to 1.
I am using Google Finance portfolio to update EURO shares.
As I reported yesterday, every time I imported the prices into a dummy file in MM the prices were treated as USD prices even though they were correctly labeled as EURO prices in the Java file.
However, once I have allowed MM to import some share values, then the NEXT time the prices are imported they will be treated as EUROS. They are only incorrectly treated when there is an “add shares” transaction during import.
This is difficult to see at first because, if you immediately update again, it is still WRONG – I think this is because MM doesn’t see the new price as more recent (maybe since market closed?).
However, if I DELETE the most recent price (that was imported incorrectly) in the MM price history. And then import again, (now with no need to adjust shares in the dummy account because they already exist) ….. then the price updates correctly into EUROS.
I hope that makes sense. And it explains why some people were having no problems and others were.
A watch out. Strangely, I had to have the dummy account be a USD account (my base currency). Otherwise, when importing these EURO shares I received a message saying I could not import because the currency of the shares didn’t match the currency of the account in MM (even though they were both EURO).
I greatly appreciate everyone’s willingness to engage here and help especially Mr Hung LE.
Jono said
Couple of problems using the ft.com import .
I have successfully downloaded current data from ft.com and adjusted the import with mapper.csv file. But
1: When importing to MM its trying to add .47 of shares to each holding. If I add data first and then import it trys to add .47 shares again . i.e it says the statement doesnt match the quantities of shares I have in the money account and if I let MM update the positions MM will delete ALL the shares!!. Why is it trying to change the shrare quantities?
2. Following on from above even when Ive allowed it to change the shares to .47 per stock the prices are not being updated.
Hung Le said
Jono,
In short, the “randomized” share is an attempt to force MM to add transations so that it will take the incoming price.
Please see:
http://code.google.com/p/hle-ofx-quotes/wiki/UKUsers
One possibility for price no updating is that MM will only update the imported price ONCE per day. I need a write up on how to you can debug that. Stay tune.
Best,
Hung Le said
Another point for UK user: you might want to try to DISABLE online updating to make sure that there is no “interference” between current online update (which might still be working for you) and the incoming imported price.
Please make backup so that you can go back to your previous setting.
See ameridan’s write up:
http://microsoftmoneyoffline.wordpress.com/2010/05/07/microsoft-releases-money-plus-deluxe-sunset-edition/
Look for the section: “IMPORTANT NOTES: Before installing the Sunset edition:”
Hung Le said
Quick clarification on above note “DISABLE online updating”. Please try only if the price update is not currently working for you yet.
Hung Le said
Traffic has been picking up recently and I am really enjoying my exchanges with everyone but I am afraid that the current ‘comment’ format in this blog does not lend itself well to a “conversation” that takes more than 3 replies. I am already “getting lost” in a couple of threads. So let me ask a favor that
. We continue to start new topics here
. If something sort of dragged out, 3 exchanges already and nothing resolved, that you log a bug here: http://code.google.com/p/hle-ofx-quotes/issues/list. That will give us a better chance to track unresolved stuffs.
. I am not going to be hard-ass about this: not going to scold anyone if s/he did a 4 replies. Goal is really to make sure unresolved thread does not get lost along the way.
Best,
HL –
Gordon said
Will this app work with any version of Money. I use Money 04
Hung Le said
Gordon,
Yes, should work for MM04. I’ve recalled seeing success report from
04′s users.
If you are UK user, please read this first:
https://code.google.com/p/hle-ofx-quotes/wiki/UKUsers
Hung Le said
I think I understand why some of the UK users have success and others still not seeing price update. It is related to the “randomized” feature:
. Our initial requirement is that we need to force a transaction to get price update. Randomized share count will sometimes force (1) adding shares, sometimes force (2) removing shares. Prices appear to update ONLY when shares are added (1). If you happens to get a randomize share count that cause a removal (2), no price will get updated.
. So for the next build, I will keep a count and keep increment .001 each time you do a update and let it wrap around at .999 (I will add a dialog to warn when the number is wrap around). If you do update once a date, this will be good for another ~2.5 years.
## Regarding multi-currency
. For users with multi-currency (for example, base is GBP and have some security in USD, EUR …). You will have to set the exchange rate in MM for all the involved currencies to 1. This is the case where ‘two wrongs will make it right’.
. (wrong #1), MM is treating all incoming price from OFX as base currency. But it will then try to convert them to security currency using its internal exchange rate
. (wrong #2) by setting the exchange rate to 1, we negate the last step
We need people who have multi-currency to give this a try and see if setting exchange rate to 1 will work and that the change has any other side effect. To change MM exchange rate
https://code.google.com/p/hle-ofx-quotes/wiki/Edit_FX_Table_Manually
I know my explanation is sorted of convoluted. If you sort of get it and think can help clarify, please jump in.
Best,
Dave said
Sorry for how long this is… Re the multi-currency question, the only side effect I can see is incorrect calculation of account and portfolio value. I tried to talk to this in my previous post but perhaps I can do better with an example.
One account, 2 holdings. One holding has current ticker at $10.00 CAD, the other is at $10.00 USD. OFX shows $10.00 for both. Because of real world exchange, lets pretend the exchange is 1.01, so $10.00 US is worth $10.10 CAD. Lets pretend we have 10 units each. If we leave the USD holding configured as US in MM, and force the exchange in MM to 1.0 to stop the price from being changed (as per Hung Le’s suggestion), you end up with
Holding A : in CAD : 10 x $10.00 CAD = 100.00 CAD
Holding B : in USD : 10 x $10.00 USD = 100.00 USD
Portfolio value will show as $200.00
It SHOULD show as $201 CAD, because the $100 USD is really $101 CAD, so true portfolio value is really $100 CAD + $101 CAD. MM won’t show this because it will also use the exchange rate of 1.0 to convert the Market Value of the USD holdings to CAD when it tries to compute the account or portfolio value.
Bottom line – the technique can be used to get the numbers for the individual holdings into MM without messing them up, but you won’t get accurate account or portfolio totals anymore. Totals will assume all holdings are in the portfolio’s currency.
Outlining one potential solution scenario (because it involevs working with exchange rates don’t know if it will ever be viable using the OFX approach) : To really work properly, price output in the OFX for foreign holdings (ie not in the base currency) would have to be altered based on appropriate exchange rate (in the above case, with exchange at 1.01 OFX should show 9.90099 for the US holding instead of 10.00), exchange rate would also have to be updated in MM to also reflect 1.01, when value is imported MM applies the exchange and ends up coming back to the original $10.00 USD, and Market Value would be $100 USD. Since MM knows the exchange is 1.01, when it computes account or portfolio value it applies the exchange to the Market Value of the US holding and gets 100.00 * 1.01 = $101 CAD equivalent, so overall total is properly reflected as $201 CAD. Again, two wrongs make a right, but a different two wrongs than Hung Le proposed.
Again, don’t know if we can get there or not… but thought I would throw it out for consideration.
Hung Le said
Dave,
I think I under what you are saying for the proposed solution, I think all the “parts” are there. The most crucial number is the exchange rate that I need to have at the point of writing out the OFX. I just need an external file of currency exchange rate that say
USD,CAN, 1.01
USD,GBP,0.67
The file needs to be managed and synchronized.Two ways
. I can query that data automatically using the psedo-symbol USDCAN, USDGBP … but then user will have to manually make the same change in MM internal currency table
. Or user take on the task of deciding when it is appropriate to update BOTH tables: MM currency exchange and the external files.
Notes: there are works being done to be able to write to the *.mny file which will make this easier. I wish that I have more free times to work on that. Caveat: even if we get there, the update will have to “exclusive”. Will have to stop MM before that write can take place.
Sujan said
Hung, perhaps the best way to handle multi-currency portfolios is not to try and combine updates to multiple-currency intruments into a single OFX file.
I have a dummiy USD investment account for my USD based securities and another dummy CAD investment account for my CAD based securities. I can then do two separate imports, one for each currency. If using Google as the quote source, one portfolio can be created for each currency.
The bggest issue in the current code being able to handle this approach is that the OFX generation hard-codes the account number (ie 9876543210) so you cannot import into different accounts each with a different curreny.
My suggestion would be that instead of letting the user pick the default currency, let the user select which acount to import into. The user would need set up accounts and currency for each account, prior to that, perhaps in a csv file.
Mike S said
Hi,
I have been an enthusiastic user of Money 99 for keeping track of my UK share portfolio and have been in blissful ignorance that MS were going to discontinue their share price feeds.
I was only prompted to do a search on MS share price feeds when my Vista share gadget stopped showing updated UK share prices, a couple of days ago, and I discovered that MSN Money UK share prices were also out of date. As it happens, they seem to be working OK again today.
Anyhow, I was delighted to stumble on your web site and discover that you have developed a means of importing share price feeds from other sources, as my Money update now seems to have stopped. Thank you.
Please excuse my ignorance but am I able to use Hung Le’s Java app with Money 99 or do I need to try to update my version of Money to the Sunset Deluxe version?
Regards
Mike
Hung Le said
Mike S,
One more thing: I don’t think you can go directory from MM UK version to Sunset. I had never tried it but posting from microsoft newsgroup indicated Sunset is US specific will not take UK Money file.
If MM99 does not take OFX v2, take a quick look at PocketSense which generates OFX v1 (http://sites.google.com/site/pocketsense/home/msmoneyfixp1)
Hung Le said
Mike S.
I don’t know if Money 99 will accept the OFX v 2.0 output which is what the tool is outputing. My suggestion, give it a try on a test file:
. Make a copy of your current *.mny to something like testOfx.mny. Double-click on testOfx.mny to start. Then double-click on the generated *.ofx file.
. You can always go back to your real file by double-click on *.mny file.
Let’s us know,
Best,
Jono said
Thanks for this great app and your progress on it. As a UK user with o share and fund portfolio over over 50 its taken me a while to set up the ft.com portfolio and the mapper and, after a couple of abortive attempts yesterday, today I have finally managed to have all my portfolio updated . So thanks its worked great for the prices.
Now for a clarification. Am i right in thinking that all columns in MM that rely on downloaded prices e.g Last Updated , %change , Change, Last Price etc. will not get updated at all despite the price being updated via your method. If so is there any way that the date can be updated via your app?
Hung Le said
Jono,
On other columns, unfortunately, not via imported OFX. There are works being done to make that possible but we are still at very early stage of that project.
Mike S said
Hi Hung Le,
Thanks for your immediate reply and alternative suggestion.
I’ll try your app and let you know how I get on.
Curiously, my MS share price feed seems to have started up again but some of my historic prices, pre 11th Feb, have been altered by a factor of 100. This has messed up my charts and the gain figures. Very frustrating!
Regards
Mike
Hung Le said
Hi Mike, I am assuming that a similar post on microsoft newgroup was from you. Same offer, if you can give a specific symbol, I can try checking it out for you using my MM2005UK on a VM.
Veronica said
Hi,
Just to let UK users know – MS-Money-2005-UK (v 14.0.100.1105) is updating share prices automatically again. I think the problem may have due to the LSE changing to the Millenium handling system – apparently some other systems did not pick up data from this new system correctly (or so I read in the paper today).
So for me all share, fund and index prices are still auto-updating without me having to do anything clever with the java app or pocketsense.
cheers,
veronica
Gordon said
Thanks for that Veronica. I’m using Money 04 UK. Tried this afternoon, and updating!
Jack said
I was wondering if Microsoft Money has made the final change. If they have, thanks a “million” because everything I wanted to to have work, is working. The portfolio site is updating the prices just as before.
I would appreciate a response as I would like to be at ease.
TNX,
Jack
Jack said
I am wondering if Microsoft Money has stopped updating, as the fix is working great if they flipped the off switch. Knowing this would help me sleep
ameridan said
Jack,
The reason you are not getting a reply is that nobody knows for sure. UK users seem to still be getting online quote updates and although the servers remain ON, for the most part, they are no longer updating quotes to most US Money users any longer.
As Dominic P states:
Hung Le said
Update on multi-currency. I went ahead a implement the suggestion made by Dave (February 17, 2011 @ 1:15 pm).
I think we are getting the desired result.
Scenario:
. MM2005UK (running in a VM), base currency is GBP, a non-Dummy account (also has GBP as currency) has an existing BBT transaction (entered on Feb 01, 2011)
. Dummy account (GBP currency) will house incoming OFX import.
. On the tool side, I added a column in the mapper.csv to be able to specify that the quote source currency for BBT is USD
, Quote source retrieves price for BBT in USD as $28.32
http://www.le.com/~hle/out/hle/2011_02_18/from_source_quote.jpg
. A new fx.csv file has FX rate: (FromCurrency,ToCurrency,Rate)
GBP,USD,1.6195
. When tool starts to write OFX, it converts $28.32 into 17.4930GBP
http://www.le.com/~hle/out/hle/2011_02_18/ofx.jpg
. On import, MM notices that the currency for BBT is actually is USD, so it uses its internal FX table
http://www.le.com/~hle/out/hle/2011_02_18/ms_fx_table.jpg
And the account ends up having the value for BBT at the correct price which is $28.32
http://www.le.com/~hle/out/hle/2011_02_18/portfolio_manager_01.jpg
I know there are a lot of moving parts, and need to synchronize files (fx.csv and MM internal FX table) but I though Dave had a good idea and I did not want it to go stale.
In light of MM2005UK is still getting quote price update, I don’t think anyone will want to try this out so I am not going to rush this out yet. Let me know otherwise.
Best,
Hung Le said
More on multi-currency, on “Sujan said February 18, 2011 @ 2:27 pm”
I think that is a valid approach. What I did not realize until I read you proposal is that actually, there are THREE currency:
1. The base currency
2. The account currency
3. and the security currency
In your scheme, we basically punt on the FX conversion and always write out the price for security into the matching account currency.
I will put this into the TODO list and have a SNAPSHOT available for you to try.
Hung Le said
Sujan, I have a SNAPSHOT *.jar file that implements the “profiles” that let you quickly switch between account/currency.
Please see:
http://code.google.com/p/hle-ofx-quotes/issues/detail?id=4#c3
Sujan said
Hung Le, thanks for adding the feature. I have had a chance to test it. It works well. I have posted additional details in my comments:
http://code.google.com/p/hle-ofx-quotes/issues/detail?id=4
Hung Le said
Someone gave the tool a try and somehow mess up his *.mny. He sent me an email complaining but unwilling to log a bug or tell me what went wrong (so at last I can document it).
Anyway, I thought it will be useful to document what I personally do when I test out new feature for this tool: I use a copy of my *.mny file
http://code.google.com/p/hle-ofx-quotes/wiki/Rolling_Back
ameridan said
Great tip Hung! Although the backup strategies should still be maintained, your method is a very simple way to try out all these Beta scripts with confidence.
Your Google project site is proving to work out nicely too!
By the way, I added a note at the top of the Comments section, in case someone is wondering why they can’t find an older comment.
Hung Le said
Quick update on what I am targeting for next BUILD (next week-end: Feb 26):
All issues with status “Started” as listed here:
http://code.google.com/p/hle-ofx-quotes/issues/list
If you have something you would like to get in, please log a bug.
Best,
Gordon said
FYI tried the app today using Money 04. Had a problem because currency in Money was set to “Pound” instead of “British Pound”. Once this was altered it worked fine with UK shares. This had to be altered in TOOLS-CURRENCY, and also in each individual portfolio.
On only updating once each day, if you delete that days price in Money it will import the latest price.
Also you don’t have to set up a portfolio with shares in it on FT.com, just a Watch List. Saves a lot of time.
Hung Le said
Hi Gordon,
For my education, what is consequence of changing from “Pound” to “British Pound”? Within MM, what are the differences between them? Are they being handled as two different currencies?
gordon said
I don’t know the difference in MM. When I first used it years ago I must have set it up as Pound. Never had a problem with it, but when I tried your app yesterday it would not update the prices in MM until I changed it to British Pound. I think I got an error message that the currency was wrong. I could change it back and see what the error message was if that would help.
Hung Le said
FYI:
https://code.google.com/p/hle-ofx-quotes/wiki/Copy_And_Paste
Cut and Paste
Perhaps it is not obvious but copy-and-paste works via the “standard” keys
* control-c (copy)
* control-v (paste)
In general, anywhere you have a text-panel or a text-field, you can copy and paste. The most commonly used location will be:
* Quote panel: where you enter the symbols. You can copy the existing symbols or paste in from other source.
* Google login in panel: paste in user name, password, portfolio name …
Hung Le said
New build is available: Build_20110226_001
. PLEASE READ FIRST: the release note:
https://code.google.com/p/hle-ofx-quotes/wiki/Build_20110226_001
. Download:
http://code.google.com/p/hle-ofx-quotes/downloads/detail?name=hleOfxQuotes-Build_20110226_001.jar
General guideline on using new build:
* Read release notes to see if changes/fixes are relevant to you.
* Though the more people are using the new build, better changes bugs are flushed out and get fixed.
* See also: http://code.google.com/p/hle-ofx-quotes/wiki/Rolling_Back on how to protect yourself.
Jack said
My original software was MMoney2006 on a different computer. Since then I have searched my newer computer for this software and believe the current Money being used is online only. Is this possibel and does this mean I need to install this again using the old MMoney2006 or sunset?
This again is unsettling as your fix otherwise is working.
TNX in advance,
Jack
Hung Le said
A screen snapshot of the new “Download Statements” tab:
http://social.microsoft.com/Forums/en-US/money/thread/19b3bcaf-6fd8-4ac9-a8b5-d5223c9acf8d
Sujan said
Hung Le, I haven’t tried any of the new features around downloading ofx from financial institutions, but I’m really enouraged that you are working on it. I can’t wait to try it out once it is fully implementd. thanks again.
mijos said
Having some difficulty in importing FT.com share data into MM (2004 version12). Data is transferred into a dummy MM file but old share prices not updated. Mapper file does not appear to be used, despite being in same directory. Can you show where the header information should appear ( this is needed to strip out the LSE bit in XYZ:LSE ?) Also date information only appears in the FT CSV file if “my view” is selected on the FT.COM portfolio site.
Another possible source of share info might be the MSN Money Stockquotes facility Excel Add-on, which works very well in excel. but I haven’t tried to convert this to an OFX file (I’m not really into programming).
Hung Le said
Please clarify “Can you show where the header information should appear”. I think you are asking for an example of the mapper.csv file, right?
Suggest to take a look at (if you have not): http://code.google.com/p/hle-ofx-quotes/wiki/mapperDotCsv)
If that does not help, post your copy of mapper.csv file. Might be easier to log a bug at: https://code.google.com/p/hle-ofx-quotes/issues/list which provide a way to attach a file.
prj said
I am having a problem with Money Sunset Edition, I think. Maybe somebody has had something similar and can suggest a way out of the maze I am in.
I allowed MM’s importing routine (working from an .ofx) to point to a new (and proper) name for an existing symbol. (Previously, I had used ‘ABT’ and incorrectly Named it ‘Abbot Labs’ while the new entry was ‘Abbott Laboratories.’) Now, I can’t get the ‘ABT’ symbol to connect with the historical data and when I try to edit the original name (to correct it) the error message is that the symbol ‘ABT’ belongs to a different entity. The mapping problem is not in the .jar routine, but in MM somewhere.
I’m stumped!
Any suggestions would be most welcome.
ameridan said
prj,
I found a fix provided by Cal Learner back in 2007 which I’ve republished today as a Reference page http://microsoftmoneyoffline.wordpress.com/fixing-ofx-investment-mismatch/ to hopefully help you and others. Let us know (as a comment on that page) – hopefully Cal’s first reply will resolve this for you.
mijos said
hl,
Thank you for your reply. I was confused by the suggestion that (after importing a csv file from the FT.COM site) the mapper file should also appear under the mapper tab – and thought I had formatted the file incorrectly.
However, I seem to have managed to update my shares successfully on march3 after importing, by going through the MSM dialog for each change of share symbol.
But today the import process seems to want to add small share increments to my holding- each time I try to update via the dummy account.
I seem to recall you saying elsewhere that randomized share count and incremental count should both be set to false?
Hung Le said
Please see:
http://code.google.com/p/hle-ofx-quotes/wiki/UKUsers
for explanation on why we need to add shares to force MM2005UK to update the price.
mijos said
Hung Le,
Thank you for your patience. I understand now, and all appears to be working properly. Many thanks for your useful program.
Michael said
Can someone confirm what versions of Money support OFX importing? I’m trying to import quotes using Money 2004 (v12) but I get an error message saying the data is corrupt or not in the right format.
Hung Le said
Michael, can you reduce the quote to just one (for example: AAPL) and see if the problem is symbol-specific.
You can also log a bug at: https://code.google.com/p/hle-ofx-quotes/issues/list which will let you attach a copy of the generated OFX file.
Or send me a copy of the generate OFX to hleofxquotes at gmail dot com
Michael said
Thank you Hung. I’ve found the problem ticker to be BKYO.AX. It’s an option stock so it’s probably not fully populated with the correct data?
daniel said
I am using the google portfolio option. i’ve set up a separate google account with only the portfolio of tickers. I could care less if anyone else hacked into this account … so I have no concern about password theft.
Any chance that there could be an option to save the google account password so as not to have to enter it every time?
I started using google as an alternative to yahoo for quotes as I am also getting mapping problems with certain equities (like ABT) … I don’t know what the problem. The quotes are properly downloaded but Money is not able to import the data. It would seem that if I can see that the quote has properly downloaded and the symbol is correct, that the resultant OFX should alway work, but for some reason it does not for certain equities. If anyone is interested I can upload a known good OFX and a known bad one. When I compare the two they are substantially different.
thanks,
Dan
Hung Le said
Dan,
Save Google password: It is on the TODO list: https://code.google.com/p/hle-ofx-quotes/issues/detail?id=9
Hung Le said
Dan,
Re: inconsistent generated OFX fie. Do you have one or multiple Google Portfolio(s)?. The most important starting point is that to make sure the content of the bottom price table looks “good” before importing. The generated OFX is just a representation of the content of the price table.
Leo said
I’m using the Yahoo option. I have a total of 21 items in my dummy account -18 are mutual funds and 3 are ETFs. The EFTs are not updating even though the prices & OFX indicate the updated price. Any ideas what I may have done wrong? I am allowed to mix funds & non-funds, correct?
I’m using Build_20110213_001
Thanks in advance.
Hung Le said
Leo,
I suspect the reason the price for the 3 EFT are not updating is because their price is written out in the OFX file as OPTIONS type.
Does anyone have a working example of a EFT price update from a broker? I want to see how the EFT is written out. In particular the OFX type.
Thanks,
Mike said
Does this help?
{STOCKINFO}
{SECINFO}
{SECID}
{UNIQUEID}78462F103
{UNIQUEIDTYPE}CUSIP
{/SECID}
{SECNAME}SPDR S&P 500 ETF TRUST UNIT SER 1 S&P
{TICKER}SPY
{DTASOF}20110311033021.000[-5:EDT]
{CURRENCY}
{CURRATE}1.000
{CURSYM}USD
{/CURRENCY}
{/SECINFO}
{STOCKTYPE}COMMON
{DTYIELDASOF}20110311033021.000[-5:EDT]
{/STOCKINFO}
Hung Le said
Mike,
Thanks. OK, we have to generate the EFT as STOCKINFO. Leo, I am looking into it.
Best,
Leo said
Hung Le,
I don’t know if this information will help you, but the Python app works fine.
Thanks.
Hung Le said
Leo,
Can you send me a copy of the generated OFX file from hleofxquotes
hleofxquotes at gmail dot com
Thanks,
Julian said
I followed all the instructions in the link you gave including using only FT.com for the prices and resetting the two options in “edit” and your utility imported the correct prices. But, when I clicked the “Mapper” tab all the entries were blank
Bryan Tollerene said
Thank you for creating this.
Question: How do I “tell” Money that I want the updates to only occur in the dummy account? I have gone through all of the account settings on this particualr Money file and the only option I have to update is a real IRA account that I don’t want it to zero out all of the positions for. Even though the dummy account is created it does not show up in the list of choices of acounts that I can send the price data to.
Bryan Tollerene said
It appears that it only asks you where you want to download the quoted to the first time you use it with Money. So I chose the wrong account initially and now I want to use another one. Is there a way to make it “ask” me where I want to download the price information after the intial download as I had not created a dummy account the first time I used your app.
I have many Money files for different people on my computer.
Its working for me as long as I set up a dummy account before the intial download but for a Money file were I downloaded to an existing account the first time I am unable to “point” it to a newly created dummy account going forward.
Many thanks
Hung Le said
Bryan,
Please see: http://microsoftmoneyoffline.wordpress.com/fixing-ofx-financial-institution-file-association/
Bryan Tollerene said
Your app is brilliant.
If you are able to make it detect dvidend payments by a stock that would be incredible.
Many thanks
Hung Le said
Bryan,
In general, we need three things to make that happens
1. Source that can tell us that there is a dividend payment: some webpage that shows stock XYZ paid dividends of 1.2 on date 1/2/3456.
2. We get easily get to info from (1): an unprotected webpage (no login/password), and a way to parse above content.
3. and that the OFX spec has a way express that event: dividend payment
The most crucial is #3. I don’t think OFX has a “pure” dividend payments field that will then cause MM to auto-add dividend payment transactions to each of the account with that stock.
Maybe this will need to go into the ‘sunriise’ bucket (see: https://sourceforge.net/projects/sunriise/). Where we have more flexibility: we can examine all holding and create dividend transactions for a given stock’s dividend payments.
In short, I don’t think this will happen in the current price quoting tool.
Hung Le said
Question via email: “How many people are using hleofxquotes?” (I guess he was worried about being the first few to try).
I don’t have a good count. I thought about adding a “register” menu to help me keep track but I never like that feature anyway.
The closest stat available is the number of download:
http://code.google.com/p/hle-ofx-quotes/downloads/list
Check the last column.
Dave L said
Hi Hung Le and many thanks for the work you’re putting in on this.
I’m using UK version of Money 2000 and your Build_20110226_001 and the combination works very well for updating share prices.
I have a question regarding the use of the “Randomise Share Count” feature. I understand that it’s necessary to have some value in the transaction record in order for Money to update the share price. But why does it have to be random? Why not use a constant, very low number (say 0000001) of a share? That way the impact on the overall portfolio vale would be minimal.