/*
* Copyright (C) 2012 - present by Yann Le Tallec.
* Please see distribution for license.
*/
package com.assylias.jbloomberg.packageInfo;
import com.assylias.bigblue.utils.TypedObject;
import com.assylias.jbloomberg.BloombergException;
import com.assylias.jbloomberg.BloombergSession;
import com.assylias.jbloomberg.DefaultBloombergSession;
import com.assylias.jbloomberg.HistoricalData;
import com.assylias.jbloomberg.HistoricalRequestBuilder;
import com.assylias.jbloomberg.IntradayBarData;
import com.assylias.jbloomberg.IntradayBarField;
import com.assylias.jbloomberg.IntradayBarRequestBuilder;
import com.assylias.jbloomberg.IntradayTickData;
import com.assylias.jbloomberg.IntradayTickField;
import com.assylias.jbloomberg.IntradayTickRequestBuilder;
import com.assylias.jbloomberg.RealtimeField;
import com.assylias.jbloomberg.ReferenceData;
import com.assylias.jbloomberg.ReferenceRequestBuilder;
import com.assylias.jbloomberg.RequestBuilder;
import com.assylias.jbloomberg.SubscriptionBuilder;
import com.google.common.collect.Multimap;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(groups="unit")
public class PackageInfoTest {
private static final BloombergSession session = new DefaultBloombergSession();
@BeforeClass
public void beforeClass() throws Exception {
session.start();
}
@AfterClass
public void afterClass() throws Exception {
session.stop();
}
@Test
public void test_ReferenceExample() throws Exception {
RequestBuilder<ReferenceData> hrb = new ReferenceRequestBuilder(
"SPX Index", "CRNCY_ADJ_PX_LAST")
.addOverride("EQY_FUND_CRNCY", "JPY");
ReferenceData result = session.submit(hrb).get();
double priceInYen = result.forSecurity("SPX Index").forField("CRNCY_ADJ_PX_LAST").asDouble();
System.out.println("SPX in Yen = " + priceInYen);
}
@Test
public void test_HistoricalExample() throws Exception {
LocalDate now = LocalDate.now();
RequestBuilder<HistoricalData> hrb = new HistoricalRequestBuilder("SPX Index", "PX_LAST", now.minusDays(7), now)
.fill(HistoricalRequestBuilder.Fill.NIL_VALUE)
.days(HistoricalRequestBuilder.Days.ALL_CALENDAR_DAYS);
HistoricalData result = session.submit(hrb).get();
Map<LocalDate, TypedObject> data = result.forSecurity("SPX Index").forField("PX_LAST").get();
for (Map.Entry<LocalDate, TypedObject> e : data.entrySet()) {
LocalDate dt = e.getKey();
double price = e.getValue().asDouble();
System.out.println("[" + dt + "] " + price);
}
}
@Test
public void test_IntradayBarExample() throws Exception {
OffsetDateTime now = OffsetDateTime.now();
RequestBuilder<IntradayBarData> hrb = new IntradayBarRequestBuilder("SPX Index", now.minusDays(7), now)
.adjustSplits()
.fillInitialBar()
.period(1, TimeUnit.HOURS);
IntradayBarData result = session.submit(hrb).get();
Map<OffsetDateTime, TypedObject> data = result.forField(IntradayBarField.CLOSE).get();
for (Map.Entry<OffsetDateTime, TypedObject> e : data.entrySet()) {
OffsetDateTime dt = e.getKey();
double price = e.getValue().asDouble();
System.out.println("[" + dt + "] " + price);
}
}
@Test
public void test_IntradayTickExample() throws Exception {
OffsetDateTime now = OffsetDateTime.now();
RequestBuilder<IntradayTickData> hrb = new IntradayTickRequestBuilder("SPX Index", now.minusDays(3), now)
.includeBrokerCodes()
.includeConditionCodes();
IntradayTickData result = session.submit(hrb).get();
Multimap<OffsetDateTime, TypedObject> data = result.forField(IntradayTickField.VALUE);
for (Map.Entry<OffsetDateTime, TypedObject> e : data.entries()) {
OffsetDateTime dt = e.getKey();
double price = e.getValue().asDouble();
System.out.println("[" + dt + "] " + price);
break; //to keep test short
}
}
@Test
public void test_SubscriptionExample() throws InterruptedException, BloombergException {
SubscriptionBuilder builder = new SubscriptionBuilder()
.addSecurity("ESA Index")
.addField(RealtimeField.LAST_PRICE)
.addField(RealtimeField.ASK)
.addField(RealtimeField.ASK_SIZE)
.addListener(System.out::println);
session.subscribe(builder);
Thread.sleep(3000);
}
}