Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,6 @@ is uniform across the SDK regardless of how many parameters an endpoint has.
|--------|---------|
| `lookup` | Resolve a human description (`"AAPL 1/16/2026 $200 Call"`) to an OCC symbol |
| `expirations` | Expiration dates for an underlying |
| `strikes` | Strike ladder per expiration |
| `quote` | Quote for a single OCC option symbol |
| `quotes` | Quotes for many symbols — fans out concurrently, returns a per-symbol map |
| `chain` | Full option chain with the rich filter surface |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,13 @@
import static org.assertj.core.api.Assertions.assertThat;

import com.marketdata.sdk.options.ExpirationFilter;
import com.marketdata.sdk.options.ExpirationStrikes;
import com.marketdata.sdk.options.OptionQuote;
import com.marketdata.sdk.options.OptionSide;
import com.marketdata.sdk.options.OptionsChainRequest;
import com.marketdata.sdk.options.OptionsExpirationsRequest;
import com.marketdata.sdk.options.OptionsLookupRequest;
import com.marketdata.sdk.options.OptionsQuoteRequest;
import com.marketdata.sdk.options.OptionsQuotesRequest;
import com.marketdata.sdk.options.OptionsStrikesRequest;
import com.marketdata.sdk.options.StrikeRange;
import java.time.LocalDate;
import java.util.List;
Expand Down Expand Up @@ -91,17 +89,6 @@ void expirationsReturnsAtLeastOneFutureDate() {
assertThat(resp.updated().getZone().getId()).isEqualTo("America/New_York");
}

@Test
void strikesReturnsStrikesPerExpiration() {
OptionsStrikesResponse resp = client.options().strikes(OptionsStrikesRequest.of(UNDERLYING));

assertThat(resp.statusCode()).isIn(200, 203);
assertThat(resp.values()).isNotEmpty();
ExpirationStrikes first = resp.values().get(0);
assertThat(first.strikes()).as("first expiration's strike ladder is non-empty").isNotEmpty();
assertThat(first.expiration().getZone().getId()).isEqualTo("America/New_York");
}

@Test
void chainReturnsFilteredContracts() {
// Light filter: a narrow strike-limit window keeps the response small without depending on
Expand Down
5 changes: 1 addition & 4 deletions src/main/java/com/marketdata/sdk/MarketDataClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -192,10 +192,7 @@ public UtilitiesResource utilities() {
return utilities;
}

/**
* Options endpoints: {@code lookup}, {@code expirations}, {@code strikes}, {@code quotes}, {@code
* chain}.
*/
/** Options endpoints: {@code lookup}, {@code expirations}, {@code quotes}, {@code chain}. */
public OptionsResource options() {
return options;
}
Expand Down
9 changes: 0 additions & 9 deletions src/main/java/com/marketdata/sdk/OptionsCsvResource.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import com.marketdata.sdk.options.OptionsExpirationsRequest;
import com.marketdata.sdk.options.OptionsQuoteRequest;
import com.marketdata.sdk.options.OptionsQuotesRequest;
import com.marketdata.sdk.options.OptionsStrikesRequest;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
Expand Down Expand Up @@ -84,14 +83,6 @@ public Map<String, CsvResponse> quotes(OptionsQuotesRequest request) {
return transport.joinSync(quotesAsync(request));
}

public CompletableFuture<CsvResponse> strikesAsync(OptionsStrikesRequest request) {
return executeCsv(OptionsResource.strikesSpec(request));
}

public CsvResponse strikes(OptionsStrikesRequest request) {
return transport.joinSync(strikesAsync(request));
}

public CompletableFuture<CsvResponse> expirationsAsync(OptionsExpirationsRequest request) {
return executeCsv(OptionsResource.expirationsSpec(request));
}
Expand Down
9 changes: 0 additions & 9 deletions src/main/java/com/marketdata/sdk/OptionsHtmlResource.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.marketdata.sdk.options.OptionsChainRequest;
import com.marketdata.sdk.options.OptionsExpirationsRequest;
import com.marketdata.sdk.options.OptionsQuoteRequest;
import com.marketdata.sdk.options.OptionsStrikesRequest;
import java.util.concurrent.CompletableFuture;

/**
Expand Down Expand Up @@ -45,14 +44,6 @@ public HtmlResponse quote(OptionsQuoteRequest request) {
return transport.joinSync(quoteAsync(request));
}

public CompletableFuture<HtmlResponse> strikesAsync(OptionsStrikesRequest request) {
return executeHtml(OptionsResource.strikesSpec(request));
}

public HtmlResponse strikes(OptionsStrikesRequest request) {
return transport.joinSync(strikesAsync(request));
}

public CompletableFuture<HtmlResponse> expirationsAsync(OptionsExpirationsRequest request) {
return executeHtml(OptionsResource.expirationsSpec(request));
}
Expand Down
30 changes: 0 additions & 30 deletions src/main/java/com/marketdata/sdk/OptionsResource.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
import com.marketdata.sdk.options.OptionsQuoteRequest;
import com.marketdata.sdk.options.OptionsQuotes;
import com.marketdata.sdk.options.OptionsQuotesRequest;
import com.marketdata.sdk.options.OptionsStrikes;
import com.marketdata.sdk.options.OptionsStrikesRequest;
import com.marketdata.sdk.options.StrikeFilter;
import java.io.IOException;
import java.time.LocalDate;
Expand Down Expand Up @@ -115,21 +113,6 @@ public OptionsExpirationsResponse expirations(OptionsExpirationsRequest request)
return transport.joinSync(expirationsAsync(request));
}

/** Async: fetch the strike prices available for each expiration on the request's underlying. */
public CompletableFuture<OptionsStrikesResponse> strikesAsync(OptionsStrikesRequest request) {
RequestSpec.Builder b = strikesSpec(request);
config.applyTo(b);
return execute(
b.build(),
OptionsStrikes.class,
(d, env, fmt) -> new OptionsStrikesResponse(d.expirations(), d.updated(), env, fmt));
}

/** Sync wrapper for {@link #strikesAsync(OptionsStrikesRequest)}. */
public OptionsStrikesResponse strikes(OptionsStrikesRequest request) {
return transport.joinSync(strikesAsync(request));
}

/** Async: fetch the current (or historical) quote for a single OCC option symbol. */
public CompletableFuture<OptionsQuotesResponse> quoteAsync(OptionsQuoteRequest request) {
RequestSpec.Builder b =
Expand Down Expand Up @@ -229,18 +212,6 @@ static RequestSpec.Builder expirationsSpec(OptionsExpirationsRequest request) {
return b;
}

static RequestSpec.Builder strikesSpec(OptionsStrikesRequest request) {
RequestSpec.Builder b =
RequestSpec.get("options/strikes/" + PathSegments.encode(request.symbol()));
if (request.expiration() != null) {
b.query("expiration", DateTimeFormatter.ISO_LOCAL_DATE.format(request.expiration()));
}
if (request.date() != null) {
b.query("date", DateTimeFormatter.ISO_LOCAL_DATE.format(request.date()));
}
return b;
}

static RequestSpec.Builder quoteSpec(
String optionSymbol,
@Nullable LocalDate date,
Expand Down Expand Up @@ -379,7 +350,6 @@ static SimpleModule wireFormatModule() {
SimpleModule m = new SimpleModule("marketdata-options");
m.addDeserializer(OptionsLookup.class, new OptionsLookupDeserializer());
m.addDeserializer(OptionsExpirations.class, new OptionsExpirationsDeserializer());
m.addDeserializer(OptionsStrikes.class, new OptionsStrikesDeserializer());
m.addDeserializer(OptionsQuotes.class, optionRowsDeserializer(OptionsQuotes::new));
m.addDeserializer(OptionsChain.class, optionRowsDeserializer(OptionsChain::new));
return m;
Expand Down
94 changes: 0 additions & 94 deletions src/main/java/com/marketdata/sdk/OptionsStrikesDeserializer.java

This file was deleted.

31 changes: 0 additions & 31 deletions src/main/java/com/marketdata/sdk/OptionsStrikesResponse.java

This file was deleted.

24 changes: 0 additions & 24 deletions src/main/java/com/marketdata/sdk/options/ExpirationStrikes.java

This file was deleted.

29 changes: 0 additions & 29 deletions src/main/java/com/marketdata/sdk/options/OptionsStrikes.java

This file was deleted.

Loading
Loading