Fund Manager
PORTFOLIO MANAGEMENT SOFTWARE
Contact Us

Auto-update in Create Investment from Investments

Comments, critical feedback, praise, or suggestions for new features.

Postby Djobydjoba » Sat Sep 09, 2017 6:55 am

Hi Mark,

Source investment A = srcA
Source investment B = srcB
Destination investment C = destC

1) I think a price should be created (calculated) for a date in destC if and only if there are prices at that date in srcA AND in srcB. That is, a calculated price in destC should be perfectly accurate, calculated only from two other prices at the exact same date, with no interpolation. If there aren't two source prices for a date, there should be no destination price for this date, even if this leads to have some holes in prices.

From my testing this is currently not the case. Currently, for example, if the last price date in srcA is 01/01/2017, and the last price date in srcB is 01/08/2017, the last price date in destC is 01/08/2017.

For spread calculations, or if we want to use this command for cascaded calculations (a destination investment from two source investments that are calculated too), or for anything else... the calculated prices should all be accurate, the command output the most straightforward and reliable. This is what will give the command its power and its reliability, IMO.

Are you agree?

Edit: Not sure of what I have written here in fact. Perhaps the current implementation is better.

2) From my testing, it is possible to have in the Auto-update list different source investments that lead to a same destination investment:
- srcA / srcB = destC
- srcC / srcD = destC

Is it by design or is it a bug?

3) How much investments can be handled by the auto-update list? I plan to create around 200 destination investments, can FM handle this ?

Thanks.
Djobydjoba
 
Posts: 790
Joined: Tue Mar 09, 2010 9:39 am

Postby Mark » Sun Sep 10, 2017 10:45 am

Hi Djobydjoba,

1) Currently this updates every weekday, no matter whether there is a price recorded in srcA or srcB. It always interpolates (both srcA and srcB) if there is a missing price, and comes up with a price for destC.

The only filtering is by date. It updates for dates that are within the dates where both srcA/B have recorded pricing. For example, if you have pricing in srcA from 1/1/17 - 9/1/17 and pricing in srcB from 2/1/17 to 9/8/17 the destination will be updated from 2/1/17 - 9/1/17. It is the date range where both source investments have pricing data.

Was your 'edit' for this one, or #2? Do you still want it to only update destC if there is a price for both srcA and srcB?

2) Good catch. This was an oversight. We'll add a check for this to prevent this from being allowed. Technically there is nothing wrong with doing this, and the updates would be processed in the same order each time (the order you entered the rules). We don't currently allow re-ordering of the rules, so it is probably best to just not allow this. It doesn't add any functionality you couldn't reproduce with an extra investment.

3) There is no limit, other than the maximum investment count for the version you're using.
Thanks,
Mark
Fund Manager - Portfolio Management Software
Mark
Site Admin
 
Posts: 11577
Joined: Thu Oct 25, 2007 2:24 pm
Location: Chandler, AZ

Postby Djobydjoba » Sun Sep 10, 2017 12:50 pm

Hi Mark,

Mark wrote:Was your 'edit' for this one

Yes, I'm not sure, I try to understand...

Mark wrote:no matter whether there is a price recorded in srcA or srcB. It always interpolates (both srcA and srcB) if there is a missing price, and comes up with a price for destC.

Could you elaborate on the mechanism of interpolation with an example ? I'm not sure to really know how it works.

Mark wrote:The only filtering is by date. It updates for dates that are within the dates where both srcA/B have recorded pricing. For example, if you have pricing in srcA from 1/1/17 - 9/1/17 and pricing in srcB from 2/1/17 to 9/8/17 the destination will be updated from 2/1/17 - 9/1/17. It is the date range where both source investments have pricing data.

From my testing this filtering is only applied during the first update/creation of the destination investment (when we click OK in the Create investment from Investments window). From your example, If I manually add a price in srcA for the date 31/12/17, the price is updated in the destination for this date too... Is it a desired behavior? I wonder if it's a good thing or not..

Mark wrote:There is no limit, other than the maximum investment count for the version you're using.

Great!!!
Djobydjoba
 
Posts: 790
Joined: Tue Mar 09, 2010 9:39 am

Postby Mark » Mon Sep 11, 2017 12:19 pm

Hi Djobydjoba,

