use of org.knowm.xchart.SwingWrapper in project XChange by knowm.
the class DepthChartDemo method main.
public static void main(String[] args) throws IOException {
// Use the factory to get the version 1 Bitstamp exchange API using default settings
Exchange bitstampExchange = ExchangeFactory.INSTANCE.createExchange(BitstampExchange.class);
// Interested in the public market data feed (no authentication)
MarketDataService marketDataService = bitstampExchange.getMarketDataService();
System.out.println("fetching data...");
// Get the current orderbook
OrderBook orderBook = marketDataService.getOrderBook(CurrencyPair.BTC_USD);
System.out.println("orderBook = " + orderBook);
System.out.println("received data.");
System.out.println("plotting...");
// Create Chart
XYChart chart = new XYChartBuilder().width(800).height(600).title("Bitstamp Order Book").xAxisTitle("BTC").yAxisTitle("USD").build();
// Customize Chart
chart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Area);
// BIDS
List<Number> xData = new ArrayList<>();
List<Number> yData = new ArrayList<>();
BigDecimal accumulatedBidUnits = new BigDecimal("0");
for (LimitOrder limitOrder : orderBook.getBids()) {
if (limitOrder.getLimitPrice().doubleValue() > 5000) {
xData.add(limitOrder.getLimitPrice());
accumulatedBidUnits = accumulatedBidUnits.add(limitOrder.getOriginalAmount());
yData.add(accumulatedBidUnits);
}
}
Collections.reverse(xData);
Collections.reverse(yData);
// Bids Series
XYSeries series = chart.addSeries("bids", xData, yData);
series.setMarker(SeriesMarkers.NONE);
// ASKS
xData = new ArrayList<>();
yData = new ArrayList<>();
BigDecimal accumulatedAskUnits = new BigDecimal("0");
for (LimitOrder limitOrder : orderBook.getAsks()) {
if (limitOrder.getLimitPrice().doubleValue() < 20000) {
xData.add(limitOrder.getLimitPrice());
accumulatedAskUnits = accumulatedAskUnits.add(limitOrder.getOriginalAmount());
yData.add(accumulatedAskUnits);
}
}
// Asks Series
series = chart.addSeries("asks", xData, yData);
series.setMarker(SeriesMarkers.NONE);
new SwingWrapper(chart).displayChart();
}
use of org.knowm.xchart.SwingWrapper in project XChange by knowm.
the class DepthChartDemo method main.
public static void main(String[] args) throws IOException {
// Use the factory to get the version 1 Bitstamp exchange API using default settings
Exchange ccexExchange = ExchangeFactory.INSTANCE.createExchange(CCEXExchange.class);
// Interested in the public market data feed (no authentication)
MarketDataService marketDataService = ccexExchange.getMarketDataService();
System.out.println("fetching data...");
// Get the current orderbook
OrderBook orderBook = marketDataService.getOrderBook(CurrencyPair.XAUR_BTC);
System.out.println("received data.");
for (LimitOrder limitOrder : orderBook.getBids()) {
System.out.println(limitOrder.getType() + " " + limitOrder.getCurrencyPair() + " Limit price: " + limitOrder.getLimitPrice() + " Amount: " + limitOrder.getOriginalAmount());
}
for (LimitOrder limitOrder : orderBook.getAsks()) {
System.out.println(limitOrder.getType() + " " + limitOrder.getCurrencyPair() + " Limit price: " + limitOrder.getLimitPrice() + " Amount: " + limitOrder.getOriginalAmount());
}
System.out.println("plotting...");
// Create Chart
XYChart chart = new XYChartBuilder().width(800).height(600).title("C-CEX Order Book - Xaurum").xAxisTitle("BTC").yAxisTitle("Amount").build();
// Customize Chart
chart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Area);
// BIDS
List<Number> xData = new ArrayList<>();
List<Number> yData = new ArrayList<>();
BigDecimal accumulatedBidUnits = new BigDecimal("0");
for (LimitOrder limitOrder : orderBook.getBids()) {
xData.add(limitOrder.getLimitPrice());
accumulatedBidUnits = accumulatedBidUnits.add(limitOrder.getOriginalAmount());
yData.add(accumulatedBidUnits);
}
Collections.reverse(xData);
Collections.reverse(yData);
// Bids Series
XYSeries series = chart.addSeries("bids", xData, yData);
series.setMarker(SeriesMarkers.NONE);
// ASKS
xData = new ArrayList<>();
yData = new ArrayList<>();
BigDecimal accumulatedAskUnits = new BigDecimal("0");
for (LimitOrder limitOrder : orderBook.getAsks()) {
xData.add(limitOrder.getLimitPrice());
accumulatedAskUnits = accumulatedAskUnits.add(limitOrder.getOriginalAmount());
yData.add(accumulatedAskUnits);
}
// Asks Series
series = chart.addSeries("asks", xData, yData);
series.setMarker(SeriesMarkers.NONE);
new SwingWrapper(chart).displayChart();
}
use of org.knowm.xchart.SwingWrapper in project XChange by knowm.
the class BitcoiniumTickerHistoryDemo method main.
public static void main(String[] args) throws Exception {
ExchangeSpecification exchangeSpecification = new ExchangeSpecification(BitcoiniumExchange.class);
// exchangeSpecification.setPlainTextUri("http://openexchangerates.org");
exchangeSpecification.setApiKey("42djci5kmbtyzrvglfdw3e2dgmh5mr37");
System.out.println(exchangeSpecification.toString());
Exchange bitcoiniumExchange = ExchangeFactory.INSTANCE.createExchange(exchangeSpecification);
// Interested in the public market data feed (no authentication)
BitcoiniumMarketDataServiceRaw bitcoiniumMarketDataService = (BitcoiniumMarketDataServiceRaw) bitcoiniumExchange.getMarketDataService();
System.out.println("fetching data...");
// Get the latest order book data for BTC/USD - BITSTAMP
BitcoiniumTickerHistory bitcoiniumTickerHistory = bitcoiniumMarketDataService.getBitcoiniumTickerHistory("BTC", "BITSTAMP_USD", "THIRTY_DAYS");
System.out.println(bitcoiniumTickerHistory.toString());
List<Date> xAxisData = new ArrayList<>();
List<Float> yAxisData = new ArrayList<>();
for (int i = 0; i < bitcoiniumTickerHistory.getCondensedTickers().length; i++) {
BitcoiniumTicker bitcoiniumTicker = bitcoiniumTickerHistory.getCondensedTickers()[i];
Date timestamp = new Date(bitcoiniumTicker.getTimestamp());
float price = bitcoiniumTicker.getLast().floatValue();
System.out.println(timestamp + ": " + price);
xAxisData.add(timestamp);
yAxisData.add(price);
}
// Create Chart
XYChart chart = new XYChartBuilder().width(800).height(600).title("Bitstamp Price vs. Date").xAxisTitle("Date").yAxisTitle("Price").build();
// Customize Chart
chart.getStyler().setLegendPosition(LegendPosition.InsideNE);
chart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Area);
XYSeries series = chart.addSeries("Bitcoinium USD/BTC", xAxisData, yAxisData);
series.setMarker(SeriesMarkers.NONE);
new SwingWrapper(chart).displayChart();
}
use of org.knowm.xchart.SwingWrapper in project skeleton-sp18 by Berkeley-CS61B.
the class GeneratorDrawer method draw.
public void draw(int numSamples) {
double[] xValues = new double[numSamples];
double[] samples = new double[numSamples];
for (int ii = 0; ii < numSamples; ii += 1) {
xValues[ii] = ii;
samples[ii] = generator.next();
}
// Create Chart
XYChart chart = QuickChart.getChart("Generator Output", "X", "Y", "y(x)", xValues, samples);
// Show it
new SwingWrapper(chart).displayChart();
}
use of org.knowm.xchart.SwingWrapper in project XChange by knowm.
the class BitcoiniumOrderBookChartDemo method main.
public static void main(String[] args) throws Exception {
ExchangeSpecification exchangeSpecification = new ExchangeSpecification(BitcoiniumExchange.class);
// exchangeSpecification.setPlainTextUri("http://openexchangerates.org");
exchangeSpecification.setApiKey("42djci5kmbtyzrvglfdw3e2dgmh5mr37");
System.out.println(exchangeSpecification.toString());
Exchange bitcoiniumExchange = ExchangeFactory.INSTANCE.createExchange(exchangeSpecification);
// Interested in the public market data feed (no authentication)
BitcoiniumMarketDataServiceRaw bitcoiniumMarketDataService = (BitcoiniumMarketDataServiceRaw) bitcoiniumExchange.getMarketDataService();
System.out.println("fetching data...");
// Get the latest order book data for BTC/USD - BITSTAMP
BitcoiniumOrderbook bitcoiniumOrderbook = bitcoiniumMarketDataService.getBitcoiniumOrderbook("BTC", "BITSTAMP_USD", "TEN_PERCENT");
System.out.println("Order book: " + bitcoiniumOrderbook);
System.out.println("received data.");
System.out.println("plotting...");
// Create Chart
XYChart chart = new XYChartBuilder().width(800).height(600).title("Bitcoinium Order Book - BITSTAMP_BTC_USD").xAxisTitle("BTC").yAxisTitle("USD").build();
// Customize Chart
chart.getStyler().setDefaultSeriesRenderStyle(XYSeriesRenderStyle.Area);
// BIDS
// Collections.reverse(bitcoiniumOrderbook.getBidPriceList());
// Collections.reverse(bitcoiniumOrderbook.getBidVolumeList());
// Bids Series
List<Float> bidsPriceData = getPriceData(bitcoiniumOrderbook.getBids());
Collections.reverse(bidsPriceData);
List<Float> bidsVolumeData = getVolumeData(bitcoiniumOrderbook.getBids());
Collections.reverse(bidsVolumeData);
XYSeries series = chart.addSeries("bids", bidsPriceData, bidsVolumeData);
series.setMarker(SeriesMarkers.NONE);
// ASKS
// Asks Series
series = chart.addSeries("asks", getPriceData(bitcoiniumOrderbook.getAsks()), getVolumeData(bitcoiniumOrderbook.getAsks()));
series.setMarker(SeriesMarkers.NONE);
new SwingWrapper(chart).displayChart();
}
Aggregations