Skip to content

docs: add attached order (take-profit/stop-loss) params docs and orde… - #1092

Merged
sunli829 merged 1 commit into
longbridge:mainfrom
shinexia:feature-attached-order
Jul 29, 2026
Merged

docs: add attached order (take-profit/stop-loss) params docs and orde…#1092
sunli829 merged 1 commit into
longbridge:mainfrom
shinexia:feature-attached-order

Conversation

@shinexia

Copy link
Copy Markdown
Contributor

No description provided.

@shinexia
shinexia force-pushed the feature-attached-order branch 4 times, most recently from d10f3b7 to 33a3c97 Compare June 17, 2026 06:28
@shinexia
shinexia force-pushed the feature-attached-order branch from 33a3c97 to 4cf7911 Compare June 30, 2026 11:12
@sunli829
sunli829 marked this pull request as draft July 6, 2026 06:44
@shinexia
shinexia force-pushed the feature-attached-order branch from 96eb1bc to 10b6cb5 Compare July 20, 2026 09:14
@shinexia
shinexia force-pushed the feature-attached-order branch from 10b6cb5 to 4ed573f Compare July 29, 2026 06:29
@shinexia
shinexia marked this pull request as ready for review July 29, 2026 06:32
@sunli829
sunli829 merged commit b2c7d05 into longbridge:main Jul 29, 2026
2 checks passed
sunli829 added a commit to longbridge/openapi-go that referenced this pull request Jul 29, 2026
## Summary

Ports the attached order (take-profit / stop-loss) feature added to the
Rust/Python/Node.js/Java/C/C++ SDKs in
[longbridge/openapi#549](longbridge/openapi#549)
(docs:
[longbridge/developers#1092](longbridge/developers#1092)).
PR #549 is still open/unmerged upstream at the time of this PR.

- New types: `AttachedOrderType` (`ProfitTaker` / `StopLoss` /
`Bracket`), `AttachedOrderDetail`, `SubmitAttachedParams`,
`ReplaceAttachedParams`
- `SubmitOrder` / `ReplaceOrder`: new `AttachedParams` field
- `Order` / `OrderDetail`: new `AttachedOrders []AttachedOrderDetail`
field
- New `TradeContext.OrderDetailAttached(orderId)` /
`CancelOrderAttached(orderId)` methods — query/cancel an attached
sub-order by its own order ID. Added as separate methods rather than
changing `OrderDetail`/`CancelOrder`'s existing signatures, since Go has
no method overloading or default parameters (other SDKs did this via
optional/default params or `impl Into<Options>`; Go's closest precedent
is the C SDK's separate `lb_trade_context_cancel_order_attached`
function).
- `GetTodayOrders`: new `OrderId` and `IsAttached` fields (`OrderId` was
previously missing entirely even though the API already supported it) —
combined, treats `OrderId` as an attached sub-order ID and returns that
sub-order as an `Order` entry
- New example: `examples/submit_order_with_attached`

## Breaking change

`OrderDetail.ChargeDetail` is now `*OrderChargeDetail` (was a value
type), since the server returns `null` for this field on attached
sub-orders. Matches the same breaking change made upstream across all 6
languages.

## Note for reviewers

`AttachedOrderDetail`'s `AttachedTypeDisplay`, `TriggerStatus`, and
`Tag` fields are implemented as typed string enums (e.g.
`"PROFIT_TAKER"`, `"DEACTIVE"`, `"Normal"`), matching the upstream Rust
struct definitions (tested end-to-end per PR #549's description).
However, the `longbridge/developers` docs PR's JSON example shows these
same three fields as raw integers instead. Since both source PRs are
still open/unreviewed, this is unconfirmed against a live API response —
if the wire format turns out to be numeric, JSON unmarshaling of these
three fields will fail. Worth verifying against a real sandbox response
before this ships.

## Test plan

- [x] `go build ./...` and `go vet ./trade/...`
- [x] Verified the `jinzhu/copier`-based JSON→domain-type conversion
(nested pointer structs, slices of new struct types, nil-safety for
`ChargeDetail`/`AttachedParams`) via a temporary round-trip test, since
this doesn't touch live credentials
- [x] `examples/submit_order_with_attached` builds and vets cleanly in
the `examples` module
- [ ] Not tested against a live API response (no sandbox credentials in
this session)

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants