Computing the correlation of an analyzed stock ticker
private void firstPartTickers() {
        for(int i = 0; i&lt; tickersWithOutOneAnalysed.size()/2; i++) {
            calculateCorrelation(i);
        };
    }

    private void secondPartTickers() {
        for(int i = tickersWithOutOneAnalysed.size()/2; i&lt; tickersWithOutOneAnalysed.size(); i++) {
            calculateCorrelation(i);
        };
    }



You have two almost identical methods.  Is this really necessary?  Consider the following method:  

    private void calculateTickers(int start, int increment) {
        for (int i = start; i &lt; tickersWithOutOneAnalysed.size(); i += increment) {
            calculateCorrelation(i);
        }
    }


Note that I also removed the unnecessary ; after the for loop.  

Now you can just call 

                calculateTickers(0, 2);
                calculateTickers(1, 2);


instead of 


                firstPartTickers();
                secondPartTickers();



And if you later wanted to do a third thread, you could say 

                calculateTickers(0, 3);
                calculateTickers(1, 3);
                calculateTickers(2, 3);