New Order - Single
From client to DriveWealth
All new order messages have MsgType<35>
= D
.
Orders are accepted from the following times, depending on the first trading session for which an order is eligible:
- Overnight market: 8pm
- Pre-market: 8pm
- Core market: 4am
The following fields are supported for new order messages sent to DriveWealth. Any field not described in this table, as well as the header and trailer tables, should not be sent to DW without prior discussion.
Supported fields
Tag | Field name | Req'd | Description |
---|---|---|---|
1 | Account | Y | Account number as provided by DriveWealth |
11 | ClOrdId | Y | Trading-day-unique order ID as assigned by the client. Maximum length is 45 characters. Note that if sending messages through an order routing network, the network will likely prepend each ClOrdId value with a few characters. |
18 | ExecInst | N | Execution instruction. Supported values: 1 = Not Held. |
21 | HandlInstr | N | Supported values:2 = Automated Execution; Broker intervention okayNote 21=3 will be rejected |
22 | IDSource | N* | If sending SecurityID<48> , the type of value.Supported values: 1 = CUSIP4 = ISIN5 = RIC*Either Symbol<55> or SecurityID<48> + IDSource\<22> must be defined |
38 | OrderQty | N* | The total intended quantity of the order in shares. *Either OrderQty<38> or CashOrderQty<152> must be defined. |
40 | OrdType | Y | Supported values:1 = Market2 = Limit3 = Stop4 = Stop limit5 = MOCB = LOC |
44 | Price | N* | Limit price, in dollars per share. Minimum price resolution is one cent for prices of a dollar and higher, one hundredth of a cent for prices below a dollar. Maximum numerical value is 1,000,000. *Limit price must be present for Limit orders. |
47 | OrderCapacity | N | Supported values:A = Agency |
48 | SecurityID | N* | A security identifier. See IDSource<22> for the types of identifiers you can use in this tag. If specifying a symbol, use Symbol<55> instead.*Either Symbol<55> or SecurityID<48> + IDSource<22> must be defined |
54 | Side | Y | The side of the order. Supported values:1 = Buy2 = Sell Long |
55 | Symbol | N* | Ticker symbol (without suffix. Any suffix should be sent as SymbolSfx<65> ).*Either Symbol<55> or SecurityID<48> + IDSource<22> must be defined |
58 | Text | N | Client is free to append arbitrary text; Limit 60 characters |
59 | TimeInForce | Y | Supported values:0 = Day2 = At the Opening3 = IOC - Immediate or Cancel7 = At the CloseDeprecated values: 5 = TradingSessionID<336> |
60 | TransactTime | Y | Time this order request was initiated/released by the client system. GMT date/time in millisecond resolution or better. Upon being received by DriveWealth, this timestamp must be within the last 60 seconds. Otherwise, a Reject message will be sent with "Stale Order" as Text<58> . |
63 | SettlementType | N | Supported values:0 = Regular |
65 | SymbolSfx | N | Symbol suffix for NYSE listed securities in CMS format |
99 | StopPx | N | Stop price, in dollars per share. Minimum price resolution is one cent for prices of a dollar and higher, one hundredth of a cent for prices below a dollar. Stop price must be present for Stop orders. |
100 | ExDestination | N | Set to send an order to a specific destination. Supported values: 100 = BLUE (See Section 5.1.1)100 = TEST (See Section 5.3) |
109 | ClientID | Y | A unique identifier of the User/Trader who created the order. Maximum length is 64 characters. |
152 | CashOrderQty | N* | Specifies approximate order quantity desired in monetary units vs. number of shares. If set, DriveWealth will estimate share quantity in OrderQty<38> *Either OrderQty<38> or CashOrderQty<152> must be defined. |
336 | TradingSessionID | N | The sessions for which this order is eligible. This tag should be used to execute orders in the extended or overnight sessions. If ExDestination is not specified, DriveWealth will determine how to process the order in accordance with the requested sessions. This value must be set to 8, 9, or 10 for orders to automatically roll from the overnight session into the pre-market session. Supported values: 1 = Pre2 = Core3 = Pre + Core4 = Post5 = Core + Post6 = Overnight7 = Pre + Core + Post8 = Overnight + Pre9 = Overnight + Pre + Core10 = Overnight + Pre + Core + PostThe default value is "Core" (2) only. Must be unset if the order is an algorithmic order or auction (on-open, on-close) order. |
6102 | AlgoStrategy | N | The type of algo strategy. Supported values:VWAP TWAP |
6103 | AlgoStartTime | N | The time the algo order is activated. GMT date/time in millisecond resolution or better. Defaults to the start of the core trading session. |
6104 | AlgoEndTime | N | The time by which the algo must complete or be canceled. GMT date/time in millisecond resolution or better. Defaults to the end of the core session hours. |
6106 | AlgoMaxPercentVol | N | Maximum percentage of volume. Integer values 1-100 for 1%-100%. Defaults to 100%. |
Auction orders
Auction order types (on-open, on-close) are supported when paired with the correct TimeInForce<59>
value.
Auction order type | OrdType<40> | TimeInForce<59> |
---|---|---|
Market on Open (MOO) | 1 | 2 |
Limit on Open (LOO) | 2 | 2 |
Market on Close (MOC) | 1 | 7 |
Market on Close (MOC) — alternative | 5 | 0 |
Limit on Close (LOC) | 2 | 7 |
Limit on Close (LOC) — alternative | B | 0 |
Auction Cutoffs
DriveWealth follows the primary exchange cutoffs
Exchange | MOO | LOO | Open Cancel Cutoff | MOC | LOC | Close Cancel Cutoff |
---|---|---|---|---|---|---|
NYSE American | 9:29:55 | 9:29:55 | 9:29:00 | 15:50 | 15:50 | 15:50 |
ARCA | 9:29:55 | 9:29:55 | 9:29:00 | 15:59 | 15:59 | 15:59 |
Nasdaq | 9:28:00 | 9:29:30 | 9:25:00 | 15:55 | 15:58 | 15:50 |
BATS | 9:28:00 | 9:28:00 | 9:28:00 | 15:59 | 15:59 | 15:59 |
Algorithmic orders
Utilizing an algorithm requires an order to be valid for the core market session only, and for a AlgoStrategy<6102>
to be set.
Supported parameters by algorithm:
Parameter | TWAP | VWAP |
---|---|---|
Start Time | ✅ | ✅ |
End Time | ✅ | ✅ |
Max % Volume | ✅ | ✅ |
Pre-market and post-market orders
For orders to be eligible for the pre-open trading session (4-9:30 am ET), and/or the post-close trading session (4 pm-8 pm ET) the order must have a conforming TradingSessionID<336>
supplied and it must be a Limit order.
Overnight orders
Orders are eligible for the overnight trading session (8pm ET–4am ET) if:
- The order is a limit order, and
- The
TradingSessionID<336>
indicates overnight eligibility, and - The order is received between 8pm ET and 4am ET
Orders can be directed to a specific overnight destination by setting tag ExDestination<100>
, instead of TradingSessionID<336>
. For example, orders designated with 100=BLUE
will be set to Blue Ocean ATS. This is not recommended as it prohibits execution by any other venue.
Overnight order rollover
Orders sent to the overnight session can be recalled and sent to the pre-market session automatically. Doing so requires TradingSessionID<336>
to indicate eligibility for both sessions (values 8, 9, or 10).
If an order is sent with ExDestination<100>
, it will only be eligible to be handled by that destination, and will not be eligible for rolling into the pre-market, regardless of TradingSessionID<336>
.
For orders with rollover enabled, If an order isn’t filled by an overnight liquidity venue by 3:55am ET, it will be rerouted to a venue for the pre-open trading session. This time is subject to change and DriveWealth may adjust this procedure closer to 4am ET.
Samples
1=<DW assigned account>
11=2023090110901011
38=100
40=2
44=260.10
54=1
55=TSLA
59=0
60=20230901-12:01:01.001
109=io1n3-y9801p
1=<DW assigned account>
11=2023090110901011
38=100
40=2
44=260.10
54=1
55=TSLA
59=0
60=20230901-12:01:01.001
109=io1n3-y9801p
336=7
// This order rolls over from the overnight session to the pre-market if unfilled
1=<DW assigned account>
11=2023090110901011
38=100
40=2
44=260.10
54=1
55=TSLA
59=0
60=20230901-01:01:01.001
109=io1n3-y9801p
336=10
Updated about 1 month ago