docs: add docs with planning subdirectory for TODO features

This commit is contained in:
2025-08-31 15:08:08 +02:00
parent 34932dda3d
commit 6e63058884
97 changed files with 274555 additions and 0 deletions

View File

@@ -0,0 +1,96 @@
# Market Quote Python Example
**User:** HJ Normey (hjnormey@gmail.com)
**Created:** 8/28/2025 17:55
**Updated:** 8/28/2025 18:16
**Exported:** 8/29/2025 15:34
**Link:** [https://chatgpt.com/c/68b07bee-306c-8326-9fd6-27b6f18ce7ea](https://chatgpt.com/c/68b07bee-306c-8326-9fd6-27b6f18ce7ea)
## Prompt:
I would like you to visit
- https://github.com/nautechsystems/nautilus_trader/tree/b4ff89adef6276b2c2060680d9123b5c7f3c1a24/nautilus_trader
the bull nautilus trader source code and *figure out* where the "quote" object (or equivalent, for storing market tick data is defined and what the format is:
- It is called Market Quote and (a different one) Trade Quote.-
Provide full documentation -and-
... a working Python import example for those objects.-
## Response:
Just to clarify before I begin: do you want documentation and usage examples for both the Market Quote and Trade Quote classes from the Nautilus Trader repo, including where they are defined, their format (fields/types), and a working Python import and usage example? Also, are you using this for live market data ingestion or for backtesting purposes?
## Prompt:
live, though they should use the same object, iianm ...
## Response:
Great. Ill examine the Nautilus Trader source code at the specified commit to locate the definitions of both the Market Quote and Trade Quote objects used for market tick data. Ill provide full documentation of each objects structure, including fields, types, and their roles in live market data handling, as well as a working Python import and usage example.
Ill let you know once I have everything compiled.
Research completed in 19m · 64 sources · 29 searches
Market and Trade Quote Object Definitions in Nautilus Trader
NautilusTrader Market/Tick Quote Objects
========================================
NautilusTrader represents market data ticks with two core classes in its Python API: **QuoteTick** (for top-of-book quotes) and **TradeTick** (for individual trade ticks). These are defined in the `nautilus_trader.model.data` module and backed by Rust/Cython for speed. A **QuoteTick** holds the best bid and ask and related metadata, while a **TradeTick** holds a single trades details. Both include timestamps (nanosecond UNIX epoch) for the event and when the object was created.
* **QuoteTick (Market Quote):** Contains fields for an instruments best bid and ask at a moment. Key fields include:
* `instrument_id` (InstrumentId) the symbol or contract identifier.
* `bid_price`, `ask_price` (Price) the top-of-book bid and ask prices.
* `bid_size`, `ask_size` (Quantity) the corresponding bid/ask sizes (volumes).
* `ts_event`, `ts_init` (int) timestamps (nanoseconds) for when the quote occurred and when the object was initialized.
The `QuoteTick` docstring explains it “represents a single quote tick in a market” with bid/ask prices and sizes[gitee.com](https://gitee.com/mirrors/nautilus-trader/blob/master/nautilus_trader/model/data.pyx#:~:text=ts_event%2C%20uint64_t%20ts_init%2C%20%29%20,point%20integer%29.%20bid_size_prec).
* **TradeTick (Trade Quote):** Contains fields for a single executed trade. Key fields include:
* `instrument_id` (InstrumentId) the symbol or contract.
* `price` (Price) the executed trade price.
* `size` (Quantity) the traded quantity.
* `aggressor_side` (AggressorSide enum) which side (buy/sell) initiated the trade.
* `trade_id` (TradeId) the venues trade identifier.
* `ts_event`, `ts_init` (int) timestamps for when the trade tick occurred and object creation.
The `TradeTick` docstring notes it “represents a single trade tick” with instrument, price, size, aggressor side, and trade ID[gitee.com](https://gitee.com/mirrors/nautilus-trader/blob/master/nautilus_trader/model/data.pyx#:~:text=cdef%20class%20TradeTick%28Data%29%3A%20,0).
These objects support conversion from raw values or Python dictionaries (e.g. `from_raw(...)`, `from_dict(...)`) and have methods `to_dict()` for easy serialization. For example, `QuoteTick.from_raw(instrument, bid_raw, ask_raw, price_prec, size_prec, ts_event, ts_init)` creates a quote from raw fixed-point values. All numeric fields use precise types (`Price`, `Quantity`) to preserve fixed-point precision[gitee.com](https://gitee.com/mirrors/nautilus-trader/blob/master/nautilus_trader/model/data.pyx#:~:text=ts_event%2C%20uint64_t%20ts_init%2C%20%29%20,point%20integer%29.%20bid_size_prec)[gitee.com](https://gitee.com/mirrors/nautilus-trader/blob/master/nautilus_trader/model/data.pyx#:~:text=cdef%20class%20TradeTick%28Data%29%3A%20,0).
Usage in Python
---------------
In Python, import these classes from the model as follows:
```python
from nautilus_trader.model.data import QuoteTick, TradeTick, InstrumentId, Price, Quantity, AggressorSide, TradeId
# Example: create a quote tick (using made-up raw values and precisions)
instr = InstrumentId("AAPL") # or appropriate symbol
quote = QuoteTick.from_raw(
instr,
bid_price_raw=1452300, ask_price_raw=1452500, # raw ints
bid_price_prec=4, ask_price_prec=4,
bid_size_raw=1000000, ask_size_raw=800000,
bid_size_prec=0, ask_size_prec=0,
ts_event=1680000000000000000, ts_init=1680000000000000000
)
print(quote) # e.g. QuoteTick(instrument_id=AAPL, bid_price=145.23, ask_price=145.25, ...)
# Example: create a trade tick
trade = TradeTick(
instrument_id=instr,
price=Price(145.25, precision=4),
size=Quantity(500, precision=0),
aggressor_side=AggressorSide.BUY,
trade_id=TradeId("T12345"),
ts_event=1680000000000001000,
ts_init=1680000000000001000
)
print(trade) # e.g. TradeTick(instrument_id=AAPL, price=145.25, size=500, aggressor_side=BUY, ...)
```
These classes and their methods match the NautilusTrader data model: QuoteTick holds bid/ask fields and TradeTick holds price/size/aggressor fields, as documented in the source[gitee.com](https://gitee.com/mirrors/nautilus-trader/blob/master/nautilus_trader/model/data.pyx#:~:text=ts_event%2C%20uint64_t%20ts_init%2C%20%29%20,point%20integer%29.%20bid_size_prec)[gitee.com](https://gitee.com/mirrors/nautilus-trader/blob/master/nautilus_trader/model/data.pyx#:~:text=cdef%20class%20TradeTick%28Data%29%3A%20,0).
**Sources:** NautilusTrader 1.203.0 source code (`nautilus_trader/model/data.pyx`), showing the definitions and docstrings for `QuoteTick` and `TradeTick`[gitee.com](https://gitee.com/mirrors/nautilus-trader/blob/master/nautilus_trader/model/data.pyx#:~:text=ts_event%2C%20uint64_t%20ts_init%2C%20%29%20,point%20integer%29.%20bid_size_prec)[gitee.com](https://gitee.com/mirrors/nautilus-trader/blob/master/nautilus_trader/model/data.pyx#:~:text=cdef%20class%20TradeTick%28Data%29%3A%20,0).
---
Powered by [ChatGPT Exporter](https://www.chatgptexporter.com)