A Coding Implementation to Portfolio Optimization with skfolio for Building Testing, Tuning, and Comparing Modern Investment Strategies
factor_prices = load_factors_dataset() X_full, F_full = prices_to_returns(prices, factor_prices) X_tr, X_te, F_tr, F_te = train_test_split( X_full, F_full, test_size=0.33, shuffle=False ) fm = MeanRisk( objective_function=ObjectiveFunction.MAXIMIZE_RATIO, risk_measure=RiskMeasure.VARIANCE, prior_estimator=FactorModel(), ) fm.fit(X_tr, F_tr) ptf_fm = fm.predict(X_te); ptf_fm.name = “Factor Model” print(f”\nFactor-model Sharpe: {ptf_fm.annualized_sharpe_ratio:.3f}”) pipe = Pipeline([ (“preselect”, SelectKExtremes(k=8, highest=True)), (“optimize”, MeanRisk( objective_function=ObjectiveFunction.MAXIMIZE_RATIO, risk_measure=RiskMeasure.VARIANCE)), ]) pipe.fit(X_train) ptf_pipe = pipe.predict(X_test); ptf_pipe.name =…
