## FinancialPortfolios.jl

Julia package for working with simple portfolios of financial assets
Author tbeason
Popularity
4 Stars
Updated Last
1 Year Ago
Started In
April 2020

# FinancialPortfolios.jl

A minimalist Julia package for working with simple portfolios of financial assets. Really only provides the barebones.

### Example

Example without rebalancing.

```using FinancialPortfolios, DataFrames, Dictionaries

stockA = 0.06/12 .+ 0.1/sqrt(12) .* randn(120)
stockB = 0.01/12 .+ 0.02/sqrt(12) .* randn(120)

df = DataFrame(stockA=stockA,stockB=stockB)

FP = FinancialPortfolio(dictionary(["stockA"=>0.8,"stockB"=>0.2]))  # initial portfolio weights
df.portfolioreturns = [update!(FP,r) for r in eachrow(df)]
df
FP```

Example with rebalancing every January.

```using FinancialPortfolios, DataFrames, Dictionaries

months = repeat(1:12,10)
stockA = 0.06/12 .+ 0.1/sqrt(12) .* randn(120)
stockB = 0.01/12 .+ 0.02/sqrt(12) .* randn(120)

df = DataFrame(month=months,stockA=stockA,stockB=stockB)
FP = FinancialPortfolio(dictionary(["stockA"=>0.8,"stockB"=>0.2]))  # initial portfolio weights

function runportfolio!(FP0,df0)
T = nrow(df0)
df0[!,:portfolioreturns] = missings(Float64,T)
FPreb = copy(FP0)

for row in eachrow(df0)
if row.month == 1   # rebalances each January
FP0 = copy(FPreb)
end
row.portfolioreturns = update!(FP0,row)
end
return FP0
end

runportfolio!(FP,df)```