rob
6821f821e1
Implement execution loop, paper persistence, and CI pipeline
...
Strategy Execution Loop:
- Add tick() method to StrategyInstance for price-driven execution
- Add update() method to Strategies for iterating active instances
- Enable execution loop in received_cdata() to process candle updates
- Add PaperStrategyInstance.tick() with broker price updates
Paper Trading Persistence:
- Add Position.to_dict()/from_dict() for serialization
- Add PaperBroker state persistence (save_state/load_state)
- Add _ensure_persistence_cache() with DB schema migration
- Auto-load/save broker state in PaperStrategyInstance
Runtime Fixes (from Codex review):
- Fix get_user_info() signature mismatch in start_strategy
- Fix live/paper mode handling for stop operations
- Normalize fill event payload (filled_qty/filled_price keys)
- Remove double broker update path (delegate to tick)
- Prevent runtime events from polluting strategy list in UI
CI Pipeline:
- Add GitHub Actions workflow (.github/workflows/test.yml)
- Python 3.12 with TA-Lib dependency
- Syntax checks and 5 critical test suites
Tests: 85 passed
- test_strategy_execution.py (16 tests)
- test_execution_loop.py (17 tests)
- test_paper_persistence.py (19 tests)
- test_backtest_determinism.py (13 tests)
- test_brokers.py (18 tests)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-28 19:48:50 -04:00
rob
e245f80e18
Phase 1: Repair runtime breakpoints
...
- Fix set_new_candle() to update cached candle instead of raising
- Fix trades.update() type mismatch: pass {symbol: price} dict
- Fix StrategyInstance.trades collision: rename list to trade_history
- Add missing ExchangeInterface methods for trade status/qty/price
- Add get_user_balance stub for paper trading
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-28 16:47:13 -04:00
rob
34637df478
Phase 0: Stabilize baseline
...
- Security: Move API keys to environment variables in config.py
- Portability: Use cross-platform path resolution for DB_FILE
- Add config.example.py template for developers
- Fix Windows path in ExchangeInterface.get_public_exchanges()
- Add cached_last_candle attribute to Candles class
- Add pytest configuration (pytest.ini, conftest.py)
- Fix test imports for DataCache_v3
- Include identity compatibility layer (user_name/user_id resolution)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-28 16:44:11 -04:00
Rob
dab122d15f
A lot of stuff is fixed. The strategies need to reflect the stats in the ui.
2024-11-20 01:38:46 -04:00
Rob
e1516a80cf
A lot of stuff is fixed. only issues at the moment are that errors during testing are not displayed in the ui and the strategies need to reflect the stats.
2024-11-20 00:18:01 -04:00
Rob
2c644147a4
I repaired the sinup and signin parts. I changed a bunch of javascript in strategies.js. there is an error that pops up when webtools is open.
2024-11-18 10:25:08 -04:00
Rob
9d830fe8fa
Strtegies submit an are editable.
2024-11-05 12:02:50 -04:00
Rob
5110c8b434
I adjusted the block definitions and expanded them. The generator definitions have been updated but are not tested.
2024-10-21 13:37:05 -03:00
Rob
c7b7a47129
I played around with the blocks and i think i have it correct now.
2024-10-16 00:21:43 -03:00
Rob
232d479827
nearly all core functionality is flushed out.
2024-10-13 01:23:26 -03:00
Rob
4eda0b6f81
The strategies class is broken into smaller classes. I believe the ui is mostly functional at this point. It is time to get the tests working.
2024-10-10 17:05:07 -03:00
Rob
89e0f8b849
I decoupled the comms class from a few other classes. I updated some of the ui in regard to this indicator readouts. An just about to attempt to break up the strategies class.
2024-10-09 09:09:52 -03:00
Rob
86843e8cb4
Strategies is now fixed and I am ready to implement backtesting.
2024-09-25 14:27:56 -03:00
Rob
adedaaa540
Getting closer to a beta. woot woot. there is a problem with created strategies only displaying two of the ones in the database
2024-09-24 23:43:13 -03:00
Rob
4e3e8e5abf
The strategy popup is now draggable and resizeable.
2024-09-23 16:38:22 -03:00
Rob
f1d0f2a4b1
Indicators are fixed after last update.
2024-09-18 13:47:07 -03:00
Rob
1ff21b56dd
Made a lot of changes to DataCache indicator data is not being saved to the database.
2024-09-15 14:05:08 -03:00
Rob
73ed1a092a
got all the indicators working again
2024-09-08 04:04:58 -03:00
Rob
b666ec22af
Extended DataCache with indicator caching functionality. All DataCache tests pass.
2024-09-07 19:51:01 -03:00
Rob
a16cc542d2
Refactored DataCache, again. Implemented more advance cache management. All DataCache tests pass.
2024-08-25 10:25:08 -03:00
Rob
8361efd965
Refactored DataCache, Database and Users. All db interactions are now all inside Database. All data request from Users now go through DataCache. Expanded DataCache test to include all methods. All DataCache tests pass.
2024-08-19 23:10:13 -03:00
Rob
439c852cf5
Fixed an issue where the client asked for too many records and was not receiving them. Also ensured that much of the code is dealing with timezones proactively.
2024-08-16 15:51:15 -03:00
Rob
c398a423a3
implemented tests for Exchangeinterface.py
2024-08-04 02:06:23 -03:00
Rob
4130e0ca9a
Completed unittests for Database and DataCache.
2024-08-03 16:56:13 -03:00
Rob
0b1ad39476
Fixed query_uptodate function and added comprehensive test cases
2024-08-02 01:36:45 -03:00
Rob
b699bd950e
Updated project structure and staged modified files
2024-07-25 08:21:15 -03:00