topstep-backtest 0.2.1__tar.gz → 0.2.2__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 (116) hide show
  1. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/PKG-INFO +10 -5
  2. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/README.md +9 -4
  3. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/.gitignore +0 -0
  4. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/AGENTS.md +0 -0
  5. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/CHANGELOG.md +0 -0
  6. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/LICENSE +0 -0
  7. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/data/sample_mnq_1m.csv +0 -0
  8. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/docs/DESIGN.md +0 -0
  9. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/docs/INDICATORS.md +0 -0
  10. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/docs/ROADMAP.md +0 -0
  11. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/docs/TUTORIAL_EMA_CROSSOVER.md +0 -0
  12. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/docs/topstep-rules.md +0 -0
  13. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/examples/ema_cross.py +0 -0
  14. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/examples/hand_wired.py +0 -0
  15. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/examples/run_combine.py +0 -0
  16. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/examples/run_montecarlo.py +0 -0
  17. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/examples/run_real_data.py +0 -0
  18. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/examples/run_tearsheet.py +0 -0
  19. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/examples/run_windows.py +0 -0
  20. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/examples/sma_cross.py +0 -0
  21. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/examples/talib_macd.py +0 -0
  22. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/pyproject.toml +0 -0
  23. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/__init__.py +0 -0
  24. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/_render.py +0 -0
  25. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/clock/__init__.py +0 -0
  26. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/clock/live_clock.py +0 -0
  27. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/clock/test_clock.py +0 -0
  28. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/core/__init__.py +0 -0
  29. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/core/ids.py +0 -0
  30. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/core/instruments.py +0 -0
  31. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/core/money.py +0 -0
  32. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/core/time.py +0 -0
  33. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/data/__init__.py +0 -0
  34. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/data/clean.py +0 -0
  35. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/data/continuous.py +0 -0
  36. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/data/feed.py +0 -0
  37. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/data/synthetic.py +0 -0
  38. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/data/validator.py +0 -0
  39. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/data/wrangler.py +0 -0
  40. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/engine/__init__.py +0 -0
  41. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/engine/backtest.py +0 -0
  42. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/execution/__init__.py +0 -0
  43. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/execution/rejections.py +0 -0
  44. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/execution/sim_broker.py +0 -0
  45. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/fills/__init__.py +0 -0
  46. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/fills/bar_fill.py +0 -0
  47. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/fills/fees.py +0 -0
  48. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/fills/path.py +0 -0
  49. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/harness.py +0 -0
  50. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/indicators/__init__.py +0 -0
  51. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/indicators/base.py +0 -0
  52. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/indicators/library.py +0 -0
  53. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/indicators/talib_adapter.py +0 -0
  54. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/metrics/__init__.py +0 -0
  55. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/metrics/economics.py +0 -0
  56. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/metrics/montecarlo.py +0 -0
  57. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/metrics/overfitting.py +0 -0
  58. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/metrics/stats.py +0 -0
  59. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/metrics/walkforward.py +0 -0
  60. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/metrics/windows.py +0 -0
  61. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/protocols.py +0 -0
  62. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/py.typed +0 -0
  63. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/rules/__init__.py +0 -0
  64. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/rules/kernel.py +0 -0
  65. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/rules/params.py +0 -0
  66. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/strategy/__init__.py +0 -0
  67. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/strategy/base.py +0 -0
  68. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/strategy/symbol.py +0 -0
  69. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/strategy/tracker.py +0 -0
  70. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/tearsheet/__init__.py +0 -0
  71. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/tearsheet/_assets/lightweight-charts.LICENSE +0 -0
  72. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/tearsheet/_assets/lightweight-charts.standalone.production.js +0 -0
  73. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/tearsheet/_assets/tearsheet.css +0 -0
  74. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/src/topstep_backtest/tearsheet/_assets/tearsheet.js +0 -0
  75. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/__init__.py +0 -0
  76. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/conftest.py +0 -0
  77. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/golden/__init__.py +0 -0
  78. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/golden/artifacts/verdict_failed_mll_s50k.json +0 -0
  79. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/golden/artifacts/verdict_passed_s50k.json +0 -0
  80. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/golden/test_combine_kernel.py +0 -0
  81. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/golden/test_facade_equivalence.py +0 -0
  82. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/golden/test_sugar_equivalence.py +0 -0
  83. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/golden/test_verdict_goldens.py +0 -0
  84. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/parity/__init__.py +0 -0
  85. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/parity/test_broker_conformance.py +0 -0
  86. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/property/__init__.py +0 -0
  87. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/property/test_indicator_props.py +0 -0
  88. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/property/test_kernel_props.py +0 -0
  89. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/property/test_money_props.py +0 -0
  90. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/__init__.py +0 -0
  91. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_bar_fill.py +0 -0
  92. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_clean.py +0 -0
  93. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_clock.py +0 -0
  94. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_continuous.py +0 -0
  95. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_data_feed.py +0 -0
  96. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_economics.py +0 -0
  97. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_engine.py +0 -0
  98. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_fees.py +0 -0
  99. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_harness.py +0 -0
  100. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_indicators.py +0 -0
  101. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_instruments.py +0 -0
  102. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_montecarlo.py +0 -0
  103. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_overfitting.py +0 -0
  104. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_path.py +0 -0
  105. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_sim_broker.py +0 -0
  106. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_stats.py +0 -0
  107. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_symbol_strategy.py +0 -0
  108. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_synthetic.py +0 -0
  109. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_talib_adapter_hardening.py +0 -0
  110. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_tearsheet.py +0 -0
  111. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_time.py +0 -0
  112. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_tracker.py +0 -0
  113. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_validator.py +0 -0
  114. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_walkforward.py +0 -0
  115. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_windows.py +0 -0
  116. {topstep_backtest-0.2.1 → topstep_backtest-0.2.2}/tests/unit/test_wrangler.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: topstep-backtest
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: Event-driven backtesting framework for Topstep Trading Combine strategies, with backtest/live parity against topstep-sdk.
5
5
  Author-email: Tarric Sookdeo <tarricsookdeo@outlook.com>
