roboquant 2.1.2__tar.gz → 2.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {roboquant-2.1.2 → roboquant-2.1.3}/PKG-INFO +16 -16
- {roboquant-2.1.2 → roboquant-2.1.3}/README.md +9 -10
- {roboquant-2.1.2 → roboquant-2.1.3}/pyproject.toml +3 -2
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/__init__.py +1 -1
- {roboquant-2.1.2 → roboquant-2.1.3}/uv.lock +70 -15
- {roboquant-2.1.2 → roboquant-2.1.3}/.github/workflows/verify.yml +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/.gitignore +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/.vscode/settings.json +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/.zed/settings.json +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/.zed/tasks.json +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/LICENSE +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/bin/local_install.sh +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/bin/publish.sh +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/bin/verify.sh +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/docs/DESIGN.md +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/docs/roboquant_header.png +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/account.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/alpaca/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/alpaca/broker.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/alpaca/feed.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/asset.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/brokers/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/brokers/broker.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/brokers/cryptobroker.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/brokers/simbroker.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/event.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/cryptofeed.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/csvfeed.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/feed.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/historic.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/live.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/parquet.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/randomwalk.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/resources/us10.parquet +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/sql.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/util.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/feeds/yahoo.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/ibkr/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/ibkr/broker.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/ibkr/types.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/alphabeta.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/basicjournal.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/feedmetric.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/journal.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/marketmetric.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/metric.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/metricsjournal.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/pnlmetric.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/pricemetric.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/runmetric.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/scorecard.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/journals/tensorboard.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/ml/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/ml/features.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/ml/rl.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/ml/strategies.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/monetary.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/order.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/run.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/signal.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/strategies/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/strategies/buffer.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/strategies/cachedstrategy.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/strategies/emacrossover.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/strategies/ibsstrategy.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/strategies/multistrategy.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/strategies/strategy.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/strategies/tastrategy.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/ta/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/timeframe.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/traders/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/traders/flextrader.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/roboquant/traders/trader.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/common.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/data/stooq/5_min/ibm.us.txt +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/data/stooq/daily/ibm.us.txt +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/data/yahoo/AAPL.csv +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/data/yahoo/AMZN.csv +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/data/yahoo/META.csv +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/data/yahoo/TSLA.csv +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/integration/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/integration/test_alpaca.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/integration/test_ccxt.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/integration/test_ibkr.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/integration/test_yahoo.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/performance/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/performance/test_bigfeed.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/performance/test_delay.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/performance/test_profiling.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/alpaca_forwardtest_bars.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/alpaca_forwardtest_trades.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/alpaca_live_feed.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/alpaca_papertrade.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/alpaca_record.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/charts.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/chronos_prediction.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/crypto_backtest.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/extra_logging.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/ibkr_close_positions.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/monetary.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/pandas_dataframe.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/parquet_csv.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/parquet_csv_large.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/parquet_yahoo.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/sb3_strategy.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/sb3_strategy_quotes.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/talib_feature.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/talib_strategy.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/tensorboard_metrics.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/torch_lstm.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/torch_transformer.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/yahoo_backtest.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/yahoo_walkforward.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/samples/yahoo_walkforward_multiprocess.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/__init__.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_account.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_asset.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_buffer.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_csvfeed.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_features.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_feedutil.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_journal.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_monetary.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_order.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_parquetfeed.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_randomwalk.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_rnn.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_run.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_signal.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_simbroker.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_sqlfeed.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_strategy.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_tastrategy.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_tensorboard.py +0 -0
- {roboquant-2.1.2 → roboquant-2.1.3}/tests/unit/test_timeframe.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: roboquant
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.3
|
|
4
4
|
Summary: A fast algorithmic trading platform with support for AI based strategies
|
|
5
5
|
Project-URL: Homepage, https://roboquant.org
|
|
6
6
|
Project-URL: Repository, https://github.com/neurallayer/roboquant.py.git
|
|
@@ -25,18 +25,19 @@ Requires-Python: <3.15,>=3.12
|
|
|
25
25
|
Requires-Dist: numpy>2.0.0
|
|
26
26
|
Requires-Dist: pyarrow>24.0.0
|
|
27
27
|
Requires-Dist: requests>2.30.0
|
|
28
|
+
Requires-Dist: ta-lib==0.6.5
|
|
28
29
|
Requires-Dist: yfinance>1.5.0
|
|
30
|
+
Provides-Extra: ai
|
|
31
|
+
Requires-Dist: sb3-contrib>=2.9.0; extra == 'ai'
|
|
32
|
+
Requires-Dist: stable-baselines3>=2.9.0; extra == 'ai'
|
|
33
|
+
Requires-Dist: tensorboard>=2.21.0; extra == 'ai'
|
|
34
|
+
Requires-Dist: torch>=2.9.0; extra == 'ai'
|
|
29
35
|
Provides-Extra: alpaca
|
|
30
36
|
Requires-Dist: alpaca-py>=0.43.5; extra == 'alpaca'
|
|
31
37
|
Provides-Extra: crypto
|
|
32
38
|
Requires-Dist: ccxt>=4.5.65; extra == 'crypto'
|
|
33
39
|
Provides-Extra: ibkr
|
|
34
40
|
Requires-Dist: ibind[oauth]>=0.1.22; extra == 'ibkr'
|
|
35
|
-
Provides-Extra: torch
|
|
36
|
-
Requires-Dist: sb3-contrib>=2.9.0; extra == 'torch'
|
|
37
|
-
Requires-Dist: stable-baselines3>=2.9.0; extra == 'torch'
|
|
38
|
-
Requires-Dist: tensorboard>=2.21.0; extra == 'torch'
|
|
39
|
-
Requires-Dist: torch>=2.9.0; extra == 'torch'
|
|
40
41
|
Description-Content-Type: text/markdown
|
|
41
42
|
|
|
42
43
|
|
|
@@ -67,28 +68,27 @@ print(account)
|
|
|
67
68
|
|
|
68
69
|
## Install
|
|
69
70
|
Roboquant can be installed like most other Python packages, using tools like `uv`, `pip` or `conda`.
|
|
70
|
-
Make sure you have Python version 3.
|
|
71
|
+
Make sure you have Python version 3.12 or higher installed.
|
|
71
72
|
|
|
72
73
|
```shell
|
|
73
74
|
python3 -m pip install --upgrade roboquant
|
|
74
75
|
```
|
|
75
76
|
|
|
76
|
-
The core of roboquant limits the number of dependencies.
|
|
77
|
-
But you can install roboquant including one or more of the optional dependencies if you require certain functionality:
|
|
77
|
+
The core of roboquant limits the number of dependencies. But you can install roboquant including one or more of the optional dependencies if you require certain additional functionality:
|
|
78
78
|
|
|
79
79
|
```shell
|
|
80
|
-
#
|
|
81
|
-
python3 -m pip install --upgrade "roboquant[
|
|
80
|
+
# AI based strategies using Torch and SB3
|
|
81
|
+
python3 -m pip install --upgrade "roboquant[ai]"
|
|
82
82
|
|
|
83
|
-
# Integration with Interactive Brokers
|
|
83
|
+
# Integration with Interactive Brokers
|
|
84
84
|
python3 -m pip install --upgrade "roboquant[ibkr]"
|
|
85
85
|
|
|
86
|
-
# Integration with Alpaca
|
|
86
|
+
# Integration with Alpaca broker
|
|
87
87
|
python3 -m pip install --upgrade "roboquant[alpaca]"
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Additionally, if you want to use the any of TA-Lib techncial indicators, you'll need to install it first. You can read a more about that on [ta-lib-python GitHub](https://github.com/ta-lib/ta-lib-python)
|
|
91
88
|
|
|
89
|
+
# Integration many crypto exchanges via CCXT package
|
|
90
|
+
python3 -m pip install --upgrade "roboquant[crypto]"
|
|
91
|
+
```
|
|
92
92
|
|
|
93
93
|
## Building from source
|
|
94
94
|
Roboquant.py uses `uv` as the main tool for handling package dependencies.
|
|
@@ -26,28 +26,27 @@ print(account)
|
|
|
26
26
|
|
|
27
27
|
## Install
|
|
28
28
|
Roboquant can be installed like most other Python packages, using tools like `uv`, `pip` or `conda`.
|
|
29
|
-
Make sure you have Python version 3.
|
|
29
|
+
Make sure you have Python version 3.12 or higher installed.
|
|
30
30
|
|
|
31
31
|
```shell
|
|
32
32
|
python3 -m pip install --upgrade roboquant
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
The core of roboquant limits the number of dependencies.
|
|
36
|
-
But you can install roboquant including one or more of the optional dependencies if you require certain functionality:
|
|
35
|
+
The core of roboquant limits the number of dependencies. But you can install roboquant including one or more of the optional dependencies if you require certain additional functionality:
|
|
37
36
|
|
|
38
37
|
```shell
|
|
39
|
-
#
|
|
40
|
-
python3 -m pip install --upgrade "roboquant[
|
|
38
|
+
# AI based strategies using Torch and SB3
|
|
39
|
+
python3 -m pip install --upgrade "roboquant[ai]"
|
|
41
40
|
|
|
42
|
-
# Integration with Interactive Brokers
|
|
41
|
+
# Integration with Interactive Brokers
|
|
43
42
|
python3 -m pip install --upgrade "roboquant[ibkr]"
|
|
44
43
|
|
|
45
|
-
# Integration with Alpaca
|
|
44
|
+
# Integration with Alpaca broker
|
|
46
45
|
python3 -m pip install --upgrade "roboquant[alpaca]"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Additionally, if you want to use the any of TA-Lib techncial indicators, you'll need to install it first. You can read a more about that on [ta-lib-python GitHub](https://github.com/ta-lib/ta-lib-python)
|
|
50
46
|
|
|
47
|
+
# Integration many crypto exchanges via CCXT package
|
|
48
|
+
python3 -m pip install --upgrade "roboquant[crypto]"
|
|
49
|
+
```
|
|
51
50
|
|
|
52
51
|
## Building from source
|
|
53
52
|
Roboquant.py uses `uv` as the main tool for handling package dependencies.
|
|
@@ -56,10 +56,11 @@ dependencies = [
|
|
|
56
56
|
"requests>2.30.0",
|
|
57
57
|
"yfinance>1.5.0",
|
|
58
58
|
"pyarrow>24.0.0",
|
|
59
|
+
"ta-lib==0.6.5"
|
|
59
60
|
]
|
|
60
61
|
|
|
61
62
|
[project.optional-dependencies]
|
|
62
|
-
|
|
63
|
+
ai = [
|
|
63
64
|
"torch>=2.9.0",
|
|
64
65
|
"tensorboard>=2.21.0",
|
|
65
66
|
"stable-baselines3>=2.9.0",
|
|
@@ -83,4 +84,4 @@ dev = [
|
|
|
83
84
|
"ipywidgets>=8.1.6",
|
|
84
85
|
"chronos-forecasting>=2.3.1",
|
|
85
86
|
]
|
|
86
|
-
talib = ["ta-lib==0.6.
|
|
87
|
+
talib = ["ta-lib==0.6.5"]
|
|
@@ -249,6 +249,20 @@ wheels = [
|
|
|
249
249
|
{ url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925 },
|
|
250
250
|
]
|
|
251
251
|
|
|
252
|
+
[[package]]
|
|
253
|
+
name = "build"
|
|
254
|
+
version = "1.5.1"
|
|
255
|
+
source = { registry = "https://pypi.org/simple" }
|
|
256
|
+
dependencies = [
|
|
257
|
+
{ name = "colorama", marker = "(os_name == 'nt' and platform_machine != 'aarch64' and sys_platform == 'linux') or (os_name == 'nt' and sys_platform != 'darwin' and sys_platform != 'linux')" },
|
|
258
|
+
{ name = "packaging" },
|
|
259
|
+
{ name = "pyproject-hooks" },
|
|
260
|
+
]
|
|
261
|
+
sdist = { url = "https://files.pythonhosted.org/packages/2d/21/6ec54248b4d0d51f12f3ca4aa77a128077d747a5db86cb5a2fcd9aedecbd/build-1.5.1.tar.gz", hash = "sha256:94e17f1db803ab22f46049376c44c8437c52090f0dfdf1adc43df56542d644fb", size = 112439 }
|
|
262
|
+
wheels = [
|
|
263
|
+
{ url = "https://files.pythonhosted.org/packages/c7/f7/2c3f99ff9282f1c1ec9f6298f2c03034658a0901eeacb3b3501cb488574c/build-1.5.1-py3-none-any.whl", hash = "sha256:f1a58fe2e5af5b0238a07b9e70207492c79ddebbdb1ad954fc86d62a56be3e0d", size = 31195 },
|
|
264
|
+
]
|
|
265
|
+
|
|
252
266
|
[[package]]
|
|
253
267
|
name = "ccxt"
|
|
254
268
|
version = "4.5.65"
|
|
@@ -1868,6 +1882,15 @@ wheels = [
|
|
|
1868
1882
|
{ url = "https://files.pythonhosted.org/packages/cf/6c/41c21c6c8af92b9fea313aa47c75de49e2f9a467964ee33eb0135d47eb64/pillow-11.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:67cd427c68926108778a9005f2a04adbd5e67c442ed21d95389fe1d595458756", size = 2377651 },
|
|
1869
1883
|
]
|
|
1870
1884
|
|
|
1885
|
+
[[package]]
|
|
1886
|
+
name = "pip"
|
|
1887
|
+
version = "26.1.2"
|
|
1888
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1889
|
+
sdist = { url = "https://files.pythonhosted.org/packages/01/91/47e7d486260f618783899587af63ccf7980fb60245c3e63dd4571c6b57ad/pip-26.1.2.tar.gz", hash = "sha256:f49cd134c61cf2fd75e0ce2676db03e4054504a5a4986d00f8299ae632dc4605", size = 1840799 }
|
|
1890
|
+
wheels = [
|
|
1891
|
+
{ url = "https://files.pythonhosted.org/packages/5d/95/6b5cb3461ea5673ba0995989746db58eb18b91b54dbf331e72f569540946/pip-26.1.2-py3-none-any.whl", hash = "sha256:382ff9f685ee3bc25864f820aa50505825f10f5458ffff07e30a6d96e5715cab", size = 1813144 },
|
|
1892
|
+
]
|
|
1893
|
+
|
|
1871
1894
|
[[package]]
|
|
1872
1895
|
name = "platformdirs"
|
|
1873
1896
|
version = "4.3.6"
|
|
@@ -2224,6 +2247,15 @@ wheels = [
|
|
|
2224
2247
|
{ url = "https://files.pythonhosted.org/packages/1c/a7/c8a2d361bf89c0d9577c934ebb7421b25dc84bf3a8e3ac0a40aed9acc547/pyparsing-3.2.1-py3-none-any.whl", hash = "sha256:506ff4f4386c4cec0590ec19e6302d3aedb992fdc02c761e90416f158dacf8e1", size = 107716 },
|
|
2225
2248
|
]
|
|
2226
2249
|
|
|
2250
|
+
[[package]]
|
|
2251
|
+
name = "pyproject-hooks"
|
|
2252
|
+
version = "1.2.0"
|
|
2253
|
+
source = { registry = "https://pypi.org/simple" }
|
|
2254
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228 }
|
|
2255
|
+
wheels = [
|
|
2256
|
+
{ url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216 },
|
|
2257
|
+
]
|
|
2258
|
+
|
|
2227
2259
|
[[package]]
|
|
2228
2260
|
name = "pyright"
|
|
2229
2261
|
version = "1.1.411"
|
|
@@ -2423,10 +2455,17 @@ dependencies = [
|
|
|
2423
2455
|
{ name = "numpy" },
|
|
2424
2456
|
{ name = "pyarrow" },
|
|
2425
2457
|
{ name = "requests" },
|
|
2458
|
+
{ name = "ta-lib" },
|
|
2426
2459
|
{ name = "yfinance" },
|
|
2427
2460
|
]
|
|
2428
2461
|
|
|
2429
2462
|
[package.optional-dependencies]
|
|
2463
|
+
ai = [
|
|
2464
|
+
{ name = "sb3-contrib" },
|
|
2465
|
+
{ name = "stable-baselines3" },
|
|
2466
|
+
{ name = "tensorboard" },
|
|
2467
|
+
{ name = "torch" },
|
|
2468
|
+
]
|
|
2430
2469
|
alpaca = [
|
|
2431
2470
|
{ name = "alpaca-py" },
|
|
2432
2471
|
]
|
|
@@ -2436,12 +2475,6 @@ crypto = [
|
|
|
2436
2475
|
ibkr = [
|
|
2437
2476
|
{ name = "ibind", extra = ["oauth"] },
|
|
2438
2477
|
]
|
|
2439
|
-
torch = [
|
|
2440
|
-
{ name = "sb3-contrib" },
|
|
2441
|
-
{ name = "stable-baselines3" },
|
|
2442
|
-
{ name = "tensorboard" },
|
|
2443
|
-
{ name = "torch" },
|
|
2444
|
-
]
|
|
2445
2478
|
|
|
2446
2479
|
[package.dev-dependencies]
|
|
2447
2480
|
dev = [
|
|
@@ -2464,13 +2497,14 @@ requires-dist = [
|
|
|
2464
2497
|
{ name = "numpy", specifier = ">2.0.0" },
|
|
2465
2498
|
{ name = "pyarrow", specifier = ">24.0.0" },
|
|
2466
2499
|
{ name = "requests", specifier = ">2.30.0" },
|
|
2467
|
-
{ name = "sb3-contrib", marker = "extra == '
|
|
2468
|
-
{ name = "stable-baselines3", marker = "extra == '
|
|
2469
|
-
{ name = "
|
|
2470
|
-
{ name = "
|
|
2500
|
+
{ name = "sb3-contrib", marker = "extra == 'ai'", specifier = ">=2.9.0" },
|
|
2501
|
+
{ name = "stable-baselines3", marker = "extra == 'ai'", specifier = ">=2.9.0" },
|
|
2502
|
+
{ name = "ta-lib", specifier = "==0.6.5" },
|
|
2503
|
+
{ name = "tensorboard", marker = "extra == 'ai'", specifier = ">=2.21.0" },
|
|
2504
|
+
{ name = "torch", marker = "extra == 'ai'", specifier = ">=2.9.0" },
|
|
2471
2505
|
{ name = "yfinance", specifier = ">1.5.0" },
|
|
2472
2506
|
]
|
|
2473
|
-
provides-extras = ["
|
|
2507
|
+
provides-extras = ["ai", "alpaca", "crypto", "ibkr"]
|
|
2474
2508
|
|
|
2475
2509
|
[package.metadata.requires-dev]
|
|
2476
2510
|
dev = [
|
|
@@ -2481,7 +2515,7 @@ dev = [
|
|
|
2481
2515
|
{ name = "pyright", specifier = ">=1.1.411" },
|
|
2482
2516
|
{ name = "python-dotenv", specifier = ">=1.1.0" },
|
|
2483
2517
|
]
|
|
2484
|
-
talib = [{ name = "ta-lib", specifier = "==0.6.
|
|
2518
|
+
talib = [{ name = "ta-lib", specifier = "==0.6.5" }]
|
|
2485
2519
|
|
|
2486
2520
|
[[package]]
|
|
2487
2521
|
name = "safetensors"
|
|
@@ -2596,13 +2630,34 @@ wheels = [
|
|
|
2596
2630
|
|
|
2597
2631
|
[[package]]
|
|
2598
2632
|
name = "ta-lib"
|
|
2599
|
-
version = "0.6.
|
|
2633
|
+
version = "0.6.5"
|
|
2600
2634
|
source = { registry = "https://pypi.org/simple" }
|
|
2601
2635
|
dependencies = [
|
|
2636
|
+
{ name = "build" },
|
|
2602
2637
|
{ name = "numpy" },
|
|
2603
|
-
{ name = "
|
|
2638
|
+
{ name = "pip" },
|
|
2639
|
+
]
|
|
2640
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b6/38/6ab9976d72eb8c7142a153f922b2addb6eb5f136b825298049743a60cd5a/ta_lib-0.6.5.tar.gz", hash = "sha256:bc3100799b51318c1054f5f5b76f4b0a2f1a6d12625200880e81ea8a8773ff75", size = 379185 }
|
|
2641
|
+
wheels = [
|
|
2642
|
+
{ url = "https://files.pythonhosted.org/packages/05/8e/e69a0eb3286b05979feed3a4dbd2cf55d2a173cda5674f1982ea883a1c5f/ta_lib-0.6.5-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:fe6f65cc2f013765d287d9059c50c52edf0f117305082981e6ac80de11a19aa2", size = 1066189 },
|
|
2643
|
+
{ url = "https://files.pythonhosted.org/packages/01/59/735f6e0b34ad97b9d0fa8ff5a35e6cee4e3776bf68818ee7d7ab90d1c541/ta_lib-0.6.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:cf65438c7c4869bfcef6be1a95e1ff212a432201dd4faa0b35a47f2156db8454", size = 979676 },
|
|
2644
|
+
{ url = "https://files.pythonhosted.org/packages/b2/6e/9e844e26dfe5569ec81dce948b13377ce1871073b9fcb811294d6b5177c1/ta_lib-0.6.5-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:0d04ec78a33c3d35a32f3aed8d320be404eda2a95ec3d17d3aa8dbf96e311a9f", size = 3936782 },
|
|
2645
|
+
{ url = "https://files.pythonhosted.org/packages/06/c3/325be4e35ac718f2149ff1670f903950bd4fffc273557a6d59c7376a95f3/ta_lib-0.6.5-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:585a84b9fb0415dc88abbc09afb4b285d27137f7dab4b6a5c1e255afc1ea5ed0", size = 4058477 },
|
|
2646
|
+
{ url = "https://files.pythonhosted.org/packages/8e/8f/feee96b0ecdd4debfe4f0182ed0f3575248297de3f3b34c9335fa46e1714/ta_lib-0.6.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9588a6f05291a14de8f2167018a1150a05fd26f4a298484b0e8476421c156bd0", size = 3556370 },
|
|
2647
|
+
{ url = "https://files.pythonhosted.org/packages/2f/b5/9682bc2e79eded4a4c293b66a459e223e70d298fb088aa6378464f21f99e/ta_lib-0.6.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:393583526a37d55c2557688bd9f6cf66c95eee87f24ca58cc1136ef42266e2f8", size = 3681265 },
|
|
2648
|
+
{ url = "https://files.pythonhosted.org/packages/75/fe/8d9a555a286cba0c9d0cbb49ce20af2cf64a1eb34b8e5d549bd2d253b1f6/ta_lib-0.6.5-cp312-cp312-win32.whl", hash = "sha256:feb356b6be4fbbebc11eb6b636b41d783575ab8e6c8762963d6c5d5f348b1634", size = 766831 },
|
|
2649
|
+
{ url = "https://files.pythonhosted.org/packages/ce/20/e349b435276554bd4facff10a05eb0584d5e6714aadfd1b0b7777d662525/ta_lib-0.6.5-cp312-cp312-win_amd64.whl", hash = "sha256:666c4043511dfa26748215aadba4f297589a87387f56276d35e555a6f74dc802", size = 883440 },
|
|
2650
|
+
{ url = "https://files.pythonhosted.org/packages/eb/77/02feec8a83dd12488cb68c42494fcbbbac39f745b0501f8071ef38baacfe/ta_lib-0.6.5-cp312-cp312-win_arm64.whl", hash = "sha256:461a7cbe14f42c2637d94667f4bf55bb55ef92dd1504a2286670769947e28c52", size = 749131 },
|
|
2651
|
+
{ url = "https://files.pythonhosted.org/packages/71/d5/1fad28aff4de0ecea599e97fdc91fdfc0f397fabde1b41a6e54cd64ea710/ta_lib-0.6.5-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:b1572653d0ea27d9961f579e929bdcedde928a4c3db44c25f1387e93440b34c2", size = 1065359 },
|
|
2652
|
+
{ url = "https://files.pythonhosted.org/packages/7c/d0/85022658ead1458203deb196e3312046646fa7bfa404bbfc19456080f046/ta_lib-0.6.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:60ead0fdd7547e0e6cf6db87190bef34e3a039106a9135fea3f3ccb9056e68b1", size = 979947 },
|
|
2653
|
+
{ url = "https://files.pythonhosted.org/packages/d4/0f/e8250c1a1ca6fca049297a48d654449e4d85e3198cd664a23711168c03f3/ta_lib-0.6.5-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:40d31e6c1ff9646870affc59d077dd340f4ccef6ae79de4e98625c06fbc702f2", size = 3943714 },
|
|
2654
|
+
{ url = "https://files.pythonhosted.org/packages/82/63/476c38b32bf6527d05ca2dfd0922b01b66373cf6f6bbd7a539ba6a0ffd9b/ta_lib-0.6.5-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:ce4b4277448e0622b6a2d0f3b9833eddc5d9ca5eafb026d528ba6dadaea0c8a4", size = 4022662 },
|
|
2655
|
+
{ url = "https://files.pythonhosted.org/packages/5e/87/61aa73b65a2d421b197921db0c9a14ba8cb2f4d8645847df7957e5cbe2d9/ta_lib-0.6.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3f4aff21bafafcf49192d30a8d6c2db6fd1b569065a47577cf42f227cd8dfccb", size = 3544944 },
|
|
2656
|
+
{ url = "https://files.pythonhosted.org/packages/1d/ca/6e0459b0356af41c11e1cc133cc526ba01ac43c83446f729d544ae969215/ta_lib-0.6.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fe1159baf26129d7dbb9013e4ff71a73c40b4e089d0db9105011da65e5f52946", size = 3638748 },
|
|
2657
|
+
{ url = "https://files.pythonhosted.org/packages/08/fe/4df00c95b7a7c11abebaf79a85540ecdc1f659e4b88cc7238e63222e4f86/ta_lib-0.6.5-cp313-cp313-win32.whl", hash = "sha256:5a40df4f0af832dc41353af9459df90fcada959e229a0509b28f9871de4d887b", size = 766798 },
|
|
2658
|
+
{ url = "https://files.pythonhosted.org/packages/3c/a6/851c73dc796426c501371283f63b8a723ee9ce62dedb7281e7efcf9c7f58/ta_lib-0.6.5-cp313-cp313-win_amd64.whl", hash = "sha256:393339212cdc07779d68ad7868a2f380dfbea8e42b3fc77cbfce775142688404", size = 882811 },
|
|
2659
|
+
{ url = "https://files.pythonhosted.org/packages/c8/8c/d79a402c06280a67d24672b8ac54daa7ac926a07fe540b344393fc036e9d/ta_lib-0.6.5-cp313-cp313-win_arm64.whl", hash = "sha256:c5b55a1bc8ba8b5e7c6a810ce09f8e5e1011085740b244b6b203e47907f7a1e2", size = 749270 },
|
|
2604
2660
|
]
|
|
2605
|
-
sdist = { url = "https://files.pythonhosted.org/packages/ba/97/a49816dd468a18ee080cf3a04640772a9f6321790d4049cece2490c4b7ad/ta_lib-0.6.4.tar.gz", hash = "sha256:08f55bc5771a6d1ceb1a2b713aad7b05f04eb0061e980c9113571c532d32e9cb", size = 381774 }
|
|
2606
2661
|
|
|
2607
2662
|
[[package]]
|
|
2608
2663
|
name = "tensorboard"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|