tensortrade 1.0.3__tar.gz → 1.0.4__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.
- tensortrade-1.0.4/PKG-INFO +65 -0
- tensortrade-1.0.4/README.md +204 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/.readthedocs.yml +0 -4
- tensortrade-1.0.4/docs/ENVIRONMENT_SETUP.md +420 -0
- tensortrade-1.0.4/docs/EXPERIMENTS.md +382 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/requirements.txt +1 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/reward_scheme.md +21 -15
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/conf.py +2 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/renderers_and_plotly_chart.md +10 -3
- tensortrade-1.0.4/docs/source/examples/train_and_evaluate_using_ray.md +247 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/index.rst +5 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/overview/getting_started.md +1 -13
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/ray.md +12 -8
- tensortrade-1.0.4/docs/tutorials/01-foundations/01-three-pillars.md +300 -0
- tensortrade-1.0.4/docs/tutorials/01-foundations/02-architecture.md +451 -0
- tensortrade-1.0.4/docs/tutorials/01-foundations/03-your-first-run.md +351 -0
- tensortrade-1.0.4/docs/tutorials/02-domains/track-a-trading-for-rl/01-trading-basics.md +435 -0
- tensortrade-1.0.4/docs/tutorials/02-domains/track-a-trading-for-rl/02-oms-deep-dive.md +494 -0
- tensortrade-1.0.4/docs/tutorials/02-domains/track-b-rl-for-traders/01-rl-fundamentals.md +356 -0
- tensortrade-1.0.4/docs/tutorials/02-domains/track-b-rl-for-traders/02-common-failures.md +495 -0
- tensortrade-1.0.4/docs/tutorials/02-domains/track-c-full-intro/README.md +294 -0
- tensortrade-1.0.4/docs/tutorials/03-components/01-action-schemes.md +406 -0
- tensortrade-1.0.4/docs/tutorials/03-components/02-reward-schemes.md +455 -0
- tensortrade-1.0.4/docs/tutorials/03-components/03-observers-feeds.md +477 -0
- tensortrade-1.0.4/docs/tutorials/04-training/01-first-training.md +439 -0
- tensortrade-1.0.4/docs/tutorials/04-training/02-ray-rllib.md +557 -0
- tensortrade-1.0.4/docs/tutorials/04-training/03-optuna.md +443 -0
- tensortrade-1.0.4/docs/tutorials/05-advanced/01-overfitting.md +382 -0
- tensortrade-1.0.4/docs/tutorials/05-advanced/02-commission.md +390 -0
- tensortrade-1.0.4/docs/tutorials/05-advanced/03-walk-forward.md +471 -0
- tensortrade-1.0.4/docs/tutorials/index.md +186 -0
- tensortrade-1.0.4/examples/.gitignore +2 -0
- tensortrade-1.0.4/examples/README.md +255 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/ledger_example.ipynb +302 -346
- tensortrade-1.0.4/examples/renderers_and_plotly_chart.ipynb +992 -0
- tensortrade-1.0.4/examples/requirements.txt +13 -0
- tensortrade-1.0.4/examples/setup_environment_tutorial.ipynb +1148 -0
- tensortrade-1.0.4/examples/train_and_evaluate.ipynb +3740 -0
- tensortrade-1.0.4/examples/training/README.md +64 -0
- tensortrade-1.0.4/examples/training/__init__.py +1 -0
- tensortrade-1.0.4/examples/training/run_ray_simulation.py +262 -0
- tensortrade-1.0.4/examples/training/train_advanced.py +325 -0
- tensortrade-1.0.4/examples/training/train_best.py +290 -0
- tensortrade-1.0.4/examples/training/train_historical.py +480 -0
- tensortrade-1.0.4/examples/training/train_optuna.py +404 -0
- tensortrade-1.0.4/examples/training/train_profit.py +357 -0
- tensortrade-1.0.4/examples/training/train_ray_long.py +322 -0
- tensortrade-1.0.4/examples/training/train_robust.py +411 -0
- tensortrade-1.0.4/examples/training/train_simple.py +155 -0
- tensortrade-1.0.4/examples/training/train_trend.py +270 -0
- tensortrade-1.0.4/examples/training/train_walkforward.py +482 -0
- tensortrade-1.0.4/examples/use_attentionnet_rllib.ipynb +800 -0
- tensortrade-1.0.4/examples/use_lstm_rllib.ipynb +1887 -0
- tensortrade-1.0.4/examples/use_stochastic_data.ipynb +424 -0
- tensortrade-1.0.4/setup.cfg +14 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/setup.py +14 -12
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/__init__.py +7 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/a2c_agent.py +3 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/agent.py +3 -0
- tensortrade-1.0.4/tensortrade/agents/dqn_agent.py +375 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_dqn_agent.py +2 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_dqn_model.py +2 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_dqn_optimizer.py +8 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_dqn_trainer.py +2 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_queue.py +3 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/replay_memory.py +2 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/component.py +1 -1
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/data/cdd.py +5 -4
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/__init__.py +8 -1
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/actions.py +2 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/observers.py +32 -22
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/renderers.py +6 -9
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/rewards.py +126 -6
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/action_scheme.py +1 -1
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/observer.py +2 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/environment.py +57 -9
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/__init__.py +1 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/window/ewm.py +1 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/window/rolling.py +2 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/operators.py +0 -3
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/string/__init__.py +1 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/string/operations.py +4 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/base.py +7 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/feed.py +6 -3
- tensortrade-1.0.4/tensortrade/oms/__init__.py +2 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/exchanges/exchange.py +14 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/quantity.py +6 -3
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/broker.py +5 -1
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/create.py +2 -2
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/simulated.py +22 -12
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/wallets/wallet.py +15 -4
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/utils/helpers.py +7 -6
- tensortrade-1.0.4/tensortrade/version.py +1 -0
- tensortrade-1.0.4/tensortrade.egg-info/PKG-INFO +65 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/SOURCES.txt +47 -3
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/requires.txt +8 -6
- tensortrade-1.0.4/tests/tensortrade/integration/__init__.py +14 -0
- tensortrade-1.0.4/tests/tensortrade/integration/rllib/__init__.py +15 -0
- tensortrade-1.0.4/tests/tensortrade/integration/rllib/conftest.py +83 -0
- tensortrade-1.0.4/tests/tensortrade/integration/rllib/test_checkpoint.py +276 -0
- tensortrade-1.0.4/tests/tensortrade/integration/rllib/test_env_creation.py +170 -0
- tensortrade-1.0.4/tests/tensortrade/integration/rllib/test_ray_training.py +238 -0
- tensortrade-1.0.4/tests/tensortrade/integration/test_end_to_end.py +226 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_env.py +56 -3
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_rewards.py +1 -1
- tensortrade-1.0.4/tests/tensortrade/unit/env/default/test_stream_selector.py +111 -0
- tensortrade-1.0.4/tests/tensortrade/unit/env/test_gpu_compatibility.py +129 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_utils.py +6 -1
- tensortrade-1.0.4/tests/tensortrade/unit/oms/exchanges/test_exchange_streams.py +98 -0
- tensortrade-1.0.3/PKG-INFO +0 -31
- tensortrade-1.0.3/README.md +0 -95
- tensortrade-1.0.3/docs/source/examples/train_and_evaluate.md +0 -153
- tensortrade-1.0.3/examples/deprecated/TensorTrade_Alpha_Tutorial[outdated].ipynb +0 -1559
- tensortrade-1.0.3/examples/deprecated/use_trading_context[outdated].ipynb +0 -255
- tensortrade-1.0.3/examples/renderers_and_plotly_chart.ipynb +0 -858
- tensortrade-1.0.3/examples/requirements.txt +0 -12
- tensortrade-1.0.3/examples/setup_environment_tutorial.ipynb +0 -848
- tensortrade-1.0.3/examples/train_and_evaluate.ipynb +0 -374
- tensortrade-1.0.3/examples/use_stochastic_data.ipynb +0 -316
- tensortrade-1.0.3/setup.cfg +0 -7
- tensortrade-1.0.3/tensortrade/agents/dqn_agent.py +0 -203
- tensortrade-1.0.3/tensortrade/oms/__init__.py +0 -2
- tensortrade-1.0.3/tensortrade/version.py +0 -1
- tensortrade-1.0.3/tensortrade.egg-info/PKG-INFO +0 -31
- tensortrade-1.0.3/tests/utils/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/CONTRIBUTING.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/LICENSE +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/MANIFEST.in +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/Makefile +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/README.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/index.html +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/data/configuration.json +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/data/configuration.yaml +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/favicon.ico +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/TestingDashboard.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/agents.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/alphastar.gif +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/banner.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/cartpole.gif +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/commits.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/components.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/environment.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/logo.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/min_max_scaling.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/pipeline.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/primer.jpg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/sharpe.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/sortino.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/stochastic.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/stochastic_processes.gif +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/talib_transform.gif +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/talib_transform.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/trading.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/tuning.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/logo.jpg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/theme_overrides.css +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/agents/overview.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/modules.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.a2c_agent.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.agent.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.dqn_agent.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_dqn_agent.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_dqn_model.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_dqn_optimizer.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_dqn_trainer.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_queue.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.replay_memory.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.contrib.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.base.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.clock.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.component.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.context.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.exceptions.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.registry.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.data.cdd.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.data.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.actions.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.informers.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.observers.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.renderers.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.rewards.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.stoppers.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.action_scheme.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.informer.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.observer.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.renderer.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.reward_scheme.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.stopper.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.environment.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.boolean.operations.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.boolean.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.accumulators.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.imputation.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.operations.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.ordering.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.utils.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.window.ewm.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.window.expanding.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.window.rolling.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.window.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.imputation.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.operators.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.reduce.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.warmup.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.string.operations.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.string.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.accessors.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.base.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.feed.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.methods.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.mixins.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.operators.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.exchanges.exchange.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.exchanges.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.exchange_pair.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.instrument.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.quantity.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.trading_pair.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.broker.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.create.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.criteria.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.order.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.order_listener.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.order_spec.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.trade.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.ccxt.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.interactive_brokers.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.robinhood.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.simulated.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.slippage.random_slippage_model.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.slippage.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.slippage.slippage_model.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.wallets.ledger.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.wallets.portfolio.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.wallets.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.wallets.wallet.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.brownian_motion.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.cox.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.fbm.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.gbm.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.heston.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.merton.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.ornstein_uhlenbeck.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.utils.helpers.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.utils.parameters.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.utils.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.version.rst +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/action_scheme.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/charts/plotly.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/components.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/informer.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/observer.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/renderer.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/stopper.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/envs/overview.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/ledger_example.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/overview.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/renderers_and_plotly_chart_files/renderers_and_plotly_chart_21_1.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/renderers_and_plotly_chart_files/renderers_and_plotly_chart_22_1.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/setup_environment_tutorial.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_11_1.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_3_1.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_5_1.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_7_1.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_9_1.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/feed/overview.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/oms/overview.md +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/eval_01.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/eval_02.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/eval_03.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/eval_04.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/sine_curve.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/train_performance.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/data/Coinbase_BTCUSD_1h.csv +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/data/Coinbase_BTCUSD_d.csv +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/data/configuration.json +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/data/configuration.yaml +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/agents.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/alphastar.gif +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/banner.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/commits.png +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/components.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/environment.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/logo.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/pipeline.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/primer.jpg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/trading.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/tuning.jpeg +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/contrib/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/base.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/clock.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/context.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/exceptions.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/registry.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/data/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/informers.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/stoppers.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/informer.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/renderer.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/reward_scheme.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/stopper.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/boolean/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/boolean/operations.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/accumulators.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/imputation.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/operations.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/ordering.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/utils.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/window/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/window/expanding.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/imputation.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/reduce.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/warmup.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/accessors.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/methods.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/mixins.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/operators.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/exchanges/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/exchange_pair.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/instrument.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/trading_pair.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/criteria.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/order.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/order_listener.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/order_spec.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/trade.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/ccxt.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/interactive_brokers.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/robinhood.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/slippage/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/slippage/random_slippage_model.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/slippage/slippage_model.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/wallets/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/wallets/ledger.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/wallets/portfolio.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/brownian_motion.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/cox.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/fbm.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/gbm.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/heston.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/merton.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/ornstein_uhlenbeck.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/utils/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/utils/parameters.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/dependency_links.txt +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/not-zip-safe +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/top_level.txt +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/config/configuration.json +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/config/configuration.yaml +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/input/bitfinex-1d-btc-usd.csv +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/input/bitfinex-1h-btc-usd.csv +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/input/bitfinex_(BTC,ETH)USD_d.csv +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/input/bitstamp_(BTC,ETH,LTC)USD_d.csv +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/integration → tensortrade-1.0.4/tests/tensortrade/unit}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit → tensortrade-1.0.4/tests/tensortrade/unit/base}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_clock.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_component.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_context.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_core.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_exceptions.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_registry.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/base → tensortrade-1.0.4/tests/tensortrade/unit/data}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/data → tensortrade-1.0.4/tests/tensortrade/unit/env}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/env → tensortrade-1.0.4/tests/tensortrade/unit/env/default}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_actions.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_observers.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_renderers.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/env/default → tensortrade-1.0.4/tests/tensortrade/unit/env/generic}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/env/generic → tensortrade-1.0.4/tests/tensortrade/unit/feed}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/feed → tensortrade-1.0.4/tests/tensortrade/unit/feed/api}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/feed/api → tensortrade-1.0.4/tests/tensortrade/unit/feed/api/float}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_accumulators.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_imputations.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_operations.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_ordering.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/feed/api/float → tensortrade-1.0.4/tests/tensortrade/unit/feed/api/float/window}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/window/test_ewm.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/window/test_expanding.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/window/test_rolling.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/feed/api/float/window → tensortrade-1.0.4/tests/tensortrade/unit/feed/api/generic}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/generic/test_reduce.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/feed/api/generic → tensortrade-1.0.4/tests/tensortrade/unit/feed/core}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_base.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_boolean.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_feed.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_float.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_generic.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_str.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/feed/core → tensortrade-1.0.4/tests/tensortrade/unit/oms}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/oms → tensortrade-1.0.4/tests/tensortrade/unit/oms/exchanges}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/exchanges/test_exchange.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/oms/exchanges → tensortrade-1.0.4/tests/tensortrade/unit/oms/instruments}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/instruments/test_exchange_pair.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/instruments/test_instrument.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/instruments/test_quantity.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/instruments/test_trading_pair.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/oms/instruments → tensortrade-1.0.4/tests/tensortrade/unit/oms/orders}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/oms/orders → tensortrade-1.0.4/tests/tensortrade/unit/oms/orders/criteria}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_compound.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_criteria.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_limit.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_stop.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_timed.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_broker.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_create.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_order.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_order_listener.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_order_spec.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/oms/orders/criteria → tensortrade-1.0.4/tests/tensortrade/unit/oms/services}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/oms/services → tensortrade-1.0.4/tests/tensortrade/unit/oms/services/execution}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/services/execution/test_simulated.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/oms/services/execution → tensortrade-1.0.4/tests/tensortrade/unit/oms/wallets}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/wallets/test_portfolio.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/wallets/test_wallet.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/oms/wallets → tensortrade-1.0.4/tests/tensortrade/unit/stochastic}/__init__.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/stochastic → tensortrade-1.0.4/tests/tensortrade/unit/stochastic/processes}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_cox.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_fbm.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_gbm.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_heston.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_merton.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_ornstein_uhlenbeck.py +0 -0
- {tensortrade-1.0.3/tests/tensortrade/unit/stochastic/processes → tensortrade-1.0.4/tests/utils}/__init__.py +0 -0
- {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/utils/ops.py +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tensortrade
|
|
3
|
+
Version: 1.0.4
|
|
4
|
+
Summary: TensorTrade: A reinforcement learning library for training, evaluating, and deploying robust trading agents.
|
|
5
|
+
Home-page: https://github.com/tensortrade-org/tensortrade
|
|
6
|
+
Author: Adam King <adamjking3@gmail.com>, Matthew Brulhardt <mwbrulhardt@gmail.com>
|
|
7
|
+
Maintainer: Carlo Grisetti <carlo.grisetti@gmail.com>
|
|
8
|
+
License: Apache 2.0
|
|
9
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
10
|
+
Classifier: Natural Language :: English
|
|
11
|
+
Classifier: Intended Audience :: Developers
|
|
12
|
+
Classifier: Intended Audience :: Education
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: Intended Audience :: Financial and Insurance Industry
|
|
15
|
+
Classifier: Intended Audience :: Information Technology
|
|
16
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Office/Business :: Financial :: Investment
|
|
20
|
+
Classifier: Topic :: Office/Business :: Financial
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
22
|
+
Classifier: Topic :: System :: Distributed Computing
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
24
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
25
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
26
|
+
Requires-Python: >=3.12
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
License-File: LICENSE
|
|
29
|
+
Requires-Dist: numpy>=1.26.4
|
|
30
|
+
Requires-Dist: pandas<3.0,>=2.2.3
|
|
31
|
+
Requires-Dist: gymnasium>=0.28.1
|
|
32
|
+
Requires-Dist: pyyaml>=5.1.2
|
|
33
|
+
Requires-Dist: stochastic>=0.6.0
|
|
34
|
+
Requires-Dist: tensorflow>=2.15.1
|
|
35
|
+
Requires-Dist: ipython>=7.12.0
|
|
36
|
+
Requires-Dist: matplotlib>=3.1.1
|
|
37
|
+
Requires-Dist: plotly>=4.5.0
|
|
38
|
+
Requires-Dist: deprecated>=1.2.13
|
|
39
|
+
Requires-Dist: ta>=0.4.7
|
|
40
|
+
Requires-Dist: pytest>=7.0.0
|
|
41
|
+
Provides-Extra: tests
|
|
42
|
+
Requires-Dist: pytest>=7.0.0; extra == "tests"
|
|
43
|
+
Provides-Extra: docs
|
|
44
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
45
|
+
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
46
|
+
Requires-Dist: sphinxcontrib.apidoc; extra == "docs"
|
|
47
|
+
Requires-Dist: nbsphinx; extra == "docs"
|
|
48
|
+
Requires-Dist: nbsphinx_link; extra == "docs"
|
|
49
|
+
Requires-Dist: recommonmark; extra == "docs"
|
|
50
|
+
Requires-Dist: sphinx_markdown_tables; extra == "docs"
|
|
51
|
+
Requires-Dist: ipykernel; extra == "docs"
|
|
52
|
+
Dynamic: author
|
|
53
|
+
Dynamic: classifier
|
|
54
|
+
Dynamic: description
|
|
55
|
+
Dynamic: description-content-type
|
|
56
|
+
Dynamic: home-page
|
|
57
|
+
Dynamic: license
|
|
58
|
+
Dynamic: license-file
|
|
59
|
+
Dynamic: maintainer
|
|
60
|
+
Dynamic: provides-extra
|
|
61
|
+
Dynamic: requires-dist
|
|
62
|
+
Dynamic: requires-python
|
|
63
|
+
Dynamic: summary
|
|
64
|
+
|
|
65
|
+
TensorTrade: A reinforcement learning library for training, evaluating, and deploying robust trading agents.
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="docs/source/_static/logo.jpg" width="200" alt="TensorTrade Logo">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
# TensorTrade
|
|
6
|
+
|
|
7
|
+
**Train RL agents to trade. Can they beat Buy-and-Hold?**
|
|
8
|
+
|
|
9
|
+
[](https://github.com/tensortrade-org/tensortrade/actions/workflows/tests.yml)
|
|
10
|
+
[](https://tensortrade.org)
|
|
11
|
+
[](http://www.apache.org/licenses/LICENSE-2.0)
|
|
12
|
+
[](https://discord.gg/ZZ7BGWh)
|
|
13
|
+
[](https://www.python.org/downloads/release/python-3120/)
|
|
14
|
+
|
|
15
|
+
TensorTrade is an open-source Python framework for building, training, and evaluating reinforcement learning agents for algorithmic trading. The framework provides composable components for environments, action schemes, reward functions, and data feeds that can be combined to create custom trading systems.
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Requires Python 3.12+
|
|
21
|
+
python3.12 -m venv tensortrade-env && source tensortrade-env/bin/activate
|
|
22
|
+
pip install -e .
|
|
23
|
+
|
|
24
|
+
# For training with Ray/RLlib (recommended)
|
|
25
|
+
pip install -r examples/requirements.txt
|
|
26
|
+
|
|
27
|
+
# Run training
|
|
28
|
+
python examples/training/train_simple.py
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Documentation & Tutorials
|
|
32
|
+
|
|
33
|
+
📚 **[Tutorial Index](docs/tutorials/index.md)** — Start here for the complete learning curriculum.
|
|
34
|
+
|
|
35
|
+
### Foundations
|
|
36
|
+
- [The Three Pillars](docs/tutorials/01-foundations/01-three-pillars.md) — RL + Trading + Data concepts
|
|
37
|
+
- [Architecture](docs/tutorials/01-foundations/02-architecture.md) — How components work together
|
|
38
|
+
- [Your First Run](docs/tutorials/01-foundations/03-your-first-run.md) — Run and understand output
|
|
39
|
+
|
|
40
|
+
### Domain Knowledge
|
|
41
|
+
- [Trading for RL Practitioners](docs/tutorials/02-domains/track-a-trading-for-rl/01-trading-basics.md)
|
|
42
|
+
- [RL for Traders](docs/tutorials/02-domains/track-b-rl-for-traders/01-rl-fundamentals.md)
|
|
43
|
+
- [Common Failures](docs/tutorials/02-domains/track-b-rl-for-traders/02-common-failures.md) — Critical pitfalls to avoid
|
|
44
|
+
- [Full Introduction](docs/tutorials/02-domains/track-c-full-intro/README.md) — New to both domains
|
|
45
|
+
|
|
46
|
+
### Core Components
|
|
47
|
+
- [Action Schemes](docs/tutorials/03-components/01-action-schemes.md) — BSH and order execution
|
|
48
|
+
- [Reward Schemes](docs/tutorials/03-components/02-reward-schemes.md) — Why PBR works
|
|
49
|
+
- [Observers & Feeds](docs/tutorials/03-components/03-observers-feeds.md) — Feature engineering
|
|
50
|
+
|
|
51
|
+
### Training
|
|
52
|
+
- [First Training](docs/tutorials/04-training/01-first-training.md) — Train with Ray RLlib
|
|
53
|
+
- [Ray RLlib Deep Dive](docs/tutorials/04-training/02-ray-rllib.md) — Configuration options
|
|
54
|
+
- [Optuna Optimization](docs/tutorials/04-training/03-optuna.md) — Hyperparameter tuning
|
|
55
|
+
|
|
56
|
+
### Advanced Topics
|
|
57
|
+
- [Overfitting](docs/tutorials/05-advanced/01-overfitting.md) — Detection and prevention
|
|
58
|
+
- [Commission Analysis](docs/tutorials/05-advanced/02-commission.md) — Key research findings
|
|
59
|
+
- [Walk-Forward Validation](docs/tutorials/05-advanced/03-walk-forward.md) — Proper evaluation
|
|
60
|
+
|
|
61
|
+
### Additional Resources
|
|
62
|
+
- [Experiments Log](docs/EXPERIMENTS.md) — Full research documentation
|
|
63
|
+
- [Environment Setup](docs/ENVIRONMENT_SETUP.md) — Detailed installation guide
|
|
64
|
+
- [API Reference](https://www.tensortrade.org/en/latest/)
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Research Findings
|
|
69
|
+
|
|
70
|
+
We conducted extensive experiments training PPO agents on BTC/USD. Key results:
|
|
71
|
+
|
|
72
|
+
| Configuration | Test P&L | vs Buy-and-Hold |
|
|
73
|
+
|---------------|----------|-----------------|
|
|
74
|
+
| Agent (0% commission) | +$239 | +$594 |
|
|
75
|
+
| Agent (0.1% commission) | -$650 | -$295 |
|
|
76
|
+
| Buy-and-Hold | -$355 | — |
|
|
77
|
+
|
|
78
|
+
The agent demonstrates directional prediction capability at zero commission. The primary challenge is trading frequency—commission costs currently exceed prediction profits. See [EXPERIMENTS.md](docs/EXPERIMENTS.md) for methodology and detailed analysis.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Architecture
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
86
|
+
│ TradingEnv │
|
|
87
|
+
│ │
|
|
88
|
+
│ Observer ──────> Agent ──────> ActionScheme ──────> Portfolio │
|
|
89
|
+
│ (features) (policy) (BSH/Orders) (wallets) │
|
|
90
|
+
│ ^ │ │
|
|
91
|
+
│ └──────────── RewardScheme <───────────────────────┘ │
|
|
92
|
+
│ (PBR) │
|
|
93
|
+
│ │
|
|
94
|
+
│ DataFeed ──────> Exchange ──────> Broker ──────> Trades │
|
|
95
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
| Component | Purpose | Default |
|
|
99
|
+
|-----------|---------|---------|
|
|
100
|
+
| ActionScheme | Converts agent output to orders | BSH (Buy/Sell/Hold) |
|
|
101
|
+
| RewardScheme | Computes learning signal | PBR (Position-Based Returns) |
|
|
102
|
+
| Observer | Generates observations | Windowed features |
|
|
103
|
+
| Portfolio | Manages wallets and positions | USD + BTC |
|
|
104
|
+
| Exchange | Simulates execution | Configurable commission |
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Training Scripts
|
|
109
|
+
|
|
110
|
+
| Script | Description |
|
|
111
|
+
|--------|-------------|
|
|
112
|
+
| `examples/training/train_simple.py` | Basic demo with wallet tracking |
|
|
113
|
+
| `examples/training/train_ray_long.py` | Distributed training with Ray RLlib |
|
|
114
|
+
| `examples/training/train_optuna.py` | Hyperparameter optimization |
|
|
115
|
+
| `examples/training/train_best.py` | Best configuration from experiments |
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Installation
|
|
120
|
+
|
|
121
|
+
**Requirements:** Python 3.11 or 3.12
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Create environment
|
|
125
|
+
python3.12 -m venv tensortrade-env
|
|
126
|
+
source tensortrade-env/bin/activate # Windows: tensortrade-env\Scripts\activate
|
|
127
|
+
|
|
128
|
+
# Install
|
|
129
|
+
pip install --upgrade pip
|
|
130
|
+
pip install -r requirements.txt
|
|
131
|
+
pip install -e .
|
|
132
|
+
|
|
133
|
+
# Verify
|
|
134
|
+
pytest tests/tensortrade/unit -v
|
|
135
|
+
|
|
136
|
+
# Training dependencies (optional)
|
|
137
|
+
pip install -r examples/requirements.txt
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
See [ENVIRONMENT_SETUP.md](docs/ENVIRONMENT_SETUP.md) for platform-specific instructions and troubleshooting.
|
|
141
|
+
|
|
142
|
+
### Docker
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
make run-notebook # Jupyter
|
|
146
|
+
make run-docs # Documentation
|
|
147
|
+
make run-tests # Test suite
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Project Structure
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
tensortrade/
|
|
156
|
+
├── tensortrade/ # Core library
|
|
157
|
+
│ ├── env/ # Trading environments
|
|
158
|
+
│ ├── feed/ # Data pipeline
|
|
159
|
+
│ ├── oms/ # Order management
|
|
160
|
+
│ └── data/ # Data fetching
|
|
161
|
+
├── examples/
|
|
162
|
+
│ ├── training/ # Training scripts
|
|
163
|
+
│ └── notebooks/ # Jupyter tutorials
|
|
164
|
+
├── docs/
|
|
165
|
+
│ ├── tutorials/ # Learning curriculum
|
|
166
|
+
│ └── EXPERIMENTS.md # Research log
|
|
167
|
+
└── tests/
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Troubleshooting
|
|
173
|
+
|
|
174
|
+
| Issue | Solution |
|
|
175
|
+
|-------|----------|
|
|
176
|
+
| "No stream satisfies selector" | Update to v1.0.4-dev1+ |
|
|
177
|
+
| Ray installation fails | Run `pip install --upgrade pip` first |
|
|
178
|
+
| NumPy version conflict | `pip install "numpy>=1.26.4,<2.0"` |
|
|
179
|
+
| TensorFlow CUDA issues | `pip install tensorflow[and-cuda]>=2.15.1` |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Contributing
|
|
184
|
+
|
|
185
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
186
|
+
|
|
187
|
+
Priority areas:
|
|
188
|
+
1. Trading frequency reduction (position sizing, holding periods)
|
|
189
|
+
2. Commission-aware reward schemes
|
|
190
|
+
3. Alternative action spaces
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Community
|
|
195
|
+
|
|
196
|
+
- [Discord](https://discord.gg/ZZ7BGWh)
|
|
197
|
+
- [GitHub Issues](https://github.com/notadamking/tensortrade/issues)
|
|
198
|
+
- [Documentation](https://www.tensortrade.org/)
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## License
|
|
203
|
+
|
|
204
|
+
[Apache 2.0](LICENSE)
|
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
# TensorTrade Environment Setup Guide
|
|
2
|
+
|
|
3
|
+
This guide provides step-by-step instructions for setting up a working TensorTrade environment.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- **Python 3.12+** (required - Python 3.11 and below are NOT supported)
|
|
8
|
+
- **pip** (latest version recommended)
|
|
9
|
+
- **Virtual environment tool** (venv, conda, or virtualenv)
|
|
10
|
+
|
|
11
|
+
## Quick Start (Recommended)
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Requires Python 3.12+
|
|
15
|
+
python3.12 -m venv tensortrade-env
|
|
16
|
+
source tensortrade-env/bin/activate # Windows: tensortrade-env\Scripts\activate
|
|
17
|
+
|
|
18
|
+
# Install core library
|
|
19
|
+
pip install --upgrade pip
|
|
20
|
+
pip install -e .
|
|
21
|
+
|
|
22
|
+
# Verify (232 unit tests should pass, 2 skipped)
|
|
23
|
+
pytest tests/tensortrade/unit -v
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Training with Ray/RLlib
|
|
27
|
+
|
|
28
|
+
For reinforcement learning training, install additional dependencies:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Install Ray with RLlib and other training dependencies
|
|
32
|
+
pip install -r examples/requirements.txt
|
|
33
|
+
|
|
34
|
+
# Verify full test suite including RLlib integration (251 passed, 2 skipped)
|
|
35
|
+
pytest tests/ -v
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Alternative Installation Methods
|
|
39
|
+
|
|
40
|
+
### Option 1: Using venv
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Create virtual environment
|
|
44
|
+
python3.12 -m venv tensortrade-env
|
|
45
|
+
|
|
46
|
+
# Activate virtual environment
|
|
47
|
+
# On Windows:
|
|
48
|
+
tensortrade-env\Scripts\activate
|
|
49
|
+
# On Linux/macOS:
|
|
50
|
+
source tensortrade-env/bin/activate
|
|
51
|
+
|
|
52
|
+
# Upgrade pip
|
|
53
|
+
python -m pip install --upgrade pip
|
|
54
|
+
|
|
55
|
+
# Install TensorTrade
|
|
56
|
+
pip install -r requirements.txt
|
|
57
|
+
pip install -e .
|
|
58
|
+
|
|
59
|
+
# Install example dependencies (optional)
|
|
60
|
+
pip install -r examples/requirements.txt
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Option 2: Using Conda
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Create conda environment (use 3.11 or 3.12)
|
|
67
|
+
conda create -n tensortrade python=3.12
|
|
68
|
+
|
|
69
|
+
# Activate environment
|
|
70
|
+
conda activate tensortrade
|
|
71
|
+
|
|
72
|
+
# Install TensorTrade
|
|
73
|
+
pip install -r requirements.txt
|
|
74
|
+
pip install -e .
|
|
75
|
+
|
|
76
|
+
# Install example dependencies (optional)
|
|
77
|
+
pip install -r examples/requirements.txt
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Option 3: Google Colab
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
# Run in Colab cell
|
|
84
|
+
!pip install --upgrade pip
|
|
85
|
+
!git clone https://github.com/tensortrade-org/tensortrade.git
|
|
86
|
+
%cd tensortrade
|
|
87
|
+
!pip install -r requirements.txt
|
|
88
|
+
!pip install -r examples/requirements.txt
|
|
89
|
+
!pip install -e .
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Detailed Installation Steps
|
|
93
|
+
|
|
94
|
+
### Step 1: Verify Python Version
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
python --version
|
|
98
|
+
# Should output: Python 3.11.x or 3.12.x
|
|
99
|
+
# Note: Python 3.14 is NOT supported (TensorFlow incompatibility)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
If you have an older version, download Python 3.11 or 3.12 from [python.org](https://www.python.org/downloads/).
|
|
103
|
+
|
|
104
|
+
### Step 2: Create Virtual Environment
|
|
105
|
+
|
|
106
|
+
**Why use a virtual environment?**
|
|
107
|
+
- Isolates dependencies
|
|
108
|
+
- Prevents version conflicts
|
|
109
|
+
- Makes it easy to reproduce the environment
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Using venv (use python3.11 or python3.12)
|
|
113
|
+
python3.12 -m venv tensortrade-env
|
|
114
|
+
|
|
115
|
+
# Using conda
|
|
116
|
+
conda create -n tensortrade python=3.12
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Step 3: Activate Virtual Environment
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Windows (venv)
|
|
123
|
+
tensortrade-env\Scripts\activate
|
|
124
|
+
|
|
125
|
+
# Linux/macOS (venv)
|
|
126
|
+
source tensortrade-env/bin/activate
|
|
127
|
+
|
|
128
|
+
# Conda (all platforms)
|
|
129
|
+
conda activate tensortrade
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Step 4: Install Core Dependencies
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
# Upgrade pip first
|
|
136
|
+
python -m pip install --upgrade pip
|
|
137
|
+
|
|
138
|
+
# Install TensorTrade core dependencies
|
|
139
|
+
pip install -r requirements.txt
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Core dependencies installed:**
|
|
143
|
+
- numpy>=1.26.4,<2.0
|
|
144
|
+
- pandas>=2.2.3,<3.0
|
|
145
|
+
- gymnasium>=0.28.1,<1.0
|
|
146
|
+
- tensorflow>=2.15.1
|
|
147
|
+
- ta>=0.4.7
|
|
148
|
+
- And more...
|
|
149
|
+
|
|
150
|
+
### Step 5: Install TensorTrade
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Install in editable mode (for development)
|
|
154
|
+
pip install -e .
|
|
155
|
+
|
|
156
|
+
# Or install normally
|
|
157
|
+
pip install .
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Step 6: Install Example Dependencies (Optional)
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
pip install -r examples/requirements.txt
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**Example dependencies include:**
|
|
167
|
+
- ray[default,tune,rllib,serve]==2.37.0
|
|
168
|
+
- ccxt>=1.72.37
|
|
169
|
+
- jupyterlab>=1.1.4
|
|
170
|
+
- scikit-learn
|
|
171
|
+
- optuna
|
|
172
|
+
- feature_engine
|
|
173
|
+
|
|
174
|
+
### Step 7: Verify Installation
|
|
175
|
+
|
|
176
|
+
```python
|
|
177
|
+
# Test import
|
|
178
|
+
python -c "import tensortrade; print(tensortrade.__version__)"
|
|
179
|
+
|
|
180
|
+
# Should output: 1.0.4.dev1
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## Platform-Specific Instructions
|
|
184
|
+
|
|
185
|
+
### Windows 10/11
|
|
186
|
+
|
|
187
|
+
**Additional Requirements:**
|
|
188
|
+
- Visual Studio Build Tools (for some packages)
|
|
189
|
+
- Download from: https://visualstudio.microsoft.com/downloads/
|
|
190
|
+
|
|
191
|
+
**Common Issues:**
|
|
192
|
+
1. **Long path names**: Enable long path support in Windows
|
|
193
|
+
```
|
|
194
|
+
Registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
|
|
195
|
+
Set LongPathsEnabled to 1
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
2. **Permission errors**: Run terminal as Administrator
|
|
199
|
+
|
|
200
|
+
### Linux (Ubuntu 20.04+)
|
|
201
|
+
|
|
202
|
+
**Additional Requirements:**
|
|
203
|
+
```bash
|
|
204
|
+
# Install system dependencies
|
|
205
|
+
sudo apt-get update
|
|
206
|
+
sudo apt-get install python3-dev python3-pip build-essential
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**For CUDA support:**
|
|
210
|
+
```bash
|
|
211
|
+
# Install CUDA toolkit (for GPU support)
|
|
212
|
+
# Follow: https://developer.nvidia.com/cuda-downloads
|
|
213
|
+
|
|
214
|
+
# Install TensorFlow with CUDA
|
|
215
|
+
pip install tensorflow[and-cuda]>=2.15.1
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### macOS (12.0+)
|
|
219
|
+
|
|
220
|
+
**Additional Requirements:**
|
|
221
|
+
```bash
|
|
222
|
+
# Install Xcode Command Line Tools
|
|
223
|
+
xcode-select --install
|
|
224
|
+
|
|
225
|
+
# Install Homebrew (if not installed)
|
|
226
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Troubleshooting
|
|
230
|
+
|
|
231
|
+
### Issue: TensorFlow Not Found (Python 3.14)
|
|
232
|
+
|
|
233
|
+
**Problem:** `No matching distribution found for tensorflow>=2.15.1`
|
|
234
|
+
|
|
235
|
+
**Solution:** TensorFlow does not yet support Python 3.14. Use Python 3.11 or 3.12 instead:
|
|
236
|
+
```bash
|
|
237
|
+
# Check your Python version
|
|
238
|
+
python --version
|
|
239
|
+
|
|
240
|
+
# If using 3.14, switch to 3.12
|
|
241
|
+
python3.12 -m venv tensortrade-env
|
|
242
|
+
source tensortrade-env/bin/activate
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### Issue: Ray Installation Fails
|
|
246
|
+
|
|
247
|
+
**Solution:**
|
|
248
|
+
```bash
|
|
249
|
+
# Upgrade pip first
|
|
250
|
+
pip install --upgrade pip
|
|
251
|
+
|
|
252
|
+
# Install Ray separately
|
|
253
|
+
pip install ray[default,tune,rllib,serve]==2.37.0
|
|
254
|
+
|
|
255
|
+
# If still fails, try without extras
|
|
256
|
+
pip install ray==2.37.0
|
|
257
|
+
pip install ray[tune]
|
|
258
|
+
pip install ray[rllib]
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Issue: TensorFlow CUDA Not Working
|
|
262
|
+
|
|
263
|
+
**Solution:**
|
|
264
|
+
```bash
|
|
265
|
+
# Uninstall existing TensorFlow
|
|
266
|
+
pip uninstall tensorflow
|
|
267
|
+
|
|
268
|
+
# Install TensorFlow with CUDA support
|
|
269
|
+
pip install tensorflow[and-cuda]>=2.15.1
|
|
270
|
+
|
|
271
|
+
# Verify CUDA is available
|
|
272
|
+
python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Issue: NumPy Version Conflict
|
|
276
|
+
|
|
277
|
+
**Solution:**
|
|
278
|
+
```bash
|
|
279
|
+
# Ensure NumPy < 2.0 for TensorFlow compatibility
|
|
280
|
+
pip install "numpy>=1.26.4,<2.0" --force-reinstall
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### Issue: Pandas API Errors (pct_change, ewm)
|
|
284
|
+
|
|
285
|
+
**Problem:** Tests fail with pandas deprecation warnings or API errors.
|
|
286
|
+
|
|
287
|
+
**Solution:** TensorTrade requires pandas < 3.0:
|
|
288
|
+
```bash
|
|
289
|
+
pip install "pandas>=2.2.3,<3.0" --force-reinstall
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### Issue: importlib-metadata Error
|
|
293
|
+
|
|
294
|
+
**Solution:**
|
|
295
|
+
```bash
|
|
296
|
+
# Install compatible version
|
|
297
|
+
pip install "importlib-metadata>=4.13.0,<6.0"
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Issue: "No stream satisfies selector condition"
|
|
301
|
+
|
|
302
|
+
**Solution:**
|
|
303
|
+
This has been fixed in the latest version. Make sure you're using the updated code with the stream selector fix in `tensortrade/env/default/observers.py`.
|
|
304
|
+
|
|
305
|
+
### Issue: Examples Don't Run
|
|
306
|
+
|
|
307
|
+
**Solution:**
|
|
308
|
+
```bash
|
|
309
|
+
# Make sure example dependencies are installed
|
|
310
|
+
pip install -r examples/requirements.txt
|
|
311
|
+
|
|
312
|
+
# Verify Ray version
|
|
313
|
+
python -c "import ray; print(ray.__version__)"
|
|
314
|
+
# Should output: 2.37.0
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Testing Your Installation
|
|
318
|
+
|
|
319
|
+
### Basic Test
|
|
320
|
+
|
|
321
|
+
```python
|
|
322
|
+
from tensortrade.feed.core import Stream, DataFeed
|
|
323
|
+
from tensortrade.oms.instruments import USD, BTC
|
|
324
|
+
from tensortrade.oms.wallets import Wallet, Portfolio
|
|
325
|
+
from tensortrade.oms.exchanges import Exchange
|
|
326
|
+
from tensortrade.oms.services.execution.simulated import execute_order
|
|
327
|
+
import tensortrade.env.default as default
|
|
328
|
+
|
|
329
|
+
# Create simple environment
|
|
330
|
+
exchange = Exchange("simulated", service=execute_order)(
|
|
331
|
+
Stream.source([100, 101, 102], dtype="float").rename("USD-BTC")
|
|
332
|
+
)
|
|
333
|
+
|
|
334
|
+
portfolio = Portfolio(USD, [
|
|
335
|
+
Wallet(exchange, 10000 * USD),
|
|
336
|
+
Wallet(exchange, 0 * BTC)
|
|
337
|
+
])
|
|
338
|
+
|
|
339
|
+
feed = DataFeed([
|
|
340
|
+
Stream.source([100, 101, 102], dtype="float").rename("price")
|
|
341
|
+
])
|
|
342
|
+
|
|
343
|
+
env = default.create(
|
|
344
|
+
portfolio=portfolio,
|
|
345
|
+
action_scheme="simple",
|
|
346
|
+
reward_scheme="simple",
|
|
347
|
+
feed=feed,
|
|
348
|
+
window_size=1
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
# Test environment
|
|
352
|
+
obs, info = env.reset()
|
|
353
|
+
print(f"Environment created successfully! Observation shape: {obs.shape}")
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### Run Tests
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
# Run unit tests
|
|
360
|
+
pytest tests/tensortrade/unit -v
|
|
361
|
+
|
|
362
|
+
# Run integration tests
|
|
363
|
+
pytest tests/tensortrade/integration -v
|
|
364
|
+
|
|
365
|
+
# Run all tests
|
|
366
|
+
pytest tests/ -v
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
## Getting Help
|
|
370
|
+
|
|
371
|
+
If you encounter issues not covered in this guide:
|
|
372
|
+
|
|
373
|
+
1. Search [GitHub Issues](https://github.com/tensortrade-org/tensortrade/issues)
|
|
374
|
+
3. Ask on [Discord](https://discord.gg/ZZ7BGWh)
|
|
375
|
+
4. Open a new issue with:
|
|
376
|
+
- Your Python version
|
|
377
|
+
- Your OS
|
|
378
|
+
- Complete error message
|
|
379
|
+
- Steps to reproduce
|
|
380
|
+
|
|
381
|
+
## Next Steps
|
|
382
|
+
|
|
383
|
+
- Read the [Quick Start Guide](../README.md#quick-start)
|
|
384
|
+
- Try the [Setup Environment Tutorial](../examples/setup_environment_tutorial.ipynb)
|
|
385
|
+
- Explore [Example Notebooks](../examples/)
|
|
386
|
+
- Read the [API Documentation](https://www.tensortrade.org/)
|
|
387
|
+
|
|
388
|
+
## Maintenance
|
|
389
|
+
|
|
390
|
+
### Updating TensorTrade
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
# Pull latest changes
|
|
394
|
+
git pull origin master
|
|
395
|
+
|
|
396
|
+
# Reinstall
|
|
397
|
+
pip install -e . --upgrade
|
|
398
|
+
|
|
399
|
+
# Update dependencies
|
|
400
|
+
pip install -r requirements.txt --upgrade
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
### Cleaning Up
|
|
404
|
+
|
|
405
|
+
```bash
|
|
406
|
+
# Deactivate virtual environment
|
|
407
|
+
deactivate # or: conda deactivate
|
|
408
|
+
|
|
409
|
+
# Remove virtual environment
|
|
410
|
+
rm -rf tensortrade-env # or: conda env remove -n tensortrade
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
## Best Practices
|
|
414
|
+
|
|
415
|
+
1. **Always use a virtual environment**
|
|
416
|
+
2. **Keep dependencies up to date**
|
|
417
|
+
3. **Test after updates**
|
|
418
|
+
4. **Document your environment** (use `pip freeze > my-requirements.txt`)
|
|
419
|
+
5. **Use version control** for your code
|
|
420
|
+
|