From 2b98248bc5551eaaf9f177a6087a5d1259bcb769 Mon Sep 17 00:00:00 2001 From: Thomas Schmelzer Date: Thu, 28 Nov 2024 21:58:41 +0400 Subject: [PATCH 1/2] demo.html --- marimo/demo.html | 82 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 marimo/demo.html diff --git a/marimo/demo.html b/marimo/demo.html new file mode 100644 index 00000000..dda2329c --- /dev/null +++ b/marimo/demo.html @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + demo + + + + + + +
+ + + + + + From 6093db0ce54b7dadd9404179e357aae4a790615d Mon Sep 17 00:00:00 2001 From: Thomas Schmelzer Date: Fri, 29 Nov 2024 07:26:21 +0400 Subject: [PATCH 2/2] export to html --- marimo/demo.html | 6 +-- marimo/demo.py | 28 ++++++++------ marimo/factormodel.html | 82 +++++++++++++++++++++++++++++++++++++++++ marimo/factormodel.py | 19 +++++----- 4 files changed, 112 insertions(+), 23 deletions(-) create mode 100644 marimo/factormodel.html diff --git a/marimo/demo.html b/marimo/demo.html index dda2329c..e1387d53 100644 --- a/marimo/demo.html +++ b/marimo/demo.html @@ -65,7 +65,7 @@ @@ -74,9 +74,9 @@
- + 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()