From an empty candidate list to a backtested allocation
Run our installer — it automatically installs all required dependencies — then follow the walkthrough below. It covers the requirements, the configuration that is worth setting before the first run, the recommended starting parameters, and how to read the results.
RSJ Portfolio — Selection

Requirements
Operating system | Microsoft Windows 10 or 11 |
|---|---|
Architecture | 64 Bit |
Memory | 1 GB RAM |
Disk space | 1 GB |
Network | Internet access for historic stock prices |
Windows 10 or better, 64 Bit. The installer places all required dependencies.
Configuration essentials
Configuration parameters are stored in the file portfolio.json in the data/config directory of the application. The parameters on this tab are more rarely changed than the parameters on the recommendation tab.
- Language — the UI language of the application; currently English and German.
- Data Provider — Yahoo Finance (free but only for personal use) or End of Day Historical Data (paid offering requiring a subscription that provides you with an API key). The software only uses "Adjusted Close" prices: the price after all stock splits and dividends have been applied.
- Local Currency — all amounts are first converted into USD, then the USD amount is converted into the local currency.
- Dates — start date to limit the amount of data to be loaded, base period used for data analysis and trading days per year (normal value is 252) to calculate the annualized return.
- Sigma Clip — number of standard deviations used to clip the data, which prevents the worst artifacts.
First steps
1
Enter a company name, ticker symbol or ISIN into the search field and click "Search".
2
Select one of the stocks and click "Add".
3
Repeat the above steps for at least two more stocks.
4
Click on "Recommendation".
5
Select "Hierarchical Risk Parity" as method, "Ledoit Wolf" as risk method, "Ward" as linkage method and "Analysis" as chart.
6
Although the software only uses the price of the stocks, you can see in the chart how it groups similar stocks, for example by industry or region.
7
Add more stocks at any time and rerun the optimization. If you have selected enough stocks and the minimum limits are large enough, only a part of the stocks will be used.
8
Click on "Chart" and select "Allocation" to display the proposed allocation graphically.
9
Set a cutoff date, for example one year ago, and select the "Backtest" chart to see how a portfolio would have been optimized one year ago with the data available at that time — and how its total value would have developed since then.
10
Clear the cutoff date again to see the current allocation.
Note: You probably unconsciously used information when selecting the stocks — and other optimization parameters — that you did not have one year ago. The result of the backtest will therefore probably be better than a future result.
What the results show
Expected Return
per anno
Expected Volatility
per anno
Sharpe
return to risk ratio
Sortino
shown when using semi variance
Sum of invested money
after whole-share allocation
Optimization parameters
Minimum Weight
Minimum weight in percent of the selected stocks, 0.00 <= x <= 100.00
Maximum Weight
Maximum weight in percent of the selected stocks, 0.00 <= x <= 100.00
Benchmark
Benchmark value development of a zero risk investment in percent per year
Beta
Certainty in percent that the daily risk is below 3%, 0.00 <= x <= 100.00. Only needed for Conditional Value at Risk
Gamma
L2 regularization parameter in percent. Setting this over 100% increases the number of non zero weights
Weight restrictions may not be fully implemented, for example if an exact division of the amount into whole stocks is not possible, or if the number of selected stocks is too small to invest 100% within the maximum weight.
Read the recommendation chapterWhere to go deeper
Methods & features
Allocation methods, risk models, return models and the parameters that constrain them.
Methods and features →Data & currencies
Data providers, price cleaning, caching and the USD conversion path.
Data and currencies →Blog
Background articles on the optimizer, the data and the methods, from the team building it.
Product blog →