6
6
  License-Expression: MIT
@@ -164,8 +164,8 @@ The same report renders as an **interactive HTML tearsheet** — one self-contai
164
164
  no server and no network, so it opens offline and archives next to the run:
165
165
 
166
166
  ```python
167
- report.to_html("tearsheet.html") # name the file
168
- report.show() # or write a temp file and open a browser
167
+ report.to_html("tearsheet.html") # name the file
168
+ report.show() # or write a temp file and open a browser
169
169
  ```
170
170
 
171
171
  It draws the candlestick tape with every fill marked, the equity curve against the trailing
@@ -268,8 +268,13 @@ built wheel into a clean venv and smoke-tests it. **`ruff format --check` is par
268
268
 
269
269
  There is a full documentation site — a browsable version of everything below, plus a
270
270
  quickstart, a page on reading the report, and an API reference generated from the live
271
- docstrings. The source repository is private, so it is **not hosted publicly**; build and
272
- read it locally from a checkout:
271
+ docstrings:
272
+
273
+ **<https://tarricsookdeo.github.io/topstep-backtest/>**
274
+
275
+ It is rebuilt from `main` on every push. The site is public; the **source repository is
276
+ not**, so there are no "Edit this page" links and there is no public issue tracker. To read
277
+ it offline, or to preview a change before pushing it:
273
278
 
274
279
  ```bash
275
280
  uv run --extra docs mkdocs serve # http://127.0.0.1:8000
@@ -124,8 +124,8 @@ The same report renders as an **interactive HTML tearsheet** — one self-contai
124
124
  no server and no network, so it opens offline and archives next to the run:
125
125
 
126
126
  ```python
127
- report.to_html("tearsheet.html") # name the file
128
- report.show() # or write a temp file and open a browser
127
+ report.to_html("tearsheet.html") # name the file
128
+ report.show() # or write a temp file and open a browser
129
129
  ```
130
130
 
131
131
  It draws the candlestick tape with every fill marked, the equity curve against the trailing
@@ -228,8 +228,13 @@ built wheel into a clean venv and smoke-tests it. **`ruff format --check` is par
228
228
 
229
229
  There is a full documentation site — a browsable version of everything below, plus a
230
230
  quickstart, a page on reading the report, and an API reference generated from the live
231
- docstrings. The source repository is private, so it is **not hosted publicly**; build and
232
- read it locally from a checkout:
231
+ docstrings:
232
+
233
+ **<https://tarricsookdeo.github.io/topstep-backtest/>**
234
+
235
+ It is rebuilt from `main` on every push. The site is public; the **source repository is
236
+ not**, so there are no "Edit this page" links and there is no public issue tracker. To read
237
+ it offline, or to preview a change before pushing it:
233
238
 
234
239
  ```bash
235
240
  uv run --extra docs mkdocs serve # http://127.0.0.1:8000