Skip to content

Commit

Permalink
add QuoteContext.queryWarrantList for java
Browse files Browse the repository at this point in the history
  • Loading branch information
sunli829 committed Apr 1, 2024
1 parent 9015ce1 commit 1b46b01
Show file tree
Hide file tree
Showing 17 changed files with 458 additions and 27 deletions.
7 changes: 7 additions & 0 deletions java/Makefile.toml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,13 @@ args = [
"javasrc/src/main/java/com/longport/quote/CreateWatchlistGroupResponse.java",
"javasrc/src/main/java/com/longport/quote/DeleteWatchlistGroup.java",
"javasrc/src/main/java/com/longport/quote/UpdateWatchlistGroup.java",
"javasrc/src/main/java/com/longport/quote/WarrantStatus.java",
"javasrc/src/main/java/com/longport/quote/WarrantSortBy.java",
"javasrc/src/main/java/com/longport/quote/SortOrderType.java",
"javasrc/src/main/java/com/longport/quote/FilterWarrantInOutBoundsType.java",
"javasrc/src/main/java/com/longport/quote/FilterWarrantExpiryDate.java",
"javasrc/src/main/java/com/longport/quote/WarrantInfo.java",
"javasrc/src/main/java/com/longport/quote/QueryWarrantOptions.java",

"javasrc/src/main/java/com/longport/trade/AccountBalance.java",
"javasrc/src/main/java/com/longport/trade/BalanceType.java",
Expand Down
8 changes: 8 additions & 0 deletions java/c/com_longport_SdkNative.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions java/javasrc/src/main/java/com/longport/SdkNative.java
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ public static native void quoteContextOptionChainInfoByDate(long context, String

public static native void quoteContextWarrantIssuers(long context, AsyncCallback callback);

public static native void quoteContextWarrantList(long context, QueryWarrantOptions opts,
AsyncCallback callback);

public static native void quoteContextTradingSession(long context, AsyncCallback callback);

public static native void quoteContextTradingDays(long context, Market market, LocalDate begin, LocalDate end,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.longport.quote;

public enum FilterWarrantExpiryDate {
LT_3,
Between_3_6,
Between_6_12,
GT_12,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.longport.quote;

public enum FilterWarrantInOutBoundsType {
In,
Out,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package com.longport.quote;

@SuppressWarnings("unused")
public class QueryWarrantOptions {
private String symbol;
private WarrantSortBy sortBy;
private SortOrderType sortType;
private WarrantType[] warrantType;
private int[] issuer;
private FilterWarrantExpiryDate[] expiryDate;
private FilterWarrantInOutBoundsType[] priceType;
private WarrantStatus[] status;

public QueryWarrantOptions(String symbol, WarrantSortBy sortBy, SortOrderType sortType) {
this.symbol = symbol;
this.sortBy = sortBy;
this.sortType = sortType;
}

public QueryWarrantOptions setWarrantType(WarrantType[] warrantType) {
this.warrantType = warrantType;
return this;
}

public QueryWarrantOptions setIssuer(int[] issuer) {
this.issuer = issuer;
return this;
}

public QueryWarrantOptions setExpiryDate(FilterWarrantExpiryDate[] expiryDate) {
this.expiryDate = expiryDate;
return this;
}

public QueryWarrantOptions setPriceType(FilterWarrantInOutBoundsType[] priceType) {
this.priceType = priceType;
return this;
}

public QueryWarrantOptions setStatus(WarrantStatus[] status) {
this.status = status;
return this;
}

}
33 changes: 33 additions & 0 deletions java/javasrc/src/main/java/com/longport/quote/QuoteContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,39 @@ public CompletableFuture<IssuerInfo[]> getWarrantIssuers()
});
}

/**
* Query warrant list
*
* <pre>
* {@code
* import com.longport.*;
* import com.longport.quote.*;
*
* class Main {
* public static void main(String[] args) throws Exception {
* try (Config config = Config.fromEnv(); QuoteContext ctx = QuoteContext.create(config).get()) {
* QueryWarrantOptions opts = new QueryWarrantOptions("700.HK", WarrantSortBy.LastDone,
* SortOrderType.Ascending);
* IssuerInfo[] resp = ctx.queryWarrantList(opts).get();
* for (IssuerInfo obj : resp) {
* System.out.println(obj);
* }
* }
* }
* }
* }
* </pre>
*
* @return A Future representing the result of the operation
* @throws OpenApiException If an error occurs
*/
public CompletableFuture<WarrantInfo[]> queryWarrantList(QueryWarrantOptions opts)
throws OpenApiException {
return AsyncCallback.executeTask((callback) -> {
SdkNative.quoteContextWarrantList(this.raw, opts, callback);
});
}

/**
* Get trading session of the day
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.longport.quote;

public enum SortOrderType {
Ascending,
Descending,
}
146 changes: 146 additions & 0 deletions java/javasrc/src/main/java/com/longport/quote/WarrantInfo.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
package com.longport.quote;

import java.math.BigDecimal;
import java.time.LocalDate;

public class WarrantInfo {
private String symbol;
private WarrantType warrantType;
private String name;
private BigDecimal lastDone;
private BigDecimal changeRate;
private BigDecimal changeValue;
private long volume;
private BigDecimal turnover;
private LocalDate expiryDate;
private BigDecimal strikePrice;
private BigDecimal upperStrikePrice;
private BigDecimal lowerStrikePrice;
private long outstandingQty;
private BigDecimal outstandingRatio;
private BigDecimal premium;
private BigDecimal itmOtm;
private BigDecimal impliedVolatility;
private BigDecimal delta;
private BigDecimal callPrice;
private BigDecimal toCallPrice;
private BigDecimal effectiveLeverage;
private BigDecimal leverageRatio;
private BigDecimal conversionRatio;
private BigDecimal balancePoint;
private WarrantStatus status;

public String getSymbol() {
return symbol;
}

public WarrantType getWarrantType() {
return warrantType;
}

public String getName() {
return name;
}

public BigDecimal getLastDone() {
return lastDone;
}

public BigDecimal getChangeRate() {
return changeRate;
}

public BigDecimal getChangeValue() {
return changeValue;
}

public long getVolume() {
return volume;
}

public BigDecimal getTurnover() {
return turnover;
}

public LocalDate getExpiryDate() {
return expiryDate;
}

public BigDecimal getStrikePrice() {
return strikePrice;
}

public BigDecimal getUpperStrikePrice() {
return upperStrikePrice;
}

public BigDecimal getLowerStrikePrice() {
return lowerStrikePrice;
}

public long getOutstandingQty() {
return outstandingQty;
}

public BigDecimal getOutstandingRatio() {
return outstandingRatio;
}

public BigDecimal getPremium() {
return premium;
}

public BigDecimal getItmOtm() {
return itmOtm;
}

public BigDecimal getImpliedVolatility() {
return impliedVolatility;
}

public BigDecimal getDelta() {
return delta;
}

public BigDecimal getCallPrice() {
return callPrice;
}

public BigDecimal getToCallPrice() {
return toCallPrice;
}

public BigDecimal getEffectiveLeverage() {
return effectiveLeverage;
}

public BigDecimal getLeverageRatio() {
return leverageRatio;
}

public BigDecimal getConversionRatio() {
return conversionRatio;
}

public BigDecimal getBalancePoint() {
return balancePoint;
}

public WarrantStatus getStatus() {
return status;
}

@Override
public String toString() {
return "WarrantInfo [symbol=" + symbol + ", warrantType=" + warrantType + ", name=" + name + ", lastDone="
+ lastDone + ", changeRate=" + changeRate + ", changeValue=" + changeValue + ", volume=" + volume
+ ", turnover=" + turnover + ", expiryDate=" + expiryDate + ", strikePrice=" + strikePrice
+ ", upperStrikePrice=" + upperStrikePrice + ", lowerStrikePrice=" + lowerStrikePrice
+ ", outstandingQty=" + outstandingQty + ", outstandingRatio=" + outstandingRatio + ", premium="
+ premium + ", itmOtm=" + itmOtm + ", impliedVolatility=" + impliedVolatility + ", delta=" + delta
+ ", callPrice=" + callPrice + ", toCallPrice=" + toCallPrice + ", effectiveLeverage="
+ effectiveLeverage + ", leverageRatio=" + leverageRatio + ", conversionRatio=" + conversionRatio
+ ", balancePoint=" + balancePoint + ", status=" + status + "]";
}

}
26 changes: 26 additions & 0 deletions java/javasrc/src/main/java/com/longport/quote/WarrantSortBy.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.longport.quote;

public enum WarrantSortBy {
LastDone,
ChangeRate,
ChangeValue,
Volume,
Turnover,
ExpiryDate,
StrikePrice,
UpperStrikePrice,
LowerStrikePrice,
OutstandingQuantity,
OutstandingRatio,
Premium,
ItmOtm,
ImpliedVolatility,
Delta,
CallPrice,
ToCallPrice,
EffectiveLeverage,
LeverageRatio,
ConversionRatio,
BalancePoint,
Status,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.longport.quote;

public enum WarrantStatus {
Suspend,
PrepareList,
Normal,
}
6 changes: 6 additions & 0 deletions java/src/init.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,11 @@ pub extern "system" fn Java_com_longport_SdkNative_init<'a>(
longport::quote::OptionType,
longport::quote::OptionDirection,
longport::quote::WarrantType,
longport::quote::WarrantStatus,
longport::quote::SortOrderType,
longport::quote::WarrantSortBy,
longport::quote::FilterWarrantExpiryDate,
longport::quote::FilterWarrantInOutBoundsType,
longport::quote::Period,
longport::quote::AdjustType,
longport::quote::SecurityBoard,
Expand Down Expand Up @@ -129,6 +134,7 @@ pub extern "system" fn Java_com_longport_SdkNative_init<'a>(
longport::quote::Candlestick,
longport::quote::StrikePriceInfo,
longport::quote::IssuerInfo,
longport::quote::WarrantInfo,
longport::quote::MarketTradingSession,
longport::quote::TradingSessionInfo,
longport::quote::MarketTradingDays,
Expand Down
Loading

0 comments on commit 1b46b01

Please sign in to comment.