1919import com .webull .openapi .trade .request .v3 .OptionOrderItemLeg ;
2020import com .webull .openapi .trade .request .v3 .TradeOrder ;
2121import com .webull .openapi .trade .request .v3 .TradeOrderItem ;
22- import com .webull .openapi .trade .response .v3 .Account ;
23- import com .webull .openapi .trade .response .v3 .AccountBalanceInfo ;
24- import com .webull .openapi .trade .response .v3 .AccountPositionsInfo ;
25- import com .webull .openapi .trade .response .v3 .OrderHistory ;
26- import com .webull .openapi .trade .response .v3 .PreviewOrderResponse ;
27- import com .webull .openapi .trade .response .v3 .TradeOrderResponse ;
22+ import com .webull .openapi .trade .response .v3 .*;
2823
2924import java .util .ArrayList ;
3025import java .util .List ;
@@ -55,6 +50,8 @@ public static void main(String[] args) throws InterruptedException {
5550 if (CollectionUtils .isNotEmpty (accountIds .getSecurityAccountIds ())) {
5651 runEquityNormalOrderExample (apiService , accountIds .getSecurityAccountIds ().get (0 ));
5752
53+ runEquityBatchOrderExample (apiService , accountIds .getSecurityAccountIds ().get (0 ));
54+
5855 runEquityComboOrderExample (apiService , accountIds .getSecurityAccountIds ().get (0 ));
5956
6057 runOptionOrderExample (apiService , accountIds .getSecurityAccountIds ().get (0 ));
@@ -102,9 +99,36 @@ private static AccountIds initAccount(com.webull.openapi.trade.TradeClientV3 api
10299 return accountIds ;
103100 }
104101
105- private static void runEquityNormalOrderExample (
102+ private static void runEquityBatchOrderExample (
106103 com .webull .openapi .trade .TradeClientV3 apiService ,
107104 String accountId
105+ ) throws InterruptedException {
106+ TradeOrder newBatchOrder = new TradeOrder ();
107+ List <TradeOrderItem > batchOrders = new ArrayList <>();
108+ TradeOrderItem normalEquityOrder = new TradeOrderItem ();
109+ normalEquityOrder .setClientOrderId (GUID .get ());
110+ normalEquityOrder .setComboType (ComboType .NORMAL .name ());
111+ normalEquityOrder .setSymbol ("AAPL" );
112+ normalEquityOrder .setInstrumentType (InstrumentSuperType .EQUITY .name ());
113+ normalEquityOrder .setMarket (Markets .US .name ());
114+ normalEquityOrder .setOrderType (OrderType .LIMIT .name ());
115+ normalEquityOrder .setQuantity ("1" );
116+ normalEquityOrder .setLimitPrice ("280" );
117+ normalEquityOrder .setSupportTradingSession ("CORE" );
118+ normalEquityOrder .setSide (OrderSide .BUY .name ());
119+ normalEquityOrder .setTimeInForce (OrderTIF .DAY .name ());
120+ normalEquityOrder .setEntrustType (EntrustType .QTY .name ());
121+ batchOrders .add (normalEquityOrder );
122+ newBatchOrder .setBatchOrders (batchOrders );
123+
124+ TradeBatchPlaceResponse placeNormalEquityResponse =
125+ apiService .batchPlaceOrder (accountId , newBatchOrder );
126+ logger .info ("batchPlaceNormalEquityResponse:{}" , placeNormalEquityResponse );
127+ }
128+
129+ private static void runEquityNormalOrderExample (
130+ com .webull .openapi .trade .TradeClientV3 apiService ,
131+ String accountId
108132 ) throws InterruptedException {
109133 TradeOrder newNormalEquityOrder = new TradeOrder ();
110134 List <TradeOrderItem > newNormalEquityOrders = new ArrayList <>();
@@ -126,11 +150,11 @@ private static void runEquityNormalOrderExample(
126150 newNormalEquityOrder .setNewOrders (newNormalEquityOrders );
127151
128152 PreviewOrderResponse previewNormalEquityResponse =
129- apiService .previewOrder (accountId , newNormalEquityOrder );
153+ apiService .previewOrder (accountId , newNormalEquityOrder );
130154 logger .info ("previewNormalEquityResponse: {}" , previewNormalEquityResponse );
131155
132156 TradeOrderResponse placeNormalEquityResponse =
133- apiService .placeOrder (accountId , newNormalEquityOrder );
157+ apiService .placeOrder (accountId , newNormalEquityOrder );
134158 logger .info ("placeNormalEquityResponse: {}" , placeNormalEquityResponse );
135159 doSleep ();
136160
@@ -144,26 +168,26 @@ private static void runEquityNormalOrderExample(
144168 replaceNormalEquityOrder .setModifyOrders (replaceNormalEquityOrders );
145169
146170 TradeOrderResponse replaceNormalEquityResponse =
147- apiService .replaceOrder (accountId , replaceNormalEquityOrder );
171+ apiService .replaceOrder (accountId , replaceNormalEquityOrder );
148172 logger .info ("replaceNormalEquityResponse: {}" , replaceNormalEquityResponse );
149173 doSleep ();
150174
151175 TradeOrder cancelNormalEquityOrder = new TradeOrder ();
152176 cancelNormalEquityOrder .setClientOrderId (normalEquityOrder .getClientOrderId ());
153177 TradeOrderResponse cancelNormalEquityResponse =
154- apiService .cancelOrder (accountId , cancelNormalEquityOrder );
178+ apiService .cancelOrder (accountId , cancelNormalEquityOrder );
155179 logger .info ("cancelNormalEquityResponse: {}" , cancelNormalEquityResponse );
156180
157181 List <OrderHistory > listOrdersResponse =
158- apiService .listOrders (accountId , 10 , null , null , null );
182+ apiService .listOrders (accountId , 10 , null , null , null );
159183 logger .info ("listOrdersResponse: {}" , listOrdersResponse );
160184
161185 List <OrderHistory > openOrdersResponse =
162- apiService .openOrders (accountId , 10 , null );
186+ apiService .openOrders (accountId , 10 , null );
163187 logger .info ("openOrdersResponse: {}" , openOrdersResponse );
164188
165189 OrderHistory orderDetailResponse =
166- apiService .getOrderDetails (accountId , normalEquityOrder .getClientOrderId ());
190+ apiService .getOrderDetails (accountId , normalEquityOrder .getClientOrderId ());
167191 logger .info ("orderDetailResponse: {}" , orderDetailResponse );
168192 }
169193
0 commit comments