334 lines
13 KiB
JSON
334 lines
13 KiB
JSON
{
|
|
"$schema": "./ledger.schema.json",
|
|
"entries": [
|
|
{
|
|
"id": "20250101-1200-project-scaffold",
|
|
"actor": "agent:cursor",
|
|
"intent": "Scaffold complete LSTM trading bot project structure",
|
|
"inputs": {
|
|
"timeframes": ["15m", "30m", "1h", "2h"],
|
|
"symbols": ["EURUSD", "BTCUSD", "ETHUSD"],
|
|
"architecture": "multi_lstm_fusion",
|
|
"framework": "pytorch"
|
|
},
|
|
"relatedFiles": [
|
|
"config/config.yaml",
|
|
"requirements.txt",
|
|
"src/utils/config.py",
|
|
"src/utils/logging.py",
|
|
"src/utils/seeds.py",
|
|
"src/utils/times.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "Project structure created with all major components",
|
|
"notes": [
|
|
"Set up basic project structure with directories and config files",
|
|
"Created comprehensive configuration system",
|
|
"Implemented utility modules for logging, seeds, and time handling"
|
|
],
|
|
"fingerprint": "sha256:scaffold_project_structure_2025"
|
|
},
|
|
{
|
|
"id": "20250101-1300-data-pipeline",
|
|
"actor": "agent:cursor",
|
|
"intent": "Implement data loading and feature engineering pipeline",
|
|
"inputs": {
|
|
"sources": ["csv", "alpaca", "binance", "oanda"],
|
|
"features": ["rsi", "macd", "bollinger_bands", "lagged_returns"],
|
|
"timeframes": ["15m", "30m", "1h", "2h"]
|
|
},
|
|
"relatedFiles": [
|
|
"src/data/loaders.py",
|
|
"src/features/build_dataset.py",
|
|
"src/features/indicators.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "Data pipeline implemented with multi-source support and comprehensive feature engineering",
|
|
"notes": [
|
|
"Created pluggable data loaders for multiple exchanges",
|
|
"Implemented technical indicators and feature engineering",
|
|
"Added data leakage protection and multi-timeframe alignment"
|
|
],
|
|
"fingerprint": "sha256:data_pipeline_implementation_2025"
|
|
},
|
|
{
|
|
"id": "20250101-1400-lstm-models",
|
|
"actor": "agent:cursor",
|
|
"intent": "Create LSTM model architectures with fusion strategies",
|
|
"inputs": {
|
|
"architectures": ["single_lstm", "multi_lstm_fusion"],
|
|
"fusion_strategies": ["concatenate", "attention", "dense"],
|
|
"output_modes": ["regression", "classification"]
|
|
},
|
|
"relatedFiles": [
|
|
"src/models/lstm_fusion.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "LSTM model architectures implemented with multiple fusion strategies",
|
|
"notes": [
|
|
"Created single LSTM and multi-LSTM fusion architectures",
|
|
"Implemented attention mechanisms and layer normalization",
|
|
"Added support for regression and classification outputs"
|
|
],
|
|
"fingerprint": "sha256:lstm_model_architectures_2025"
|
|
},
|
|
{
|
|
"id": "20250101-1500-training-framework",
|
|
"actor": "agent:cursor",
|
|
"intent": "Build training framework with Optuna optimization",
|
|
"inputs": {
|
|
"optimizer": "optuna",
|
|
"trials": 50,
|
|
"metrics": ["sharpe", "max_drawdown", "accuracy"],
|
|
"validation": "walk_forward"
|
|
},
|
|
"relatedFiles": [
|
|
"src/training/train.py",
|
|
"src/training/metrics.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "Training framework implemented with hyperparameter optimization",
|
|
"notes": [
|
|
"Created comprehensive training pipeline with early stopping",
|
|
"Implemented Optuna-based hyperparameter optimization",
|
|
"Added trading-specific metrics and validation strategies"
|
|
],
|
|
"fingerprint": "sha256:training_framework_optuna_2025"
|
|
},
|
|
{
|
|
"id": "20250101-1600-backtesting-engine",
|
|
"actor": "agent:cursor",
|
|
"intent": "Implement backtesting engine with risk management",
|
|
"inputs": {
|
|
"framework": "backtrader",
|
|
"slippage": 0.0001,
|
|
"commission": 0.0002,
|
|
"risk_management": true
|
|
},
|
|
"relatedFiles": [
|
|
"src/backtest/engine.py",
|
|
"src/backtest/strategy.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "Backtesting engine implemented with realistic trading conditions",
|
|
"notes": [
|
|
"Integrated backtrader for realistic backtesting",
|
|
"Added risk management and position sizing",
|
|
"Implemented comprehensive performance analysis"
|
|
],
|
|
"fingerprint": "sha256:backtesting_engine_backtrader_2025"
|
|
},
|
|
{
|
|
"id": "20250101-1700-live-execution",
|
|
"actor": "agent:cursor",
|
|
"intent": "Create live execution system with broker abstraction",
|
|
"inputs": {
|
|
"brokers": ["alpaca", "oanda", "binance"],
|
|
"streaming": "websocket",
|
|
"execution_modes": ["paper", "live"]
|
|
},
|
|
"relatedFiles": [
|
|
"src/live/broker_base.py",
|
|
"src/live/broker_alpaca.py",
|
|
"src/live/streamer.py",
|
|
"src/live/executor.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "Live execution system implemented with multiple broker support",
|
|
"notes": [
|
|
"Created broker abstraction layer for multiple exchanges",
|
|
"Implemented real-time streaming and execution",
|
|
"Added paper and live trading modes"
|
|
],
|
|
"fingerprint": "sha256:live_execution_system_2025"
|
|
},
|
|
{
|
|
"id": "20250101-1800-risk-management",
|
|
"actor": "agent:cursor",
|
|
"intent": "Implement comprehensive risk management system",
|
|
"inputs": {
|
|
"position_sizing": "kelly_criterion",
|
|
"circuit_breakers": true,
|
|
"max_drawdown": 0.15,
|
|
"daily_loss_limit": 0.05
|
|
},
|
|
"relatedFiles": [
|
|
"src/live/risk_manager.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "Risk management system implemented with circuit breakers",
|
|
"notes": [
|
|
"Created position sizing strategies including Kelly criterion",
|
|
"Implemented circuit breakers for excessive drawdown and losses",
|
|
"Added comprehensive risk monitoring and alerts"
|
|
],
|
|
"fingerprint": "sha256:risk_management_system_2025"
|
|
},
|
|
{
|
|
"id": "20250101-1900-cli-entrypoints",
|
|
"actor": "agent:cursor",
|
|
"intent": "Create CLI entrypoints for all major functions",
|
|
"inputs": {
|
|
"commands": ["data", "features", "training", "backtest", "live"],
|
|
"main_dispatcher": "main.py"
|
|
},
|
|
"relatedFiles": [
|
|
"main.py",
|
|
"src/data/loaders_cli.py",
|
|
"src/features/build_dataset_cli.py",
|
|
"src/training/train_cli.py",
|
|
"src/backtest/engine_cli.py",
|
|
"src/live/executor_cli.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "CLI entrypoints created for all major functions",
|
|
"notes": [
|
|
"Implemented command-line interfaces for all major operations",
|
|
"Created unified main.py dispatcher",
|
|
"Added comprehensive help and usage examples"
|
|
],
|
|
"fingerprint": "sha256:cli_entrypoints_all_functions_2025"
|
|
},
|
|
{
|
|
"id": "20250101-2000-colab-notebooks",
|
|
"actor": "agent:cursor",
|
|
"intent": "Create Colab notebooks for research and paper trading",
|
|
"inputs": {
|
|
"notebooks": [
|
|
"01_data_eda.ipynb",
|
|
"02_train_optuna.ipynb",
|
|
"03_backtest.ipynb",
|
|
"04_live_trading.ipynb"
|
|
]
|
|
},
|
|
"relatedFiles": [
|
|
"notebooks/01_data_eda.ipynb",
|
|
"notebooks/02_train_optuna.ipynb",
|
|
"notebooks/03_backtest.ipynb",
|
|
"notebooks/04_live_trading.ipynb"
|
|
],
|
|
"status": "done",
|
|
"evidence": "Colab notebooks created for complete workflow",
|
|
"notes": [
|
|
"Created step-by-step notebooks for data exploration",
|
|
"Implemented training notebooks with Optuna optimization",
|
|
"Added backtesting and live trading notebooks"
|
|
],
|
|
"fingerprint": "sha256:colab_notebooks_workflow_2025"
|
|
},
|
|
{
|
|
"id": "20250101-2100-documentation",
|
|
"actor": "agent:cursor",
|
|
"intent": "Write comprehensive documentation and setup guides",
|
|
"inputs": {
|
|
"files": ["README.md", "docs/agents/ledger.json", "docs/agents/ledger.schema.json"]
|
|
},
|
|
"relatedFiles": [
|
|
"README.md"
|
|
],
|
|
"status": "done",
|
|
"evidence": "Comprehensive documentation created including README and agent ledger",
|
|
"notes": [
|
|
"Created detailed README with installation and usage instructions",
|
|
"Implemented agent ledger for tracking development progress",
|
|
"Added setup guides for Colab and Linux server deployment"
|
|
],
|
|
"fingerprint": "sha256:comprehensive_documentation_2025"
|
|
},
|
|
{
|
|
"id": "20260608-1505-tradelocker-live-fixes",
|
|
"actor": "agent:cursor",
|
|
"intent": "Fix live trading syntax/runtime issues and add TradeLocker broker support",
|
|
"inputs": {
|
|
"brokers": ["alpaca", "tradelocker"],
|
|
"targets": [
|
|
"main.py",
|
|
"requirements.txt",
|
|
"src/live/executor.py",
|
|
"src/live/executor_cli.py",
|
|
"src/live/broker_tradelocker.py",
|
|
"src/utils/config.py",
|
|
"src/utils/logging.py",
|
|
"src/live/risk_manager.py",
|
|
"src/backtest/engine.py",
|
|
"src/backtest/engine_cli.py",
|
|
"src/backtest/strategy.py"
|
|
]
|
|
},
|
|
"relatedFiles": [
|
|
"main.py",
|
|
"requirements.txt",
|
|
"src/live/executor.py",
|
|
"src/live/executor_cli.py",
|
|
"src/live/broker_tradelocker.py",
|
|
"src/utils/config.py",
|
|
"src/utils/logging.py",
|
|
"src/live/risk_manager.py",
|
|
"src/backtest/engine.py",
|
|
"src/backtest/engine_cli.py",
|
|
"src/backtest/strategy.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "python3 -m py_compile $(rg --files -g '*.py') passed and venv imports succeeded after installing requirements",
|
|
"notes": [
|
|
"Added TradeLocker broker adapter with JWT authentication, account discovery, order placement, and market-data helpers",
|
|
"Fixed malformed f-strings across live trading, backtesting, and structured logging",
|
|
"Updated the CLI dispatcher so nested commands forward their original arguments correctly",
|
|
"Added the missing ta dependency and TradeLocker config fields to align YAML with runtime settings"
|
|
],
|
|
"fingerprint": "sha256:tradelocker_live_fixes_20260608"
|
|
},
|
|
{
|
|
"id": "20260608-1645-tradelocker-studio-standalone",
|
|
"actor": "agent:cursor",
|
|
"intent": "Create a single-file TradeLocker Studio bot strategy for direct paste into the bot code window",
|
|
"inputs": {
|
|
"style": "standalone_backtrader_strategy",
|
|
"strategy": "macd_crossover",
|
|
"imports": ["backtrader"]
|
|
},
|
|
"relatedFiles": [
|
|
"tradelocker_studio_macd_strategy.py",
|
|
"README.md"
|
|
],
|
|
"status": "done",
|
|
"evidence": "Created paste-ready standalone TradeLocker Studio strategy file",
|
|
"notes": [
|
|
"Avoids local project imports so it can run inside the single TradeLocker Studio code window",
|
|
"Uses custom crossover logic and basic stop-loss/take-profit management",
|
|
"Documented the .env setup separately for the repo-based bot"
|
|
],
|
|
"fingerprint": "sha256:tradelocker_studio_standalone_20260608"
|
|
},
|
|
{
|
|
"id": "20260608-2047-tradelocker-studio-tuning",
|
|
"actor": "agent:codex",
|
|
"intent": "Tune TradeLocker Studio EUR/USD 15m strategy after weak flat-to-negative backtest results",
|
|
"inputs": {
|
|
"symbol": "EURUSD",
|
|
"timeframe": "15m",
|
|
"issues": [
|
|
"RSI exhaustion entries",
|
|
"weekend gap entries",
|
|
"fast trend-break churn"
|
|
]
|
|
},
|
|
"relatedFiles": [
|
|
"tradelocker_studio_macd_strategy.py"
|
|
],
|
|
"status": "done",
|
|
"evidence": "python3 -m py_compile tradelocker_studio_macd_strategy.py and git diff --check passed",
|
|
"notes": [
|
|
"Added RSI upper/lower bounds to avoid chasing overextended EUR/USD 15m moves",
|
|
"Added EMA-gap and ATR-percent filters so entries require trend separation and volatility",
|
|
"Blocked fresh entries during Friday/weekend/Monday-open dead zones",
|
|
"Widened ATR exits and delayed trend-break/reversal exits until the minimum hold period",
|
|
"Added v2 internal parameters so TradeLocker cached UI values do not silently override the new tuning",
|
|
"Changed entries from pure MACD crossovers to trend-continuation breakouts with max fast-EMA distance and trailing protection",
|
|
"Added v3 exit defaults after the 2013 EUR/USD run showed fast-EMA trend-break exits were cutting many trades before ATR targets/stops could work",
|
|
"Added v4 entry-hour filter after the latest 2013 EUR/USD run showed profitable trades clustering around 13:00-17:59 while early and late entries caused most losses"
|
|
],
|
|
"fingerprint": "sha256:tradelocker_studio_tuning_20260608"
|
|
}
|
|
]
|
|
}
|