tag:blogger.com,1999:blog-3426010974782125266.post7078818296553077647..comments2024-03-26T15:17:37.532-04:00Comments on PocketSense: Replacing Microsoft Money (continued)Roberthttp://www.blogger.com/profile/17335863888930686554noreply@blogger.comBlogger200125tag:blogger.com,1999:blog-3426010974782125266.post-40285839763933971262010-08-15T11:40:24.559-04:002010-08-15T11:40:24.559-04:00Time for a new comments thread. Go to the followin...Time for a new comments thread. Go to the following link to continue discussions.<br /><br />http://pocketsense.blogspot.com/2010/08/replacing-microsoft-money-continued.html<br /><br />This thread is being closed.Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-15942835929860424062010-08-15T11:00:22.335-04:002010-08-15T11:00:22.335-04:00That was my finding too. The most recent quote wa...That was my finding too. The most recent quote was from 2004 for tdi*cbf.to which is the symbol for TD Canadian Bond Index Fund. <br /><br />-DanAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-19980241119165614242010-08-15T09:12:23.676-04:002010-08-15T09:12:23.676-04:00I verified that Yahoo! does not support Canadian m...I verified that Yahoo! does not support Canadian mutual funds. They do support Toronto Exchange stock quotes, but not funds. I'm going to look again to see if another open provider has an "open" quote API that we could use in addition to Yahoo. Stay tuned...Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-85444838698905802882010-08-14T12:01:24.739-04:002010-08-14T12:01:24.739-04:00Thanks Robert for getting back to me.
Lets take t...Thanks Robert for getting back to me.<br /><br />Lets take the Canadian Mutual Fund offered by TD Bank in Canada - TD Canadian Bond Index-e. Symbol TDB909. I am unable to get the Yahoo Finance's corresponding symbol even on the Canadian site of Yahoo Finance. I understand the program updates the quotes from Yahoo Finance site - right?<br /><br />Unlike the U.S., not many Canadian Mutual Fund companies offer download functionality.<br /><br />Looking forward to your suggestion.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-18089268253150902482010-08-14T10:31:52.385-04:002010-08-14T10:31:52.385-04:00Interesting question re: mutual funds outside the ...Interesting question re: mutual funds outside the US. If you download statements from your Investment Institution (e.g., Vanguard), the ticker symbols for mutual funds that *you own in an account* will update from the statement. Are you wanting to watch Mutual Fund prices that you do not own in an account, or for an account that you cannot retrieve statements? If so, could you give an example CA fund symbol?Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-22673088812130157452010-08-13T22:57:37.140-04:002010-08-13T22:57:37.140-04:00I just installed ActivePhyton and the Pocketsense....I just installed ActivePhyton and the Pocketsense. I added all the ticker symbols for the U.S> and Canadian Stocks. However, I am facing a challenge with adding symbols of Canadian Mutual Funds. Can someone help? For example I tried searching the symbol for TD Canadian Bond Fund on Yahoo Finance (Canada) but the search returns with no selection.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-79511256235909449912010-08-12T08:29:38.919-04:002010-08-12T08:29:38.919-04:00Appreciate the positive feedback (really).Appreciate the positive feedback (really).Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-4174261792484392282010-08-11T13:49:25.689-04:002010-08-11T13:49:25.689-04:00Went thru the ActivePhyton install and the Pockets...Went thru the ActivePhyton install and the Pocketsense setup. Pocketsense is a thing of beauty, and for me it works like a charm.<br /><br />Many thanksAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-59522240395934712212010-08-09T12:21:11.307-04:002010-08-09T12:21:11.307-04:00I did all that but it didn't work, but now I d...I did all that but it didn't work, but now I did it again, and it did. Don't know why, but thanks.<br /><br />You will be hearing from me again (either with additional questions or a big THANKS!).Unknownhttps://www.blogger.com/profile/05114311424114400635noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-55339155891679194912010-08-07T09:32:04.908-04:002010-08-07T09:32:04.908-04:00Just to verify: You have installed ActivePython f...Just to verify: You have installed ActivePython first?<br /><br />- Run Setup.py by double clicking on it. This will create your local sites.dat file.<br />- Exit Setup.<br />- Right-click the new "sites.dat" and select "edit". If the "edit" option is missing, select "open with" from the right-click menu and choose "Notepad".Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-48528266586433106992010-08-07T01:19:36.726-04:002010-08-07T01:19:36.726-04:00Have you run setup.py?Have you run setup.py?MikeVhttps://www.blogger.com/profile/08096060721468399621noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-84537787964290767952010-08-06T22:34:24.670-04:002010-08-06T22:34:24.670-04:00I not a techie and need help. I downloaded the po...I not a techie and need help. I downloaded the pocketsense file and am just following your instructions. I've done step one under configuration, but in step 2, I don't see a sites.dat file in the directory. I have template file called "sites," but it won't let me edit. HELP!Unknownhttps://www.blogger.com/profile/05114311424114400635noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-58879714543592821252010-08-05T14:31:13.031-04:002010-08-05T14:31:13.031-04:00Thanks Mike. Just wanted to verify my understandi...Thanks Mike. Just wanted to verify my understanding of what you were doing. I will add a global routine to scrubber.py that does this for specific situations (e.g., 000000 and NULL time stamps).Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-12732666801807352372010-08-05T11:55:07.221-04:002010-08-05T11:55:07.221-04:00I wrote this for my use with Fidelity rather than ...I wrote this for my use with Fidelity rather than as a general routine since the only statements I receive are those from Fidelity. All my other accounts have a web option for downloading (such as Discover, Chase, and so on). However, since it only looks at the DTTRADE field it probably does not matter. Fidelity always includes the DTTRADE time as 000000. If a server included the time as null, then that will also be interpreted by Money as midnight GMT and the routine would not work. Setting the time to noon GMT will work for all time zones except Hawaii and other Pacific areas. It definitely needs a little more tweaking to make it more robust. Yet it is working great for my transactions.MikeVhttps://www.blogger.com/profile/08096060721468399621noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-40956592871990041322010-08-05T11:21:43.861-04:002010-08-05T11:21:43.861-04:00Mike,
I haven't tested the code, but just ski...Mike,<br /><br />I haven't tested the code, but just skimming through, it looks like you've applied this to all statements (i.e., not just Fidelity). You overlay a "12" in the hour column, leaving the rest untouched. It makes the assumption that there is a time value (which could be null I think). It seems to me that this change should only occur if the the existing hhmmss portion is 000000, since most servers seem to provide usable date/time values (rather than midnight). <br /><br />To me, if the closing date/time is midnight in California, then it really is 3 am on the next day on the East coast, and should be recorded that way. Since closing will never be midnight for any real market exchange, making the presumption that 000000 equates to sometime "earlier in the day" makes sense.Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-7626518598671961132010-08-03T13:05:46.103-04:002010-08-03T13:05:46.103-04:00FYI, I imported some new transaction today from Fi...FYI, I imported some new transaction today from Fidelity. They came in with the correct date! So far, both databases are tracking smoothly. The only difference I have seen is the non-online database tries to match investment transactions with existing transactions (typically last month's). I have looked at the settings of the online and non-online database and do not see any differences. Anyone know of a setting that would control this feature?MikeVhttps://www.blogger.com/profile/08096060721468399621noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-9960034868170749762010-08-03T11:39:46.996-04:002010-08-03T11:39:46.996-04:00I did a fix specifically for DTTRADE in Fidelity:
...I did a fix specifically for DTTRADE in Fidelity:<br /><br /># fid_datefix.py<br /># <br /># Fix zero time field in Fidelity transactions<br />#<br /># cleanup the file time if needed<br /># called in ofx.py<br /># fid_datefix.fixdate(ofxFileName)<br /># else: <br /># status = 0 #no ofx file?<br /><br /><br />import os, sys<br /><br />def fixdate(filename):<br /> print 'Fixing Fidelity Trans Date ', filename<br /> f = open(filename,'r')<br /> ofx = f.read() #as-found ofx message<br /> <br /> ofx_final = '' #new ofx message<br /> <br /> #loop through and replace every DTTRADE TIME value with a modified version<br /> p0=0 #text window offset<br /> p1=0 #text window end<br /> <br /> # 20100730000000.000[-4:EDT]<br /><br /> while p1 > -1:<br /> p1 = ofx.find('', p0) #find the next fitid field<br /> if p1 < 0:<br /> break #no more fields... get out<br /> <br /> p1 = p1+17 #include the DTTRADE tag + date in the text window<br /> <br /> ofx_final = ofx_final + ofx[p0:p1] #write the window to the new message<br /><br /> ofx_final = ofx_final + str(12) #write a 12 at beginning of TIME field <br /><br /> p1 = p1 + 2 #move the window offset to the start of the TIME + 2 field<br /><br /> p0 = p1 #move window to start of next field<br /><br /> #end while (input file)<br /> <br /> #write the remainder of the file<br /> ofx_final = ofx_final + ofx[p0:]<br /> <br /> #close the input file<br /> f.close()<br /> <br /> #write the new version to the same file name<br /> f = open(filename, 'w')<br /> f.write(ofx_final)<br /> f.close<br /> return<br /><br />In ofx.py - these added/changed<br /><br /># 01-Aug-2010 MTV<br /># - Fix Fidelity zero transaction time<br /><br />import getpass, scrubber, site_cfg, fid_datefix<br /><br /> #cleanup the file if needed<br /> scrubber.scrub(ofxFileName, FieldVal(site, 'url'))<br /><br /> #set Fidelity zero time to non-zero<br /> fid_datefix.fixdate(ofxFileName)<br /><br /> else: <br /> status = 0 #no ofx file?MikeVhttps://www.blogger.com/profile/08096060721468399621noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-12619314817140004502010-08-03T09:29:38.326-04:002010-08-03T09:29:38.326-04:00Thanks for sharing that info Mike, and offering yo...Thanks for sharing that info Mike, and offering your code. Thinking this through, I don't see a situation where adjusting the following time conditions for downloaded statements would harm anything (if I'm thinking about it right):<br /><br />1. Time not provided (CCYYMMDD)<br />2. Time = 000000 (CCYYMMDD000000) and no time adjustment value given. Example: [-5:EST]<br /><br />Is this the logic you employed?Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-66774135302300944602010-08-02T10:50:29.439-04:002010-08-02T10:50:29.439-04:00Robert, I have a very clean script that is based o...Robert, I have a very clean script that is based on scubber.py. Be most happy to send it to you or post it here.<br /><br />Robert, Dan -- from Microsoft<br /><br />If a date does not have any hours or GMT adjustment values, SBA interprets the time of the statement as midnight GMT. Since midnight GMT is 5 hours before midnight EST, SBA would interpret a 20050505 as 7 PM on 5/4/05 if the system time zone were EST. In this case, SBA would display the date as 5/4/05, rather than 5/5/05.<br /> <br />Additionally, if the date includes a datetime designation such as 20050505050000 for a server in EST, SBA converts the date to GMT, and then converts it back to the LOCAL time zone (not the server's). If a customer were connecting from the Pacific coast, SBA considers the time of the transaction to be 9PM 5/4/05, which is one day earlier than expected.<br /><br />Microsoft recommends that servers either send server time in full datetime format or send dates with a datetime format that equates to Noon GMT, such as CCYYMMDD120000. With this format, SBA displays the expected date for almost any time in the world. In the example above, a 20050505120000 would always display as 5/5/05 anywhere the world except for the center of the Pacific Ocean.<br />Microsoft recommends this for the following tag values:<br />• DTASOF<br />• DTDUE<br />• DTEND<br />• DTPMTPRC<br />• DTPOSTED<br />• DTSTART<br />• DTXFERPRJ<br /> <br />That means 120000 GMT will be 0600 or 0700 central time. The script changes midnight GMT 000000 to noon GMT 120000 in the DTTRADE field. I will need some transactions to import the converted ofx files, but it makes sense that it should work. I shall post results later this week as month end transaction are processed.<br /><br />Mike<br /><br />MikeMikeVhttps://www.blogger.com/profile/08096060721468399621noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-11136549567916932662010-08-02T09:29:06.141-04:002010-08-02T09:29:06.141-04:00Robert,
I believe the OFX standard default is 120...Robert,<br /><br />I believe the OFX standard default is 120000, which is noon GMT. I don't think 000001 would cut it because you're also subracting another 5 - 8 hours from the GMT.<br /><br />DanAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-62408012338002439602010-08-02T09:16:31.899-04:002010-08-02T09:16:31.899-04:00MikeV: If I understand what you are saying correc...MikeV: If I understand what you are saying correctly, changing the time to anything other than midnight "fixes" the timestamp issue in Money. I'll add this to the to-do list for the scripts (no need to send anything). Odd that Microsoft would tick it "backwards" rather than use the actual date. If you don't mind, test it with the time-stamp set to 000001 (rather than 100000). This should be 1-sec past midnight.Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-27913171823671610202010-08-01T17:40:27.241-04:002010-08-01T17:40:27.241-04:00I have written a Fidelity zero transaction time sc...I have written a Fidelity zero transaction time script and added a call to it in ofx.py. I ran it and the time went from 000000 to 100000. I figure that is a large enough time change to put the time past midnight. I will need to wait until some transaction post to be sure it is working. If interested, please tell where to send the changes.MikeVhttps://www.blogger.com/profile/08096060721468399621noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-24525004511752888132010-08-01T17:26:19.504-04:002010-08-01T17:26:19.504-04:00Ken here. I've been out of touch for a while ...Ken here. I've been out of touch for a while due to moving and having to concentrate on more pressing issues. Just wanted to let Dan know I've been able to get just about everything working, including all my Fidelity accounts. Just to have that up and running means I'll be able to continue using Money once Microsoft's servers go dark. I've now added all the obvious accounts to setup.py but I'm stumped on a few. Without having to sign up and pay Chase I've been able to auto download my savings account transactions and Home Equity Line transactions into Money. In the OFX Home Forum I only see an entry for Chase credit cards. Anyone have a clue what the parameters should be for Chase Bank and Chase home equity line accounts? It's not a big deal but it'd be great if I could add them in. I've tried using the Chase credit card entry with no luck.<br /><br />Even though I'm the quintessential end user and have no experience with Python, the scripts have worked perfectly and the Pocket Sense writeup was easy to follow. If more people were aware this all existed you'd have a ton of users.<br /><br />Thanks!<br /><br />KenAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-9642069750992435852010-08-01T15:34:07.605-04:002010-08-01T15:34:07.605-04:00I have the scripts working with Fidelity, except f...I have the scripts working with Fidelity, except for one minor issue. The investment transactions are being posted 1 day before they actually occur. The cause of the problem, as I understand it, is that <br /><br />Fidelity uses<br /><br />20100730000000.000[-4:EDT]<br /><br />for the trade date. Notice the time is set to zero.<br /><br />Reading a post at<br /><br />http://www.cdnbusinessdirectory.com/microsoft-money/4177-my-stock-transaction-date-off-1-day<br /><br /><i>One way this happens is if the broker sets the time field in the OFX download dates to zeros, or omits the code-- which strangely defaults to zero=midnight. That corresponds to midnight. Now if the broker makes the timezone be set to eastern time, that transaction dated november 1 (implicitly midnight) EST, your computer set for PST will see that as 9 PST on October 23. I wish Money would not work that way, but it does. And the potential for this is defined in the OFX spec.</i><br /><br />The time field needs to be set to 7 AM eastern which will get Money to record the correct date.<br /><br />Does a "scrubber" exist for this date problem?MikeVhttps://www.blogger.com/profile/08096060721468399621noreply@blogger.comtag:blogger.com,1999:blog-3426010974782125266.post-88541284808680774632010-07-14T10:10:21.436-04:002010-07-14T10:10:21.436-04:00Ken: Any success on adding the extra account? If...Ken: Any success on adding the extra account? If not, how many accounts do you have? The Setup routine should support a limitless number of accounts, but there may be a bug that you've tripped upon?Roberthttps://www.blogger.com/profile/17335863888930686554noreply@blogger.com