nyrobrain
Nyrobrain Python libraries.
nyrobrain.execution— translates portfolio signals (a target weight per symbol) into orders at the exchange, on top ofnautilus_trader.
What it is for
A portfolio says hold 25% of the book in BTC. Something has to turn that into orders, against whatever is already held and whatever is already working, and keep doing it as the price moves and the target changes — without ever buying past the target. That last clause is the whole library. The failure it exists to prevent is an OMS that re-sends a delta it has already sent and walks a position away from its target.
You write the driver
The library does not ship one. It ships the executor, the guards, the report and the pieces that are dangerous to get wrong; assembling them into a running system is your code, because that is where your choices live.
Start from examples/oms.py
— one script, three modes, copy it and change it:
python oms.py --mode backtest --signals signals.jsonl --candles ~/candles
python oms.py --mode paper --minutes 10
python oms.py --mode live --minutes 10 --environment demo
The executor, the guards and the report are identical in all three. That is the point: a difference in behaviour between two modes is the venue, not the harness.
Two surfaces
Decisions — nyrobrain.execution. Sizing, the delta, the guards, the
placement protocol. Imports no nautilus and installs without it, so you can
reason about a target without an engine in the process. A placement strategy you
write never imports nautilus either.
Assembly — nyrobrain.execution.driver, .backtest, .credentials,
.venue, .runner, .report. Nautilus all the way through, because building a
node cannot be anything else.
Examples
Runnable, shipped in the package, and executed by the test suite so they cannot rot. Read them in order:
python -m nyrobrain.execution.examples.sizing_a_target # weight -> target -> delta
python -m nyrobrain.execution.examples.over_delivery_guard # the invariant, and what it refuses
python -m nyrobrain.execution.examples.your_own_placement # a placement strategy, no venue needed
Then examples/README.md for the
driver itself.
Local development
uv sync --all-extras
uv run pytest
soak is ours rather than yours — a long-run diagnostic for validating the
executor over hours, not part of the driver story:
uv run python -m nyrobrain.execution.soak --hours 3 --environment demo
Design maps
Built with the wayfinder method: numbered decision tickets under a map, worked one at a time. Each records not just what was decided but what was measured to decide it.
.scratch/nyrobrain-execution/map.md— the arithmetic, the guards and the placement seam..scratch/nyrobrain-execution-runners/map.md— driving it from aBacktestEngineand a sandbox..scratch/nyrobrain-execution-live/map.md— against a real venue on Bybit demo, and the nautilus 2 migration.
Metadata
Release files for nyrobrain 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nyrobrain-0.3.0.tar.gz | 446.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nyrobrain-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 615.5 kB
Release files / nyrobrain-0.3.0.tar.gz
| Download URL | nyrobrain-0.3.0.tar.gz |
|---|---|
| Size | 446.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
acf8c436af3a12d04a916d05a5346b2d8a3e71e747c7a7a09816f255a785e05e
|
|
BLAKE2b-256 checksum How to use checksums |
137d521b87b8aef840e57d4f8fbe7e1623a537e82652aae6a713b50e829592ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / nyrobrain-0.3.0-py3-none-any.whl
| Download URL | nyrobrain-0.3.0-py3-none-any.whl |
|---|---|
| Size | 169.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bf6327e4d584d14c59731c2c5a1c0a0622e517bbbc2a2f4fdc18802cb8a11177
|
|
BLAKE2b-256 checksum How to use checksums |
d82bdd8071abcf036767ce59f7325832d80e91b429b395fae9ef0e849caa19ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|