Package org.wkh.bateman.fetch

Source Code of org.wkh.bateman.fetch.QuoteCollection

package org.wkh.bateman.fetch;

import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.wkh.bateman.trade.TimeSeries;

public class QuoteCollection {

    private static Logger logger = LoggerFactory.getLogger(QuoteCollection.class.getName());
    private Map<String, TimeSeries> quotes;

    public void QuoteCollection() {
    }

    public Map<String, TimeSeries> getQuotes() {
        return quotes;
    }

    public TimeSeries convertQuoteToTimeSeries(List<Quote> quotes) throws Exception {
        TreeMap<DateTime, BigDecimal> prices = new TreeMap<DateTime, BigDecimal>();

        TimeSeries series = new TimeSeries(prices);

        for (Quote quote : quotes) {
            prices.put(quote.getOpenDate(), quote.getOpen());
        }

        return series;
    }

    public void fetchAllQuotes(QuoteFetcher fetcher) throws Exception {
        logger.info("Starting quote fetching");

        Properties properties = new Properties();
        properties.load(ClassLoader.getSystemResourceAsStream("application.properties"));

        String symbolPath = properties.getProperty("symbolPath");
        int days = Integer.parseInt(properties.getProperty("days"));
        int interval = Integer.parseInt(properties.getProperty("interval"));

        Path paths = Paths.get(symbolPath);
        List<String> symbols = Files.readAllLines(paths, StandardCharsets.UTF_8);

        for (String symbol : symbols) {
            symbol = symbol.replaceAll("\\s", "");

            logger.info("Fetching quotes for " + symbol);
            List<Quote> quoteList = fetcher.parseQuotes(fetcher.fetchQuotes(symbol, days, interval), interval);
            quotes.put(symbol, convertQuoteToTimeSeries(quoteList));
        }

        logger.info("Done fetching quotes");
    }

    public void fetchAllGoogleQuotes() throws Exception {
        fetchAllQuotes(new GoogleQuoteFetcher());
    }
}
TOP

Related Classes of org.wkh.bateman.fetch.QuoteCollection

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.