You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+59-12
Original file line number
Diff line number
Diff line change
@@ -23,6 +23,9 @@ NautilusTrader is an open-source, high-performance, production-grade algorithmic
23
23
providing quantitative traders with the ability to backtest portfolios of automated trading strategies
24
24
on historical data with an event-driven engine, and also deploy those same strategies live.
25
25
26
+
NautilusTrader is AI/ML first, designed to deploy models for algorithmic trading strategies developed
27
+
using the Python ecosystem - within a highly performant and robust Python native environment.
28
+
26
29
The platform aims to be universal, with any REST/FIX/WebSocket API able to be integrated via modular
27
30
adapters. Thus the platform can handle high-frequency trading operations for any asset classes
28
31
including FX, Equities, Futures, Options, CFDs and Crypto - across multiple venues simultaneously.
@@ -36,14 +39,36 @@ including FX, Equities, Futures, Options, CFDs and Crypto - across multiple venu
36
39
-**Multi-venue:** Multiple venue capabilities facilitate market making and statistical arbitrage strategies.
37
40
-**AI Agent Training:** Backtest engine fast enough to be used to train AI trading agents (RL/ES).
38
41
39
-
## Values
42
+
## Why NautilusTrader?
40
43
41
-
- Reliability
42
-
- Performance
43
-
- Testability
44
-
- Modularity
45
-
- Maintainability
46
-
- Scalability
44
+
One of the key value propositions of NautilusTrader is that it addresses the challenge of keeping
45
+
the research/backtest environment consistent with the production live trading environment.
46
+
47
+
Normally research and backtesting may be conducted in Python (or other suitable language), with
48
+
trading strategies traditionally then needing to be reimplemented in C++/C#/Java or other statically
49
+
typed language(s). The reasoning here is to enjoy the performance a compiled language can offer,
50
+
along with the tooling and support which has made these languages historically more suitable for
51
+
large enterprise systems.
52
+
53
+
The value of NautilusTrader here is that this re-implementation step is circumvented, as the
54
+
platform was designed from the ground up to hold its own in terms of performance and quality.
55
+
56
+
Python has simply caught up in performance (via Cython offering C-level speed) and general tooling,
57
+
making it a suitable language for implementing a large system such as this. The benefit being
58
+
that a Python native environment can be offered, suitable for professional quantitative traders and
59
+
hedge funds.
60
+
61
+
## Why Python?
62
+
63
+
Python was originally created decades ago as a simple scripting language with a clean straight
64
+
forward syntax. It has since evolved into a fully fledged general purpose object-oriented
65
+
programming language. Not only that, Python has become the _de facto lingua franca_ of data science,
66
+
machine learning, and artificial intelligence.
67
+
68
+
The language out of the box is not without its drawbacks however, especially in the context of
69
+
implementing large systems. Cython has addressed a lot of these issues, offering all the advantages
70
+
of a statically typed language, embedded into Pythons rich ecosystem of software libraries and
71
+
developer/user communities.
47
72
48
73
## What is Cython?
49
74
@@ -55,6 +80,15 @@ The project heavily utilizes Cython to provide static type safety and increased
55
80
for Python through C [extension modules](https://docs.python.org/3/extending/extending.html). The vast majority of the production Python code is actually
56
81
written in Cython, however the libraries can be accessed from both pure Python and Cython.
57
82
83
+
## Values
84
+
85
+
- Reliability
86
+
- Performance
87
+
- Testability
88
+
- Modularity
89
+
- Maintainability
90
+
- Scalability
91
+
58
92
## Documentation
59
93
60
94
The documentation for the latest version of the package is available at _readthedocs_.
@@ -189,29 +223,42 @@ exchanges.
189
223
190
224
## Development
191
225
192
-
For development of the Python codebase, we recommend using the PyCharm _Professional_ edition IDE, as
193
-
it interprets Cython syntax. Alternatively, you could use Visual Studio Code with a Cython extension.
226
+
For development we recommend using the PyCharm _Professional_ edition IDE, as it interprets Cython
227
+
syntax. Alternatively, you could use Visual Studio Code with a Cython extension.
194
228
195
229
`poetry` is the preferred tool for handling all Python package and dev dependencies.
196
230
197
231
> https://python-poetry.org/
198
232
233
+
`pre-commit` is used to automatically run various checks, auto-formatters and linting tools
234
+
at commit.
235
+
236
+
> https://pre-commit.com/
237
+
199
238
#### Environment Setup
200
239
201
240
The following steps are for Unix-like systems, and only need to be completed once.
0 commit comments