Yes, you are right. The initial creation updates every weekday within the common date range of both investments. Any missing price points are interpolated. For example, if the date 9/8 is being updated and srcA only has a price for 9/7 and 9/11, the price from 9/7 will be used for 9/8. After initial creation, any time a price for either srcA or srcB is updated, the destination investment will be updated for that same date. For example, if srcA is updated for 9/11, the destination will also be updated for 9/11. A price will be interpolated from srcB if it doesn't have a price on 9/11.

There are probably many algorithms that could be used. Maybe we only update the destination if a price exists in both srcA and srcB on the date under consideration. That could be made an option.
Thanks,
Mark
Fund Manager - Portfolio Management Software
Mark
Site Admin
 
Posts: 11577
Joined: Thu Oct 25, 2007 2:24 pm
Location: Chandler, AZ

Postby Djobydjoba » Mon Sep 11, 2017 1:08 pm

Thanks for your explanation.

Mark wrote:There are probably many algorithms that could be used. Maybe we only update the destination if a price exists in both srcA and srcB on the date under consideration. That could be made an option.

Interpolation or not interpolation, that is the question.... Personnally I'm not sure. But I would say, to come back to my first post, the most accurate and straightforward the better. So yes, this seems the best:
"only update the destination if a price exists in both srcA and srcB on the date under consideration".
I think it will be more robust for cascaded calculations, and no negative surprise because it's clear and simple.
If you agree.
Djobydjoba
 
Posts: 790
Joined: Tue Mar 09, 2010 9:39 am

Postby Djobydjoba » Mon Sep 11, 2017 2:36 pm

I realize the current implementation with interpolation is very good as is, and maybe the best. This will probably not make any sensible difference and this request is pointless. Please ignore it.
Djobydjoba
 
Posts: 790
Joined: Tue Mar 09, 2010 9:39 am

Postby Mark » Mon Sep 11, 2017 4:04 pm

Hi Djobydjoba,

Okay...
Thanks,
Mark
Fund Manager - Portfolio Management Software
Mark
Site Admin
 
Posts: 11577
Joined: Thu Oct 25, 2007 2:24 pm
Location: Chandler, AZ

Postby Djobydjoba » Mon Sep 11, 2017 11:33 pm

Perhaps in the future me or someone else will ask you an option to not interpolate. Now I can't say, so I don't want to make a request lightly.

If the option (interpolate or not) should be implemented, I think it should be at the level of each destination investment, not globally. But I can't say if I will need it or not. Having the option is always good, and if you ask I would prefer to have it. You decide.
Djobydjoba
 
Posts: 790
Joined: Tue Mar 09, 2010 9:39 am

Postby Mark » Tue Sep 12, 2017 11:14 am

Hi Djobydjoba,

We have made this a global option for the next release. In the Auto Update List dialog we've added a new option "Only Update Destination for Dates When Both Sources Have Pricing (Do Not Interpolate)". It is off by default, so it will work the current way by default.

I agree it would be better to be able to set this separately for each destination investment, but that will be more complicated, and likely require a change to the portfolio file format.
Thanks,
Mark
Fund Manager - Portfolio Management Software
Mark
Site Admin
 
Posts: 11577
Joined: Thu Oct 25, 2007 2:24 pm
Location: Chandler, AZ

Postby Djobydjoba » Tue Sep 12, 2017 11:58 am

Hi Mark,

Having the option is great, even if global. Will be interesting to play with for sure. Thanks!!
Djobydjoba
 
Posts: 790
Joined: Tue Mar 09, 2010 9:39 am

Postby Djobydjoba » Wed Sep 20, 2017 10:40 am

Hi Mark,

Thanks a lot for having added the option to not interpolate. I have a question: when we activate the option as there are already some investments in the auto-update list, the option is effective only for the new prices to come, right? The prices already calculated with interpolation aren't recalculated without?
Djobydjoba
 
Posts: 790
Joined: Tue Mar 09, 2010 9:39 am

Postby Mark » Wed Sep 20, 2017 12:02 pm

Hi Djobydjoba,

Yes, that is correct. I will update the documentation to clarify this.
Thanks,
Mark
Fund Manager - Portfolio Management Software
Mark
Site Admin
 
Posts: 11577
Joined: Thu Oct 25, 2007 2:24 pm
Location: Chandler, AZ

Postby Djobydjoba » Fri Nov 10, 2017 8:16 am

A feedback: I must have now more than 200 investments (relative strengths) in the Auto update list of the Create Investment from Investments command. All is great, with zero impact on performance. I very appreciate how the auto-update is maintained when an investment is moved in the portfolio tree, or renamed, or a copy is deleted, or the recalculation when historical prices are updated. I only use interpolated prices and this suits my needs (for now). The option to disable interpolation looks unusable for me, because the change would imply to recreate all the investments from the start (because no recalculations are done for the existing prices). So this is an option to set from the start.

