Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multiple portfolio doesn't seem to work #21

Closed
TwoClocks opened this issue Mar 8, 2017 · 2 comments
Closed

multiple portfolio doesn't seem to work #21

TwoClocks opened this issue Mar 8, 2017 · 2 comments

Comments

@TwoClocks
Copy link

I get this error when I try to create a portfolio w/ different weights --

Warning messages:
1: In check_weights(weights, assets_col, map, x) :
The assets in weights does not match the assets in data.
2: Can't join on 'portfolio' x 'stock' because of incompatible types (integer / character)

Here are my weights :

head(w2)
Source: local data frame [6 x 3]
Groups: portfolio [1]

portfolio stocks weights

1 1 EMHY 0.27727790
2 1 DIVY 0.20706010
3 1 FXY 0.24806711
4 1 PSI 0.02861348
5 1 RSXJ 0.00000000
6 1 EUO 0.04888890

Here is my data :

head(d2)

A tibble: 6 × 3

    date stock         rtrn
  <date> <chr>        <dbl>

1 2014-12-22 BIZD 0.001358876
2 2014-12-31 BIZD -0.001092245
3 2015-01-02 BIZD 0.010304838
4 2015-01-09 BIZD -0.001115083
5 2015-01-21 BIZD -0.028958860
6 2015-01-23 BIZD 0.009974641

here is the command to join them :

port <- d2 %>% tq_portfolio(

  • assets_col = stock,
  • returns_col = rtrn,
  • weights = w2,
  • col_rename = FALSE,
  • wealth.index = TRUE
  • )
    Warning messages:
    1: In check_weights(weights, assets_col, map, x) :
    The assets in weights does not match the assets in data.
    2: Can't join on 'portfolio' x 'stock' because of incompatible types (integer / character)

It all looks correct to me.... not sure what I did wrong...

All the stock names in the weight exist in the data.

packageVersion("tidyquant")
[1] ‘0.4.0’

@mdancho84
Copy link
Collaborator

@jonross09
Thanks for submitting. Can you upload your .R file so we can reproduce? It's difficult to tell everything that you are doing.
-Matt

@mdancho84
Copy link
Collaborator

Hi @jonross09
I was looking into this again. There's a few issues that I see from the warnings:

First, there appears to be an issue with your weights table. If the assets (stock symbols) exist in the weights table that doesn't existing in the stocks table then you will get an error.

Second, you have a portfolio index column in your weights table, but you don't have a portfolio index column in your stocks (d2) table. This means your weights table is setup for multiple portfolios but your stocks table is setup for single portfolio. Since it only looks like you have one portfolio, you could just drop the portfolio column from your weights table and it should work.

Some background on the "portfolio" column: This index column with key name "portfolio" is used as a key for mapping multiple portfolios. Because of this, the key must be present in both tables and you must also group by portfolio in your stocks table since you are using the multiple portfolio method.

Last, I see that you have col_rename = FALSE. You probably just want to leave out col_rename or set it to col_rename = NULL.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants