diff --git a/marimo/demo.html b/marimo/demo.html new file mode 100644 index 00000000..e1387d53 --- /dev/null +++ b/marimo/demo.html @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + demo + + + + + + +
+ + + + + + diff --git a/marimo/demo.py b/marimo/demo.py index 1050172f..4ed6a603 100644 --- a/marimo/demo.py +++ b/marimo/demo.py @@ -5,25 +5,37 @@ @app.cell -def __(): +def __(__file__): + from pathlib import Path + import cvxpy as cp import numpy as np import pandas as pd - import marimo as mo from cvx.portfolio.min_risk import minrisk_problem from cvx.risk.sample import SampleCovariance from cvx.simulator import Builder pd.options.plotting.backend = "plotly" - return Builder, SampleCovariance, cp, minrisk_problem, mo, np, pd + + path = Path(__file__).parent + return ( + Builder, + Path, + SampleCovariance, + cp, + minrisk_problem, + np, + path, + pd, + ) @app.cell -def __(pd): +def __(path, pd): # Load some historic stock prices prices = pd.read_csv( - "marimo/data/stock_prices.csv", index_col=0, parse_dates=True, header=0 + path / "data" / "stock_prices.csv", index_col=0, parse_dates=True, header=0 ) # Estimate a series of historic covariance matrices @@ -99,14 +111,8 @@ def __(Builder, cp, minrisk_problem, np, prices, returns, start): _portfolio = _builder.build() _portfolio.nav.plot() - return (CVar,) -@app.cell -def __(): - return - - if __name__ == "__main__": app.run() diff --git a/marimo/factormodel.html b/marimo/factormodel.html new file mode 100644 index 00000000..af0fbc0a --- /dev/null +++ b/marimo/factormodel.html @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + factormodel + + + + + + +
+ + + + + + diff --git a/marimo/factormodel.py b/marimo/factormodel.py index 79e02ee8..791d8e4a 100644 --- a/marimo/factormodel.py +++ b/marimo/factormodel.py @@ -6,6 +6,8 @@ @app.cell def __(): + from pathlib import Path + import cvxpy as cvx import numpy as np import pandas as pd @@ -14,15 +16,19 @@ def __(): from cvx.risk.factor import FactorModel from cvx.risk.linalg import pca - return FactorModel, cvx, minrisk_problem, np, pca, pd + path = Path(__file__).parent + return FactorModel, cvx, minrisk_problem, np, pca, path, pd @app.cell -def __(pd): +def __(path, pd): + # Load some historic stock prices prices = pd.read_csv( - "marimo/data/stock_prices.csv", index_col=0, header=0, parse_dates=True + path / "data" / "stock_prices.csv", index_col=0, parse_dates=True, header=0 ) - returns = prices.pct_change().fillna(0.0) + + # Estimate a series of historic covariance matrices + returns = prices.pct_change().dropna(axis=0, how="all") return prices, returns @@ -71,10 +77,5 @@ def __(cvx, minrisk_problem, model, np, pd, prices): return problem, w, y -@app.cell -def __(): - return - - if __name__ == "__main__": app.run()