コード例 #1
0
  @Override
  protected TaskMetaData process() {
    List<String> allSymb = earnRepo.getAllUniqueSymbol();
    List<String> unCleanSymb = new ArrayList<String>();

    for (String sym : allSymb) {
      List<Earning> allEarningsForSymbol = earnRepo.findBySymbolOrderByDateDesc(sym);
      int i = 0;
      for (Earning earning : allEarningsForSymbol) {

        // Only concerned with earnings for NASDAQ AND NYSE
        if (earning.getSymbol().contains(".")) {
          break;
        }

        if (i == 0) {
          i++;
          continue;
        }

        String currentCompanyName = allEarningsForSymbol.get(i - 1).getCompanyName();
        LocalDate currentEarningDate = allEarningsForSymbol.get(i - 1).getDate();
        i++;

        String historicalCompanyName = earning.getCompanyName();
        LocalDate historicalEarningDate = earning.getDate();

        if (!areEquivalent(currentCompanyName, historicalCompanyName)
            && signDifferenceBetweenEarnings(currentEarningDate, historicalEarningDate)) {
          unCleanSymb.add(earning.getSymbol());
          break;
        }
      }
    }
    return null;
  }