Skip to content

Commit

Permalink
1.107.0
Browse files Browse the repository at this point in the history
See release notes
  • Loading branch information
cjdsellers authored Mar 7, 2021
2 parents 4b4be9d + 8e57c68 commit 9e2924e
Show file tree
Hide file tree
Showing 39 changed files with 1,032 additions and 371 deletions.
1 change: 1 addition & 0 deletions .github/workflows/test-tag-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ jobs:
release_name: ${{ env.RELEASE_NAME }}
draft: false
prerelease: false
body_path: RELEASE.md


publish_sdist:
Expand Down
42 changes: 42 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# NautilusTrader 1.107.0 Beta Release Notes

The main thrust of this release is to refine some subtleties relating to order
matching and amendment behaviour for improved realism. This involved a fairly substantial refactoring
of `SimulatedExchange` to manage its complexity, and support extending the order types.

The `post_only` flag for LIMIT orders now results in the expected behaviour regarding
when a marketable limit order will become a liquidity `TAKER` during order placement
and amendment.

Test coverage was moderately increased.

### Breaking Changes
None

### Enhancements
- Refactored `SimulatedExchange` order matching and amendment logic.
- Add `risk` sub-package to group risk components.

### Fixes
- `StopLimitOrder` triggering behaviour.
- All flake8 warnings.

# NautilusTrader 1.106.0 Beta Release Notes

The main thrust of this release is to introduce the Interactive Brokers
integration, and begin adding platform capabilities to support this effort.

### Breaking Changes
- `from_serializable_string` methods changed to `from_serializable_str`.

### Enhancements
- Scaffold Interactive Brokers integration in `adapters/ib`.
- Add the `Future` instrument type.
- Add the `StopLimitOrder` order type.
- Add the `Data` and `DataType` types to support custom data handling.
- Add the `Security` identifier types initial implementation to support extending the platforms capabilities.

### Fixes
- `BracketOrder` correctness.
- CCXT precision parsing bug.
- Some log formatting.
14 changes: 14 additions & 0 deletions docs/source/api_reference/risk.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Risk
====

.. automodule:: nautilus_trader.risk


Sizing
------

.. automodule:: nautilus_trader.risk.sizing
:show-inheritance:
:inherited-members:
:members:
:member-order: bysource
9 changes: 0 additions & 9 deletions docs/source/api_reference/trading.rst
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,6 @@ Portfolio
:members:
:member-order: bysource

Sizing
------

.. automodule:: nautilus_trader.trading.sizing
:show-inheritance:
:inherited-members:
:members:
:member-order: bysource

Strategy
--------

Expand Down
1 change: 1 addition & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ Index
api_reference/live
api_reference/model
api_reference/redis
api_reference/risk
api_reference/serialization
api_reference/trading

Expand Down
2 changes: 1 addition & 1 deletion examples/strategies/ema_cross_cython.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@

from decimal import Decimal

from nautilus_trader.data.base cimport Data
from nautilus_trader.core.message cimport Event
from nautilus_trader.data.base cimport Data
from nautilus_trader.indicators.average.ema cimport ExponentialMovingAverage
from nautilus_trader.model.bar cimport Bar
from nautilus_trader.model.bar cimport BarSpecification
Expand Down
12 changes: 10 additions & 2 deletions nautilus_trader/backtest/exchange.pxd
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,10 @@ cdef class SimulatedExchange:
cdef inline void _process_limit_order(self, LimitOrder order, Price bid, Price ask) except *
cdef inline void _process_stop_market_order(self, StopMarketOrder order, Price bid, Price ask) except *
cdef inline void _process_stop_limit_order(self, StopLimitOrder order, Price bid, Price ask) except *
cdef inline void _amend_limit_order(self, LimitOrder order, Quantity qty, Price price, Price bid, Price ask) except *
cdef inline void _amend_stop_market_order(self, StopMarketOrder order, Quantity qty, Price price, Price bid, Price ask) except *
cdef inline void _amend_stop_limit_order(self, StopLimitOrder order, Quantity qty, Price price, Price bid, Price ask) except *
cdef inline void _generate_order_amended(self, PassiveOrder order, Quantity qty, Price price) except *

# -- ORDER MATCHING ENGINE -------------------------------------------------------------------------

Expand All @@ -148,8 +152,12 @@ cdef class SimulatedExchange:
cdef inline bint _is_limit_matched(self, OrderSide side, Price order_price, Price bid, Price ask) except *
cdef inline bint _is_stop_marketable(self, OrderSide side, Price order_price, Price bid, Price ask) except *
cdef inline bint _is_stop_triggered(self, OrderSide side, Price order_price, Price bid, Price ask) except *
cdef inline Price _market_fill_price(self, Symbol symbol, OrderSide side, Price bid, Price ask)
cdef inline Price _stop_fill_price(self, Symbol symbol, OrderSide side, Price stop)
cdef inline Price _fill_price_maker(self, OrderSide side, Price bid, Price ask)
cdef inline Price _fill_price_taker(self, Symbol symbol, OrderSide side, Price bid, Price ask)
cdef inline Price _fill_price_stop(self, Symbol symbol, OrderSide side, Price stop)

# --------------------------------------------------------------------------------------------------

cdef inline void _fill_order(self, Order order, Price fill_price, LiquiditySide liquidity_side) except *
cdef inline void _clean_up_child_orders(self, ClientOrderId cl_ord_id) except *
cdef inline void _check_oco_order(self, ClientOrderId cl_ord_id) except *
Expand Down
Loading

0 comments on commit 9e2924e

Please sign in to comment.