Skip to content

Commit 403ff3f

Browse files
feat(trading): new subscription request model (#70)
1 parent 33b07fc commit 403ff3f

11 files changed

Lines changed: 135 additions & 21 deletions

File tree

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Add the below dependency to the project's POM:
2323
<dependency>
2424
<groupId>com.factset.sdk.eventdriven</groupId>
2525
<artifactId>factsettrading</artifactId>
26-
<version>1.0.0</version>
26+
<version>2.0.0-SNAPSHOT</version>
2727
</dependency>
2828
```
2929

@@ -37,7 +37,7 @@ repositories {
3737
}
3838
3939
dependencies {
40-
implementation "com.factset.sdk.eventdriven:factsettrading:1.0.0"
40+
implementation "com.factset.sdk.eventdriven:factsettrading:2.0.0-SNAPSHOT"
4141
}
4242
```
4343

@@ -120,10 +120,15 @@ public class Console {
120120
// initialize the order update api
121121
OrderUpdateApi api = new OrderUpdateApi(client);
122122

123-
// subscribe to order updates,
124-
// possible values of subscription are "inboundOutboundParentOrders", "inboundOrders", "parentOrders", "outboundOrders"
125-
List<String> subscribeList = Collections.singletonList("inboundOutboundParentOrders");
126-
OrderSubscriptionRequest request = new OrderSubscriptionRequest(subscribeList);
123+
// subscribe to order updates
124+
OrderSubscriptionRequest.Subscribe subscribe = OrderSubscriptionRequest.Subscribe.builder()
125+
.inboundOrders(true)
126+
.parentOrders(true)
127+
.childOrders(true)
128+
.inboundMessages(true)
129+
.childMessages(true)
130+
.build();
131+
OrderSubscriptionRequest request = new OrderSubscriptionRequest(subscribe);
127132

128133
Subscription subscription = api.subscribeOrderUpdates(request)
129134
.onSnapshotEvent((snapshotEvent) -> {

src/main/java/com/factset/sdk/eventdriven/client/Error.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public class Error {
1414
private String code;
1515
private String title;
1616
private Links links;
17-
private String details;
17+
private String detail;
1818
private Source source;
1919

2020
@Data
Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,32 @@
11
package com.factset.sdk.eventdriven.factsettrading.model;
22

3+
import lombok.Builder;
34
import lombok.Data;
45
import lombok.NoArgsConstructor;
56

6-
import java.util.ArrayList;
7-
import java.util.List;
87

98
@Data
109
@NoArgsConstructor
1110
public class OrderSubscriptionRequest {
1211
Meta meta = new Meta("OrderSubscriptionRequest");
1312
SubscriptionData data = new SubscriptionData();
1413

15-
public OrderSubscriptionRequest(List<String> subscribeTo) {
16-
this.data.subscribe.addAll(subscribeTo);
14+
public OrderSubscriptionRequest(Subscribe subscribeTo) {
15+
this.data.subscribe = subscribeTo;
1716
}
1817

1918
@Data
2019
public static class SubscriptionData {
21-
List<String> subscribe = new ArrayList<>();
20+
Subscribe subscribe = Subscribe.builder().build();
21+
}
22+
23+
@Data
24+
@Builder
25+
public static class Subscribe{
26+
boolean inboundOrders;
27+
boolean parentOrders;
28+
boolean childOrders;
29+
boolean inboundMessages;
30+
boolean childMessages;
2231
}
2332
}

src/main/java/com/factset/sdk/eventdriven/factsettrading/model/SnapshotEventData.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@
77
@Data
88
public class SnapshotEventData {
99
Integer seqNo;
10-
Boolean isDone;
1110
String requestId;
12-
InitialLoadType initialLoadType;
1311
OrderUpdateEvent inboundOrderSnapshot;
1412
ParentOrderUpdateEvent parentOrderSnapshot;
15-
OrderUpdateEvent outboundOrderSnapshot;
13+
OrderUpdateEvent childOrderSnapshot;
1614
}

src/main/java/com/factset/sdk/eventdriven/factsettrading/model/tradeevents/BasicMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class BasicMessage {
2929
Boolean transmit;
3030
String destName;
3131
Map<String, Map<Integer, Integer>> repeatingGroups;
32-
Map<String, Integer> userDefinedFields;
32+
Map<Integer, String> userDefinedFields;
3333
String customFields;
3434
}
3535

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.factset.sdk.eventdriven.factsettrading.model.tradeevents;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class ChildMessage {
7+
NewOrderEvent newOrder;
8+
DKTradeEvent dkTrade;
9+
ExecutionEvent execution;
10+
OrderCancelEvent orderCancel;
11+
OrderReplaceEvent orderReplace;
12+
OrderStatusEvent orderStatus;
13+
CancelRejectEvent cancelReject;
14+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
package com.factset.sdk.eventdriven.factsettrading.model.tradeevents;
2+
3+
import com.factset.sdk.eventdriven.factsettrading.model.enums.*;
4+
import lombok.Data;
5+
6+
@Data
7+
public class NewOrderEvent {
8+
BasicMessage basicMessage;
9+
String account;
10+
String clientOrderId;
11+
Double commission;
12+
CommissionType commissionType;
13+
String currency;
14+
ExecutionInstruction executionInstruction;
15+
HandlingInstruction handlingInstructions;
16+
IdSource idSource;
17+
String ioiId;
18+
String orderId;
19+
Double orderQuantity;
20+
OrderStatus orderStatus;
21+
OrderType orderType;
22+
String originalClientOrderId;
23+
Double price;
24+
Rule80A rule80A;
25+
String securityId;
26+
Side side;
27+
String symbol;
28+
String text;
29+
TimeInForce timeInForce;
30+
String transactTime;
31+
SettlementType settlementType;
32+
String settlementDate;
33+
String symbolSuffix;
34+
String executingBroker;
35+
OpenClose openClose;
36+
String processCode;
37+
Double stopPrice;
38+
String executionDestination;
39+
String issuer;
40+
String securityDescription;
41+
String clientId;
42+
Double minimumQuantity;
43+
Double maximumFloor;
44+
ReportToExchange reportToExchange;
45+
Boolean locateRequired;
46+
String quoteId;
47+
String settlementCurrency;
48+
ForexRequest forexRequest;
49+
String expireTime;
50+
Double prevClosePrice;
51+
Double cashOrderQuantity;
52+
String effectiveTime;
53+
SecurityType securityType;
54+
Double orderQuantity2;
55+
String settlementDate2;
56+
String maturityMonthYear;
57+
PutOrCall putOrCall;
58+
Double strikePrice;
59+
CoveredOrUncovered coveredOrUncovered;
60+
CustomerOrFirm customerOrFirm;
61+
String maturityDay;
62+
String optionAttribute;
63+
String securityExchange;
64+
Double maximumShow;
65+
Double pegDifference;
66+
DiscretionInstruction discretionInstruction;
67+
Double discretionOffset;
68+
String expireDate;
69+
Product product;
70+
String cfiCode;
71+
Double price2;
72+
String key;
73+
String sendingDate;
74+
Integer pegSelectionIndex;
75+
String cancelType;
76+
Double bidPrice;
77+
Double askPrice;
78+
Double lastPrice;
79+
Integer bidSize;
80+
Integer askSize;
81+
Integer volume;
82+
String ticketId;
83+
}

src/main/java/com/factset/sdk/eventdriven/factsettrading/model/tradeevents/OrderReplaceEvent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class OrderReplaceEvent {
1212
CommissionType commissionType;
1313
String currency;
1414
ExecutionInstruction executionInstruction;
15-
HandlingInstruction handlingInstruction;
15+
HandlingInstruction handlingInstructions;
1616
IdSource idSource;
1717
String ioiId;
1818
String orderId;

src/main/java/com/factset/sdk/eventdriven/factsettrading/model/tradeevents/OrderUpdateEvent.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ public class OrderUpdateEvent {
1111
CommissionType commissionType;
1212
String currency;
1313
ExecutionInstruction executionInstruction;
14-
HandlingInstruction handlingInstruction;
14+
HandlingInstruction handlingInstructions;
1515
IdSource idSource;
1616
String ioiId;
1717
String orderId;
1818
Double orderQuantity;
19-
OrderStatus orderStatus;
19+
String orderStatus;
2020
OrderType orderType;
2121
String originalClientOrderId;
2222
Double price;
@@ -79,4 +79,7 @@ public class OrderUpdateEvent {
7979
Double executedQuantity;
8080
Double averagePrice;
8181
Double leavesQuantity;
82+
Double executedValue;
83+
ChildMessage[] childMessage;
84+
Boolean containsAllChildMessages;
8285
}

src/main/java/com/factset/sdk/eventdriven/factsettrading/model/tradeevents/TradeEventDataData.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,6 @@ public class TradeEventDataData {
2222
OrderReplaceEvent orderReplace;
2323
OrderStatusEvent orderStatus;
2424
CancelRejectEvent cancelReject;
25+
26+
String eventTime;
2527
}

0 commit comments

Comments
 (0)