Skip to content

Commit 9e2924e

Browse files
authored
1.107.0
See release notes
2 parents 4b4be9d + 8e57c68 commit 9e2924e

39 files changed

+1032
-371
lines changed

.github/workflows/test-tag-publish.yml

+1
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ jobs:
130130
release_name: ${{ env.RELEASE_NAME }}
131131
draft: false
132132
prerelease: false
133+
body_path: RELEASE.md
133134

134135

135136
publish_sdist:

RELEASE.md

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# NautilusTrader 1.107.0 Beta Release Notes
2+
3+
The main thrust of this release is to refine some subtleties relating to order
4+
matching and amendment behaviour for improved realism. This involved a fairly substantial refactoring
5+
of `SimulatedExchange` to manage its complexity, and support extending the order types.
6+
7+
The `post_only` flag for LIMIT orders now results in the expected behaviour regarding
8+
when a marketable limit order will become a liquidity `TAKER` during order placement
9+
and amendment.
10+
11+
Test coverage was moderately increased.
12+
13+
### Breaking Changes
14+
None
15+
16+
### Enhancements
17+
- Refactored `SimulatedExchange` order matching and amendment logic.
18+
- Add `risk` sub-package to group risk components.
19+
20+
### Fixes
21+
- `StopLimitOrder` triggering behaviour.
22+
- All flake8 warnings.
23+
24+
# NautilusTrader 1.106.0 Beta Release Notes
25+
26+
The main thrust of this release is to introduce the Interactive Brokers
27+
integration, and begin adding platform capabilities to support this effort.
28+
29+
### Breaking Changes
30+
- `from_serializable_string` methods changed to `from_serializable_str`.
31+
32+
### Enhancements
33+
- Scaffold Interactive Brokers integration in `adapters/ib`.
34+
- Add the `Future` instrument type.
35+
- Add the `StopLimitOrder` order type.
36+
- Add the `Data` and `DataType` types to support custom data handling.
37+
- Add the `Security` identifier types initial implementation to support extending the platforms capabilities.
38+
39+
### Fixes
40+
- `BracketOrder` correctness.
41+
- CCXT precision parsing bug.
42+
- Some log formatting.

docs/source/api_reference/risk.rst

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Risk
2+
====
3+
4+
.. automodule:: nautilus_trader.risk
5+
6+
7+
Sizing
8+
------
9+
10+
.. automodule:: nautilus_trader.risk.sizing
11+
:show-inheritance:
12+
:inherited-members:
13+
:members:
14+
:member-order: bysource

docs/source/api_reference/trading.rst

-9
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,6 @@ Portfolio
4040
:members:
4141
:member-order: bysource
4242

43-
Sizing
44-
------
45-
46-
.. automodule:: nautilus_trader.trading.sizing
47-
:show-inheritance:
48-
:inherited-members:
49-
:members:
50-
:member-order: bysource
51-
5243
Strategy
5344
--------
5445

docs/source/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ Index
120120
api_reference/live
121121
api_reference/model
122122
api_reference/redis
123+
api_reference/risk
123124
api_reference/serialization
124125
api_reference/trading
125126

examples/strategies/ema_cross_cython.pyx

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515

1616
from decimal import Decimal
1717

18-
from nautilus_trader.data.base cimport Data
1918
from nautilus_trader.core.message cimport Event
19+
from nautilus_trader.data.base cimport Data
2020
from nautilus_trader.indicators.average.ema cimport ExponentialMovingAverage
2121
from nautilus_trader.model.bar cimport Bar
2222
from nautilus_trader.model.bar cimport BarSpecification

nautilus_trader/backtest/exchange.pxd

+10-2
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,10 @@ cdef class SimulatedExchange:
137137
cdef inline void _process_limit_order(self, LimitOrder order, Price bid, Price ask) except *
138138
cdef inline void _process_stop_market_order(self, StopMarketOrder order, Price bid, Price ask) except *
139139
cdef inline void _process_stop_limit_order(self, StopLimitOrder order, Price bid, Price ask) except *
140+
cdef inline void _amend_limit_order(self, LimitOrder order, Quantity qty, Price price, Price bid, Price ask) except *
141+
cdef inline void _amend_stop_market_order(self, StopMarketOrder order, Quantity qty, Price price, Price bid, Price ask) except *
142+
cdef inline void _amend_stop_limit_order(self, StopLimitOrder order, Quantity qty, Price price, Price bid, Price ask) except *
143+
cdef inline void _generate_order_amended(self, PassiveOrder order, Quantity qty, Price price) except *
140144

141145
# -- ORDER MATCHING ENGINE -------------------------------------------------------------------------
142146

@@ -148,8 +152,12 @@ cdef class SimulatedExchange:
148152
cdef inline bint _is_limit_matched(self, OrderSide side, Price order_price, Price bid, Price ask) except *
149153
cdef inline bint _is_stop_marketable(self, OrderSide side, Price order_price, Price bid, Price ask) except *
150154
cdef inline bint _is_stop_triggered(self, OrderSide side, Price order_price, Price bid, Price ask) except *
151-
cdef inline Price _market_fill_price(self, Symbol symbol, OrderSide side, Price bid, Price ask)
152-
cdef inline Price _stop_fill_price(self, Symbol symbol, OrderSide side, Price stop)
155+
cdef inline Price _fill_price_maker(self, OrderSide side, Price bid, Price ask)
156+
cdef inline Price _fill_price_taker(self, Symbol symbol, OrderSide side, Price bid, Price ask)
157+
cdef inline Price _fill_price_stop(self, Symbol symbol, OrderSide side, Price stop)
158+
159+
# --------------------------------------------------------------------------------------------------
160+
153161
cdef inline void _fill_order(self, Order order, Price fill_price, LiquiditySide liquidity_side) except *
154162
cdef inline void _clean_up_child_orders(self, ClientOrderId cl_ord_id) except *
155163
cdef inline void _check_oco_order(self, ClientOrderId cl_ord_id) except *

0 commit comments

Comments
 (0)