The new Create Blended Investment command is great too. Indexes for currencies don't exist (except for the USD), so I've created them.
For exemple, CAD Index = 12,5% CAD/USD + 12,5% CAD/EUR + 12,5% CAD/GBP + 12,5% CAD/CNY + 12,5% CAD/CHF + 12,5% CAD/AUD + 12,5% CAD/NZD + 12,5% CAD/JPY

The result is very relevant for graphical analysis (from my standpoint), and very valuable for trading.
https://img4.hostingpics.net/pics/428134CADIndex.png

For the JPY Index (which needs for calculation: JPY/USD, JPY/EUR, JPY/GBP etc..) I wasn't happy with the resolution of prices downloaded from the quote servers, because JPY is a special currency with low resolution, so XXX/JPY is used but JPY/XXX is never really used, so the quotes from the servers are bad). So the solution was:
- to create an investment (named "1") with only two prices with value of 1 for 01/01/1970 and 01/01/2050
- to use the "Create Investment from Investments" command to calculate the required investments: JPY/XXX = "1" / XXX/JPY
- to calculate the JPY Index with "Create Blended Investment" command using the JPY/XXX investments

So this ability to multiply or divide the prices of an investment with a constant and to use the resulting investment in the "Create Blended Investment" is very powerful.

And this new command opens a lot of interesting things! (indexes for emerging currencies, etc..)

These are tools with a lot of value.
IMHO, these should be in the list of Fund Manager features: https://www.fundmanagersoftware.com/features.html

Thanks for your great work.
Djobydjoba
 
Posts: 790
Joined: Tue Mar 09, 2010 9:39 am

Postby Mark » Fri Nov 10, 2017 1:56 pm

Hi Djobydjoba,

You're right, that would be good to showcase more. I've added "Create Blended/Hypothetical Investments" to both the version comparison table and the features pages.
Thanks,
Mark
Fund Manager - Portfolio Management Software
Mark
Site Admin
 
Posts: 11577
Joined: Thu Oct 25, 2007 2:24 pm
Location: Chandler, AZ

Postby Djobydjoba » Fri Jan 19, 2018 7:08 am

Hi Mark,

I love how the auto-update of prices is implemented for the commands Create Investment from Investments and Create Blended Investment. This is brilliant. This works so well.
But I've got a request for a little change though.

A simple example:
Two investments: Apple and Nasdaq.
Start price for Apple : 01/01/2005
Start price for Nasdaq : 01/01/1990


With the Create Investment from Investments, the relative strength is calculated:
RSInv = Apple / Nasdaq
Start price for RSInv : 01/01/2005 (the first recorded price in both of the source investments).

And now, RSInv is auto-updated as new prices come. Great.

Some weeks later, I find a better quote server for Apple, with more historical data available (prices from 01/01/1985). So I import/download the new prices (01/01/1985 to 01/01/2005) in the Apple investment, as more historical data available is always better.

Here's the problem: the start price for RSInv is updated, and now is 01/01/1985. It should have been 01/01/1990, the first recorded price in both of the source investments. The date range 01/01/1985 -> 01/01/1990 is not correct as a relative strength.

This is just an example, but I think this is a general issue here with the current implementation in the case we add more historical data (former prices) to an investment involved in a calculation (Create Investment from Investments or Create Blended Investment commands). The auto-update algorithm should keep adding former prices in the destination investment only up to the common first recorded price in all the source investments.

I've noticed this issue because I have found and updated a lot more historical data for the exchange rate EUR/USD, which is involved in several calculations in my portfolio. So the start prices for several investments has changed, but for many the result is not correct with a start price too early now (the EUR/USD start price).

Of course, this is a concern only for start prices, not for last prices.

In order to avoid this issue, a suggestion could be to use the available auto-update option "Do not interpolate". But in fact I don't want to use this option, as I like how the interpolation works. My idea it that the current behavior as described is probably not desirable in all cases.

Thanks.
Djobydjoba
 
Posts: 790
Joined: Tue Mar 09, 2010 9:39 am

Next

Return to Feedback

Who is online

Users browsing this forum: No registered users and 4 guests

FundManagerSoftware.com | Search | Site Map | About Us | Privacy Policy
Copyright © 1993-2024 Beiley Software, Inc. All rights reserved.