Documentation, examples and further information of the ta4j project
This project is maintained by ta4j Organization
In our terms a contribution is already to share a good analysed bug report Found a bug? If you want to go deeper and you want to contribute test cases, e.g. for a quality contribution (identify a bug) or to help us to keep the lib clean and stable. Or you have even a nice idea, which you would like to contribute as code? You are always welcome. We suggest you before you contribute a bigger work to get prior permission, since we want to verify first if the contribution will bring the lib forward. We will give quickly a feedback if we will accept the contribution.
In the most cases (e.g. bug fixes and little enhancements) you can create a pull request to the master
branch. For bigger improvements please open an issue to discuss your plans.
Take a look at the branching model to get an overview. You can fork and clone the repository and set up the master branch as follows:
// fork repositroy on Git UI from https://github.com/ta4j/ta4j.git to https://github.com/yourAccount/ta4j.git
git clone https://github.com/yourAccount/ta4j.git
cd ta4j
You should always create a new branch (forked from master
branch) for enhancements or bug fixes:
git checkout -b feature/name-of-your-feature-branch
git push --set-upstream origin feature/*
mvn test
. There are github actions checking for code format and licence header as well:// implement changes on your branch
// format code, add license header and run unit tests with maven:
mvn -B clean license:format formatter:format test
git add myNewFiles.java CHANGELOG.md
git commit
git push
The last step would be to do a pull request from your branch to the master
branch of the ta4j repository. If you want to do a pull-request, the best way is to do is via Git UI:
(in progress…)
First things first: Feel free to write awesome code! Do not hesitate to open an issue or a pull request just because you fear making a mistake. Others can review your code, give you tips and can correct you.
int startIndex = BarSeries.getBeginIndex()
instead of int startIndex = 0
to get the first valid index of a BarSeries.Decimal.min(other)
and Decimal.minus(other)
Num
implementations because they will be determined at runtime. If necessary store primitives and use the numOf(Number n)
or the numFunction
of series in the constructor. If you are using DoubleNum::valueOf
or BigDecimalNum::valueOf
you most probably do something wrong.int
and a percentage value parameter should be double
(avoid Num
). You can convert a Number
into Num
using the numOf
function. This prevents that the user has to convert primitive input values to Num
implementations manually.If you want to add a new indicator to this repository, please open an issue first to discuss your plans.