You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thank you for your interest in _okama_ and wanting to contribute. Your help is much appreciated.
4
+
5
+
Here are some guidelines for contributing.
6
+
7
+
Please refer to the [RoadMap](https://github.com/mbk-dev/okama/blob/master/README.md#roadmap) for a list of areas where _okama_ could benefit
8
+
from. In addition, the following is always welcome:
9
+
10
+
- Report bugs using [Issues](https://github.com/mbk-dev/okama/issues)
11
+
- Request new functionality and enhancement in [Discussions](https://github.com/mbk-dev/okama/discussions)
12
+
- Improve performance of existing code
13
+
- Help us to write tests. If you learn about quantitative finance and/or unit testing in python it's a good place to start. Test coverage of _okama_ could be verified at [Coveralls](https://coveralls.io/github/mbk-dev/okama?branch=dev).
14
+
15
+
## Guidelines
16
+
17
+
### Seek early feedback
18
+
19
+
Before you start coding your contribution, it may be wise to raise an issue on GitHub to discuss whether the contribution is appropriate for the project.
20
+
21
+
### Create a fork
22
+
First off, you should create a fork. Within your fork, create a new branch. Depending on what you want to do, choose one of the following prefixes for your branch:
23
+
- fix: <nameofyourfix> to be used for bug fixes
24
+
- feat: <nameofnewfeature> to be used for adding a new feature
25
+
26
+
### Commit your changes
27
+
Make your changes to the code, and write sensible commit messages.
28
+
29
+
In general [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) is recommended for the commits.
30
+
31
+
### Code style
32
+
33
+
To keep everything consistent, please use [Black](https://github.com/psf/black) with default settings.
34
+
35
+
### Testing
36
+
37
+
Any contributions **must** be accompanied by unit tests (written with `pytest`). These are very simple to write. Just find the relevant test file (or create a new one), and write some `assert` statements. If you need a data presets please use [tests/conftests.py](tests/conftests.py) fixtures. Tests should cover core functionality, warnings/errors (check that they are raised as expected), and limiting behaviour or edge cases.
38
+
39
+
### Documentation
40
+
41
+
We would appreciate if changes are accompanied by relevant documentation.
42
+
43
+
Inline comments (and docstrings!) are great when needed, but don't go overboard. A lot of the explanation can and should be offloaded to ReadTheDocs. Docstrings should follow [PEP257](https://stackoverflow.com/questions/2557110/what-to-put-in-a-python-module-docstring) semantically. Okama uses `sphinx` and "numpy" style generate Documentation automatically from docstrings.
44
+
45
+
### Create a Pull Request
46
+
Create a new [Pull Request](https://github.com/mbk-dev/okama/pulls). Describe what your changes are in the Pull Request. If your contribution fixes a bug, or adds a features listed under [issues](https://github.com/mbk-dev/okama/issues) as "#12", please add "fixes #12" or "closes #12".
47
+
48
+
## Questions
49
+
50
+
If you have any questions related to the project, it is probably easiest to ask it in [Discussions](https://github.com/mbk-dev/okama/discussions).
51
+
52
+
## Bugs/issues
53
+
54
+
If you find any bugs, feel free to [raise an issue](https://github.com/mbk-dev/okama/issues) include as many details as possible and follow the following guidelines:
55
+
56
+
- Descriptive title so that other users can see the existing issues
57
+
- Operating system, python version, and python distribution (optional)
More examples are available in [Jupyter Notebooks](https://github.com/mbk-dev/okama/tree/master/notebooks).
141
156
142
-
## Communication
157
+
## RoadMap
143
158
144
-
For basic usage questions (e.g., "_Is XXX currency supported by okama?_") and for sharing ideas please use [GitHub Discussions](https://github.com/mbk-dev/okama/discussions/3).
145
-
Russian language community is available at [okama.io forums](https://community.okama.io/c/python-okama).
146
-
## Issues
159
+
The plan for _okama_ is to add more functions that will be useful to investors and asset managers.
147
160
148
-
We encourage you to report issues using the [Github tracker](https://github.com/mbk-dev/okama/issues). We welcome all kinds of issues, especially those related to correctness, documentation, performance, and feature requests.
161
+
- Make documentation for the package. Finish docstrings for modules, classes, methods and functions.
162
+
- Add Sharpe, Sortino and Diversification ratios to EfficientFrontier, EfficientFrontierReb and Portfolio classes.
163
+
- Make rebalancing period an attribute of Portfolio class.
164
+
- Add withdrawals as an attribute of Portfolio class.
165
+
- Make AssetList class accept Portfolio instances in a list of assets
166
+
- Add Black-Litterman asset allocation
167
+
- Accelerate optimization for multi-period Efficient Frontier: minimize_risk and maximize_risk methods of EfficientFrontierReb class.
168
+
- Make a single EfficientFrontier class for all optimizations: single-period or multu-period with rebalancing period as a parameter.
169
+
- Add different utility functions for optimizers: semi-deviation, VaR, CVaR, drawdowns etc.
170
+
- Add more functions based on suggestion of users.
149
171
150
172
## Contributing to okama
151
173
152
-
All contributions, bug reports, bug fixes, documentation improvements, enhancements, frontend implementation and ideas are welcome.
174
+
Contributions are *most welcome*. Have a look at the [Contribution Guide](https://github.com/mbk-dev/okama/blob/master/CONTRIBUTING.md) for more.
175
+
176
+
## Communication
177
+
178
+
For basic usage questions (e.g., "_Is XXX currency supported by okama?_") and for sharing ideas please use [GitHub Discussions](https://github.com/mbk-dev/okama/discussions/3).
179
+
Russian language community is available at [okama.io forums](https://community.okama.io/c/python-okama).
0 commit comments