Some benchmark (and hopefully novel) Online Portfolio Selection (OPS) Strategies implementations are provided in this package.
Author shayandavoodii
8 Stars
Updated Last
1 Year Ago
Started In
February 2023
Documentation (Latest)
Continuous Integration
  1. About
  2. Installation
  4. Contributing
  5. Motivation
  6. License
  7. Contact


This package provides some of the proposed Online Portfolio Selection (OPS) algorithms in the literature. The methods are implemented in a fully type-stable manner in Julia and can be used for research purposes. The package is still under development, and more methods will be added. Hopefully, novel methods will be added to the repo after completing the major benchmark methods. Currently, the package provides the following algorithms:
Row № Algorithm Strategy Stable Dev
1 CORN-U Pattern-Matching
2 CORN-K Pattern-Matching
3 DRICORN-K Pattern-Matching
4 CRP Benchmark (Market)
5 UP Follow the Winner
6 EG Follow the Winner
7 RPRT Follow the Loser
8 BS Benchmark (Market)

🆙Table of cotents


The latest stable version of the package can be installed by running the following command in the Julia REPL after pressing ]:

pkg> add OnlinePortfolioSelection


julia> using Pkg; Pkg.add("OnlinePortfolioSelection")

Also, the dev version of the package can be installed by running the following command in the Julia REPL after pressing ]:

pkg> add

🆙Table of cotents

To-do list

  • Implement BCRP
  • Implement CORN
  • Implement DRICORN
  • Implement BS
  • Implement Anticor
  • Implement $B^k$
  • Implement $B^{NN}$
  • etc.

🆙Table of cotents


Contributions are warmly welcome. Please feel free to open an issue and discuss the changes you want to make. Afterward, fork the repo and make the changes. Then, open a pull request, and I will review and hopefully merge it.

🆙Table of cotents


Since my M.Sc. thesis is in the field of OPS, I thought it would be a worthwhile idea to implement some of the benchmark methods to use them to perform benchmarking experiments to compare the performance of my proposed method with the existing methods in the literature. Afterward, I thought it would be a good idea to bundle the repo as an open-source package, and share it with the community so that other researchers can use the methods for their research purposes and put time into developing novel strategies rather than implementing the existing ones. Furthermore, because of my personal interest in the OPS field, I will continue to develop the package and add more algorithms to it. I hope this package will be useful for the community and will be used by other researchers in the field.

🆙Table of cotents


This project is licensed under the MIT License - see the LICENSE file for details.

🆙Table of cotents


If you have any questions or suggestions, please feel free to contact me via email:
Or feel free to open an issue in the repo.

🆙Table of cotents

Used By Packages

No packages found.