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.
Files changed (463) hide show
  1. tensortrade-1.0.4/PKG-INFO +65 -0
  2. tensortrade-1.0.4/README.md +204 -0
  3. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/.readthedocs.yml +0 -4
  4. tensortrade-1.0.4/docs/ENVIRONMENT_SETUP.md +420 -0
  5. tensortrade-1.0.4/docs/EXPERIMENTS.md +382 -0
  6. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/requirements.txt +1 -0
  7. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/reward_scheme.md +21 -15
  8. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/conf.py +2 -2
  9. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/renderers_and_plotly_chart.md +10 -3
  10. tensortrade-1.0.4/docs/source/examples/train_and_evaluate_using_ray.md +247 -0
  11. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/index.rst +5 -2
  12. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/overview/getting_started.md +1 -13
  13. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/ray.md +12 -8
  14. tensortrade-1.0.4/docs/tutorials/01-foundations/01-three-pillars.md +300 -0
  15. tensortrade-1.0.4/docs/tutorials/01-foundations/02-architecture.md +451 -0
  16. tensortrade-1.0.4/docs/tutorials/01-foundations/03-your-first-run.md +351 -0
  17. tensortrade-1.0.4/docs/tutorials/02-domains/track-a-trading-for-rl/01-trading-basics.md +435 -0
  18. tensortrade-1.0.4/docs/tutorials/02-domains/track-a-trading-for-rl/02-oms-deep-dive.md +494 -0
  19. tensortrade-1.0.4/docs/tutorials/02-domains/track-b-rl-for-traders/01-rl-fundamentals.md +356 -0
  20. tensortrade-1.0.4/docs/tutorials/02-domains/track-b-rl-for-traders/02-common-failures.md +495 -0
  21. tensortrade-1.0.4/docs/tutorials/02-domains/track-c-full-intro/README.md +294 -0
  22. tensortrade-1.0.4/docs/tutorials/03-components/01-action-schemes.md +406 -0
  23. tensortrade-1.0.4/docs/tutorials/03-components/02-reward-schemes.md +455 -0
  24. tensortrade-1.0.4/docs/tutorials/03-components/03-observers-feeds.md +477 -0
  25. tensortrade-1.0.4/docs/tutorials/04-training/01-first-training.md +439 -0
  26. tensortrade-1.0.4/docs/tutorials/04-training/02-ray-rllib.md +557 -0
  27. tensortrade-1.0.4/docs/tutorials/04-training/03-optuna.md +443 -0
  28. tensortrade-1.0.4/docs/tutorials/05-advanced/01-overfitting.md +382 -0
  29. tensortrade-1.0.4/docs/tutorials/05-advanced/02-commission.md +390 -0
  30. tensortrade-1.0.4/docs/tutorials/05-advanced/03-walk-forward.md +471 -0
  31. tensortrade-1.0.4/docs/tutorials/index.md +186 -0
  32. tensortrade-1.0.4/examples/.gitignore +2 -0
  33. tensortrade-1.0.4/examples/README.md +255 -0
  34. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/ledger_example.ipynb +302 -346
  35. tensortrade-1.0.4/examples/renderers_and_plotly_chart.ipynb +992 -0
  36. tensortrade-1.0.4/examples/requirements.txt +13 -0
  37. tensortrade-1.0.4/examples/setup_environment_tutorial.ipynb +1148 -0
  38. tensortrade-1.0.4/examples/train_and_evaluate.ipynb +3740 -0
  39. tensortrade-1.0.4/examples/training/README.md +64 -0
  40. tensortrade-1.0.4/examples/training/__init__.py +1 -0
  41. tensortrade-1.0.4/examples/training/run_ray_simulation.py +262 -0
  42. tensortrade-1.0.4/examples/training/train_advanced.py +325 -0
  43. tensortrade-1.0.4/examples/training/train_best.py +290 -0
  44. tensortrade-1.0.4/examples/training/train_historical.py +480 -0
  45. tensortrade-1.0.4/examples/training/train_optuna.py +404 -0
  46. tensortrade-1.0.4/examples/training/train_profit.py +357 -0
  47. tensortrade-1.0.4/examples/training/train_ray_long.py +322 -0
  48. tensortrade-1.0.4/examples/training/train_robust.py +411 -0
  49. tensortrade-1.0.4/examples/training/train_simple.py +155 -0
  50. tensortrade-1.0.4/examples/training/train_trend.py +270 -0
  51. tensortrade-1.0.4/examples/training/train_walkforward.py +482 -0
  52. tensortrade-1.0.4/examples/use_attentionnet_rllib.ipynb +800 -0
  53. tensortrade-1.0.4/examples/use_lstm_rllib.ipynb +1887 -0
  54. tensortrade-1.0.4/examples/use_stochastic_data.ipynb +424 -0
  55. tensortrade-1.0.4/setup.cfg +14 -0
  56. {tensortrade-1.0.3 → tensortrade-1.0.4}/setup.py +14 -12
  57. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/__init__.py +7 -0
  58. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/a2c_agent.py +3 -2
  59. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/agent.py +3 -0
  60. tensortrade-1.0.4/tensortrade/agents/dqn_agent.py +375 -0
  61. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_dqn_agent.py +2 -0
  62. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_dqn_model.py +2 -0
  63. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_dqn_optimizer.py +8 -2
  64. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_dqn_trainer.py +2 -0
  65. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/parallel_queue.py +3 -0
  66. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/replay_memory.py +2 -0
  67. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/component.py +1 -1
  68. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/data/cdd.py +5 -4
  69. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/__init__.py +8 -1
  70. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/actions.py +2 -2
  71. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/observers.py +32 -22
  72. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/renderers.py +6 -9
  73. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/rewards.py +126 -6
  74. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/action_scheme.py +1 -1
  75. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/observer.py +2 -2
  76. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/environment.py +57 -9
  77. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/__init__.py +1 -0
  78. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/window/ewm.py +1 -0
  79. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/window/rolling.py +2 -2
  80. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/operators.py +0 -3
  81. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/string/__init__.py +1 -0
  82. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/string/operations.py +4 -0
  83. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/base.py +7 -2
  84. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/feed.py +6 -3
  85. tensortrade-1.0.4/tensortrade/oms/__init__.py +2 -0
  86. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/exchanges/exchange.py +14 -2
  87. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/quantity.py +6 -3
  88. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/broker.py +5 -1
  89. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/create.py +2 -2
  90. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/simulated.py +22 -12
  91. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/wallets/wallet.py +15 -4
  92. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/utils/helpers.py +7 -6
  93. tensortrade-1.0.4/tensortrade/version.py +1 -0
  94. tensortrade-1.0.4/tensortrade.egg-info/PKG-INFO +65 -0
  95. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/SOURCES.txt +47 -3
  96. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/requires.txt +8 -6
  97. tensortrade-1.0.4/tests/tensortrade/integration/__init__.py +14 -0
  98. tensortrade-1.0.4/tests/tensortrade/integration/rllib/__init__.py +15 -0
  99. tensortrade-1.0.4/tests/tensortrade/integration/rllib/conftest.py +83 -0
  100. tensortrade-1.0.4/tests/tensortrade/integration/rllib/test_checkpoint.py +276 -0
  101. tensortrade-1.0.4/tests/tensortrade/integration/rllib/test_env_creation.py +170 -0
  102. tensortrade-1.0.4/tests/tensortrade/integration/rllib/test_ray_training.py +238 -0
  103. tensortrade-1.0.4/tests/tensortrade/integration/test_end_to_end.py +226 -0
  104. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_env.py +56 -3
  105. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_rewards.py +1 -1
  106. tensortrade-1.0.4/tests/tensortrade/unit/env/default/test_stream_selector.py +111 -0
  107. tensortrade-1.0.4/tests/tensortrade/unit/env/test_gpu_compatibility.py +129 -0
  108. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_utils.py +6 -1
  109. tensortrade-1.0.4/tests/tensortrade/unit/oms/exchanges/test_exchange_streams.py +98 -0
  110. tensortrade-1.0.3/PKG-INFO +0 -31
  111. tensortrade-1.0.3/README.md +0 -95
  112. tensortrade-1.0.3/docs/source/examples/train_and_evaluate.md +0 -153
  113. tensortrade-1.0.3/examples/deprecated/TensorTrade_Alpha_Tutorial[outdated].ipynb +0 -1559
  114. tensortrade-1.0.3/examples/deprecated/use_trading_context[outdated].ipynb +0 -255
  115. tensortrade-1.0.3/examples/renderers_and_plotly_chart.ipynb +0 -858
  116. tensortrade-1.0.3/examples/requirements.txt +0 -12
  117. tensortrade-1.0.3/examples/setup_environment_tutorial.ipynb +0 -848
  118. tensortrade-1.0.3/examples/train_and_evaluate.ipynb +0 -374
  119. tensortrade-1.0.3/examples/use_stochastic_data.ipynb +0 -316
  120. tensortrade-1.0.3/setup.cfg +0 -7
  121. tensortrade-1.0.3/tensortrade/agents/dqn_agent.py +0 -203
  122. tensortrade-1.0.3/tensortrade/oms/__init__.py +0 -2
  123. tensortrade-1.0.3/tensortrade/version.py +0 -1
  124. tensortrade-1.0.3/tensortrade.egg-info/PKG-INFO +0 -31
  125. tensortrade-1.0.3/tests/utils/__init__.py +0 -0
  126. {tensortrade-1.0.3 → tensortrade-1.0.4}/CONTRIBUTING.md +0 -0
  127. {tensortrade-1.0.3 → tensortrade-1.0.4}/LICENSE +0 -0
  128. {tensortrade-1.0.3 → tensortrade-1.0.4}/MANIFEST.in +0 -0
  129. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/Makefile +0 -0
  130. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/README.md +0 -0
  131. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/index.html +0 -0
  132. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/data/configuration.json +0 -0
  133. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/data/configuration.yaml +0 -0
  134. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/favicon.ico +0 -0
  135. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/TestingDashboard.png +0 -0
  136. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/agents.jpeg +0 -0
  137. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/alphastar.gif +0 -0
  138. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/banner.jpeg +0 -0
  139. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/cartpole.gif +0 -0
  140. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/commits.png +0 -0
  141. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/components.jpeg +0 -0
  142. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/environment.jpeg +0 -0
  143. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/logo.jpeg +0 -0
  144. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/min_max_scaling.png +0 -0
  145. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/pipeline.jpeg +0 -0
  146. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/primer.jpg +0 -0
  147. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/sharpe.png +0 -0
  148. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/sortino.png +0 -0
  149. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/stochastic.png +0 -0
  150. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/stochastic_processes.gif +0 -0
  151. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/talib_transform.gif +0 -0
  152. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/talib_transform.png +0 -0
  153. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/trading.jpeg +0 -0
  154. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/images/tuning.jpeg +0 -0
  155. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/logo.jpg +0 -0
  156. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/_static/theme_overrides.css +0 -0
  157. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/agents/overview.md +0 -0
  158. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/modules.rst +0 -0
  159. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.a2c_agent.rst +0 -0
  160. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.agent.rst +0 -0
  161. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.dqn_agent.rst +0 -0
  162. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_dqn_agent.rst +0 -0
  163. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_dqn_model.rst +0 -0
  164. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_dqn_optimizer.rst +0 -0
  165. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_dqn_trainer.rst +0 -0
  166. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.parallel_queue.rst +0 -0
  167. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.parallel.rst +0 -0
  168. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.replay_memory.rst +0 -0
  169. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.agents.rst +0 -0
  170. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.contrib.rst +0 -0
  171. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.base.rst +0 -0
  172. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.clock.rst +0 -0
  173. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.component.rst +0 -0
  174. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.context.rst +0 -0
  175. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.exceptions.rst +0 -0
  176. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.registry.rst +0 -0
  177. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.core.rst +0 -0
  178. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.data.cdd.rst +0 -0
  179. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.data.rst +0 -0
  180. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.actions.rst +0 -0
  181. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.informers.rst +0 -0
  182. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.observers.rst +0 -0
  183. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.renderers.rst +0 -0
  184. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.rewards.rst +0 -0
  185. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.rst +0 -0
  186. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.default.stoppers.rst +0 -0
  187. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.action_scheme.rst +0 -0
  188. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.informer.rst +0 -0
  189. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.observer.rst +0 -0
  190. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.renderer.rst +0 -0
  191. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.reward_scheme.rst +0 -0
  192. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.rst +0 -0
  193. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.components.stopper.rst +0 -0
  194. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.environment.rst +0 -0
  195. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.generic.rst +0 -0
  196. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.env.rst +0 -0
  197. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.boolean.operations.rst +0 -0
  198. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.boolean.rst +0 -0
  199. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.accumulators.rst +0 -0
  200. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.imputation.rst +0 -0
  201. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.operations.rst +0 -0
  202. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.ordering.rst +0 -0
  203. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.rst +0 -0
  204. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.utils.rst +0 -0
  205. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.window.ewm.rst +0 -0
  206. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.window.expanding.rst +0 -0
  207. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.window.rolling.rst +0 -0
  208. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.float.window.rst +0 -0
  209. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.imputation.rst +0 -0
  210. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.operators.rst +0 -0
  211. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.reduce.rst +0 -0
  212. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.rst +0 -0
  213. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.generic.warmup.rst +0 -0
  214. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.rst +0 -0
  215. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.string.operations.rst +0 -0
  216. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.api.string.rst +0 -0
  217. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.accessors.rst +0 -0
  218. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.base.rst +0 -0
  219. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.feed.rst +0 -0
  220. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.methods.rst +0 -0
  221. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.mixins.rst +0 -0
  222. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.operators.rst +0 -0
  223. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.core.rst +0 -0
  224. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.feed.rst +0 -0
  225. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.exchanges.exchange.rst +0 -0
  226. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.exchanges.rst +0 -0
  227. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.exchange_pair.rst +0 -0
  228. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.instrument.rst +0 -0
  229. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.quantity.rst +0 -0
  230. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.rst +0 -0
  231. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.instruments.trading_pair.rst +0 -0
  232. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.broker.rst +0 -0
  233. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.create.rst +0 -0
  234. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.criteria.rst +0 -0
  235. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.order.rst +0 -0
  236. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.order_listener.rst +0 -0
  237. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.order_spec.rst +0 -0
  238. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.rst +0 -0
  239. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.orders.trade.rst +0 -0
  240. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.rst +0 -0
  241. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.ccxt.rst +0 -0
  242. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.interactive_brokers.rst +0 -0
  243. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.robinhood.rst +0 -0
  244. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.rst +0 -0
  245. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.execution.simulated.rst +0 -0
  246. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.rst +0 -0
  247. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.slippage.random_slippage_model.rst +0 -0
  248. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.slippage.rst +0 -0
  249. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.services.slippage.slippage_model.rst +0 -0
  250. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.wallets.ledger.rst +0 -0
  251. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.wallets.portfolio.rst +0 -0
  252. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.wallets.rst +0 -0
  253. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.oms.wallets.wallet.rst +0 -0
  254. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.rst +0 -0
  255. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.brownian_motion.rst +0 -0
  256. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.cox.rst +0 -0
  257. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.fbm.rst +0 -0
  258. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.gbm.rst +0 -0
  259. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.heston.rst +0 -0
  260. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.merton.rst +0 -0
  261. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.ornstein_uhlenbeck.rst +0 -0
  262. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.processes.rst +0 -0
  263. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.rst +0 -0
  264. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.utils.helpers.rst +0 -0
  265. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.utils.parameters.rst +0 -0
  266. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.stochastic.utils.rst +0 -0
  267. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/api/tensortrade.version.rst +0 -0
  268. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/action_scheme.md +0 -0
  269. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/charts/plotly.png +0 -0
  270. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/components.md +0 -0
  271. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/informer.md +0 -0
  272. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/observer.md +0 -0
  273. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/renderer.md +0 -0
  274. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/components/stopper.md +0 -0
  275. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/envs/overview.md +0 -0
  276. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/ledger_example.md +0 -0
  277. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/overview.md +0 -0
  278. {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
  279. {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
  280. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/setup_environment_tutorial.md +0 -0
  281. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data.md +0 -0
  282. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_11_1.png +0 -0
  283. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_3_1.png +0 -0
  284. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_5_1.png +0 -0
  285. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_7_1.png +0 -0
  286. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/examples/use_stochastic_data_files/use_stochastic_data_9_1.png +0 -0
  287. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/feed/overview.md +0 -0
  288. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/oms/overview.md +0 -0
  289. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/eval_01.png +0 -0
  290. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/eval_02.png +0 -0
  291. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/eval_03.png +0 -0
  292. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/eval_04.png +0 -0
  293. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/sine_curve.png +0 -0
  294. {tensortrade-1.0.3 → tensortrade-1.0.4}/docs/source/tutorials/charts/train_performance.png +0 -0
  295. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/data/Coinbase_BTCUSD_1h.csv +0 -0
  296. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/data/Coinbase_BTCUSD_d.csv +0 -0
  297. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/data/configuration.json +0 -0
  298. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/data/configuration.yaml +0 -0
  299. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/agents.jpeg +0 -0
  300. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/alphastar.gif +0 -0
  301. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/banner.jpeg +0 -0
  302. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/commits.png +0 -0
  303. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/components.jpeg +0 -0
  304. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/environment.jpeg +0 -0
  305. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/logo.jpeg +0 -0
  306. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/pipeline.jpeg +0 -0
  307. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/primer.jpg +0 -0
  308. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/trading.jpeg +0 -0
  309. {tensortrade-1.0.3 → tensortrade-1.0.4}/examples/img/tuning.jpeg +0 -0
  310. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/__init__.py +0 -0
  311. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/agents/parallel/__init__.py +0 -0
  312. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/contrib/__init__.py +0 -0
  313. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/__init__.py +0 -0
  314. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/base.py +0 -0
  315. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/clock.py +0 -0
  316. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/context.py +0 -0
  317. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/exceptions.py +0 -0
  318. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/core/registry.py +0 -0
  319. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/data/__init__.py +0 -0
  320. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/__init__.py +0 -0
  321. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/informers.py +0 -0
  322. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/default/stoppers.py +0 -0
  323. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/__init__.py +0 -0
  324. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/__init__.py +0 -0
  325. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/informer.py +0 -0
  326. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/renderer.py +0 -0
  327. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/reward_scheme.py +0 -0
  328. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/env/generic/components/stopper.py +0 -0
  329. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/__init__.py +0 -0
  330. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/__init__.py +0 -0
  331. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/boolean/__init__.py +0 -0
  332. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/boolean/operations.py +0 -0
  333. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/accumulators.py +0 -0
  334. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/imputation.py +0 -0
  335. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/operations.py +0 -0
  336. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/ordering.py +0 -0
  337. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/utils.py +0 -0
  338. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/window/__init__.py +0 -0
  339. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/float/window/expanding.py +0 -0
  340. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/__init__.py +0 -0
  341. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/imputation.py +0 -0
  342. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/reduce.py +0 -0
  343. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/api/generic/warmup.py +0 -0
  344. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/__init__.py +0 -0
  345. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/accessors.py +0 -0
  346. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/methods.py +0 -0
  347. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/mixins.py +0 -0
  348. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/feed/core/operators.py +0 -0
  349. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/exchanges/__init__.py +0 -0
  350. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/__init__.py +0 -0
  351. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/exchange_pair.py +0 -0
  352. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/instrument.py +0 -0
  353. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/instruments/trading_pair.py +0 -0
  354. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/__init__.py +0 -0
  355. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/criteria.py +0 -0
  356. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/order.py +0 -0
  357. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/order_listener.py +0 -0
  358. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/order_spec.py +0 -0
  359. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/orders/trade.py +0 -0
  360. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/__init__.py +0 -0
  361. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/__init__.py +0 -0
  362. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/ccxt.py +0 -0
  363. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/interactive_brokers.py +0 -0
  364. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/execution/robinhood.py +0 -0
  365. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/slippage/__init__.py +0 -0
  366. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/slippage/random_slippage_model.py +0 -0
  367. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/services/slippage/slippage_model.py +0 -0
  368. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/wallets/__init__.py +0 -0
  369. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/wallets/ledger.py +0 -0
  370. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/oms/wallets/portfolio.py +0 -0
  371. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/__init__.py +0 -0
  372. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/__init__.py +0 -0
  373. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/brownian_motion.py +0 -0
  374. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/cox.py +0 -0
  375. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/fbm.py +0 -0
  376. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/gbm.py +0 -0
  377. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/heston.py +0 -0
  378. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/merton.py +0 -0
  379. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/processes/ornstein_uhlenbeck.py +0 -0
  380. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/utils/__init__.py +0 -0
  381. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade/stochastic/utils/parameters.py +0 -0
  382. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/dependency_links.txt +0 -0
  383. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/not-zip-safe +0 -0
  384. {tensortrade-1.0.3 → tensortrade-1.0.4}/tensortrade.egg-info/top_level.txt +0 -0
  385. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/__init__.py +0 -0
  386. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/config/configuration.json +0 -0
  387. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/config/configuration.yaml +0 -0
  388. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/input/bitfinex-1d-btc-usd.csv +0 -0
  389. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/input/bitfinex-1h-btc-usd.csv +0 -0
  390. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/input/bitfinex_(BTC,ETH)USD_d.csv +0 -0
  391. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/data/input/bitstamp_(BTC,ETH,LTC)USD_d.csv +0 -0
  392. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/__init__.py +0 -0
  393. {tensortrade-1.0.3/tests/tensortrade/integration → tensortrade-1.0.4/tests/tensortrade/unit}/__init__.py +0 -0
  394. {tensortrade-1.0.3/tests/tensortrade/unit → tensortrade-1.0.4/tests/tensortrade/unit/base}/__init__.py +0 -0
  395. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_clock.py +0 -0
  396. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_component.py +0 -0
  397. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_context.py +0 -0
  398. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_core.py +0 -0
  399. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_exceptions.py +0 -0
  400. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/base/test_registry.py +0 -0
  401. {tensortrade-1.0.3/tests/tensortrade/unit/base → tensortrade-1.0.4/tests/tensortrade/unit/data}/__init__.py +0 -0
  402. {tensortrade-1.0.3/tests/tensortrade/unit/data → tensortrade-1.0.4/tests/tensortrade/unit/env}/__init__.py +0 -0
  403. {tensortrade-1.0.3/tests/tensortrade/unit/env → tensortrade-1.0.4/tests/tensortrade/unit/env/default}/__init__.py +0 -0
  404. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_actions.py +0 -0
  405. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_observers.py +0 -0
  406. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/env/default/test_renderers.py +0 -0
  407. {tensortrade-1.0.3/tests/tensortrade/unit/env/default → tensortrade-1.0.4/tests/tensortrade/unit/env/generic}/__init__.py +0 -0
  408. {tensortrade-1.0.3/tests/tensortrade/unit/env/generic → tensortrade-1.0.4/tests/tensortrade/unit/feed}/__init__.py +0 -0
  409. {tensortrade-1.0.3/tests/tensortrade/unit/feed → tensortrade-1.0.4/tests/tensortrade/unit/feed/api}/__init__.py +0 -0
  410. {tensortrade-1.0.3/tests/tensortrade/unit/feed/api → tensortrade-1.0.4/tests/tensortrade/unit/feed/api/float}/__init__.py +0 -0
  411. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_accumulators.py +0 -0
  412. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_imputations.py +0 -0
  413. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_operations.py +0 -0
  414. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/test_ordering.py +0 -0
  415. {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
  416. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/window/test_ewm.py +0 -0
  417. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/window/test_expanding.py +0 -0
  418. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/float/window/test_rolling.py +0 -0
  419. {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
  420. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/api/generic/test_reduce.py +0 -0
  421. {tensortrade-1.0.3/tests/tensortrade/unit/feed/api/generic → tensortrade-1.0.4/tests/tensortrade/unit/feed/core}/__init__.py +0 -0
  422. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_base.py +0 -0
  423. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_boolean.py +0 -0
  424. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_feed.py +0 -0
  425. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_float.py +0 -0
  426. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_generic.py +0 -0
  427. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/feed/core/test_str.py +0 -0
  428. {tensortrade-1.0.3/tests/tensortrade/unit/feed/core → tensortrade-1.0.4/tests/tensortrade/unit/oms}/__init__.py +0 -0
  429. {tensortrade-1.0.3/tests/tensortrade/unit/oms → tensortrade-1.0.4/tests/tensortrade/unit/oms/exchanges}/__init__.py +0 -0
  430. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/exchanges/test_exchange.py +0 -0
  431. {tensortrade-1.0.3/tests/tensortrade/unit/oms/exchanges → tensortrade-1.0.4/tests/tensortrade/unit/oms/instruments}/__init__.py +0 -0
  432. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/instruments/test_exchange_pair.py +0 -0
  433. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/instruments/test_instrument.py +0 -0
  434. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/instruments/test_quantity.py +0 -0
  435. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/instruments/test_trading_pair.py +0 -0
  436. {tensortrade-1.0.3/tests/tensortrade/unit/oms/instruments → tensortrade-1.0.4/tests/tensortrade/unit/oms/orders}/__init__.py +0 -0
  437. {tensortrade-1.0.3/tests/tensortrade/unit/oms/orders → tensortrade-1.0.4/tests/tensortrade/unit/oms/orders/criteria}/__init__.py +0 -0
  438. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_compound.py +0 -0
  439. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_criteria.py +0 -0
  440. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_limit.py +0 -0
  441. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_stop.py +0 -0
  442. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/criteria/test_timed.py +0 -0
  443. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_broker.py +0 -0
  444. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_create.py +0 -0
  445. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_order.py +0 -0
  446. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_order_listener.py +0 -0
  447. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/orders/test_order_spec.py +0 -0
  448. {tensortrade-1.0.3/tests/tensortrade/unit/oms/orders/criteria → tensortrade-1.0.4/tests/tensortrade/unit/oms/services}/__init__.py +0 -0
  449. {tensortrade-1.0.3/tests/tensortrade/unit/oms/services → tensortrade-1.0.4/tests/tensortrade/unit/oms/services/execution}/__init__.py +0 -0
  450. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/services/execution/test_simulated.py +0 -0
  451. {tensortrade-1.0.3/tests/tensortrade/unit/oms/services/execution → tensortrade-1.0.4/tests/tensortrade/unit/oms/wallets}/__init__.py +0 -0
  452. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/wallets/test_portfolio.py +0 -0
  453. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/oms/wallets/test_wallet.py +0 -0
  454. {tensortrade-1.0.3/tests/tensortrade/unit/oms/wallets → tensortrade-1.0.4/tests/tensortrade/unit/stochastic}/__init__.py +0 -0
  455. {tensortrade-1.0.3/tests/tensortrade/unit/stochastic → tensortrade-1.0.4/tests/tensortrade/unit/stochastic/processes}/__init__.py +0 -0
  456. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_cox.py +0 -0
  457. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_fbm.py +0 -0
  458. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_gbm.py +0 -0
  459. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_heston.py +0 -0
  460. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_merton.py +0 -0
  461. {tensortrade-1.0.3 → tensortrade-1.0.4}/tests/tensortrade/unit/stochastic/processes/test_ornstein_uhlenbeck.py +0 -0
  462. {tensortrade-1.0.3/tests/tensortrade/unit/stochastic/processes → tensortrade-1.0.4/tests/utils}/__init__.py +0 -0
  463. {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
+ [![Tests](https://github.com/tensortrade-org/tensortrade/actions/workflows/tests.yml/badge.svg)](https://github.com/tensortrade-org/tensortrade/actions/workflows/tests.yml)
10
+ [![Documentation Status](https://readthedocs.org/projects/tensortrade/badge/?version=latest)](https://tensortrade.org)
11
+ [![Apache License](https://img.shields.io/github/license/tensortrade-org/tensortrade.svg?color=brightgreen)](http://www.apache.org/licenses/LICENSE-2.0)
12
+ [![Discord](https://img.shields.io/discord/592446624882491402.svg?color=brightgreen)](https://discord.gg/ZZ7BGWh)
13
+ [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](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)
@@ -9,10 +9,6 @@ version: 2
9
9
  sphinx:
10
10
  configuration: docs/conf.py
11
11
 
12
- # Build documentation with MkDocs
13
- #mkdocs:
14
- # configuration: mkdocs.yml
15
-
16
12
  # Optionally build your docs in additional formats such as PDF and ePub
17
13
  formats: all
18
14
 
@@ -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
+