mirror of
https://ghfast.top/https://github.com/aeroxw/easy_tdx_max.git
synced 2026-09-12 15:44:18 +08:00
- Add backtest/combo.py: CombinationRunner, extract_factor_signals, combine_masks - Signal merge modes: AND / OR / MAJORITY (majority default) - CLI: --combo-strategies and --combo-mode for easy-tdx backtest - run_all_strategies.py: --combo 2 --combo 3 auto-screen best combos - Fix MyTT MFI/CR divide-by-zero RuntimeWarning - 14 new unit tests, 328 total passing
282 lines
6.3 KiB
JSON
282 lines
6.3 KiB
JSON
{
|
|
"version": "1.0.0",
|
|
"lastScanned": 1780948623576,
|
|
"projectRoot": "D:\\python\\easy_tdx",
|
|
"techStack": {
|
|
"languages": [
|
|
{
|
|
"name": "Python",
|
|
"version": null,
|
|
"confidence": "high",
|
|
"markers": [
|
|
"pyproject.toml"
|
|
]
|
|
}
|
|
],
|
|
"frameworks": [
|
|
{
|
|
"name": "pytest",
|
|
"version": null,
|
|
"category": "testing"
|
|
}
|
|
],
|
|
"packageManager": null,
|
|
"runtime": null
|
|
},
|
|
"build": {
|
|
"buildCommand": null,
|
|
"testCommand": "python -m pytest tests/unit/ -q --tb=line 2>&1 | tail -5",
|
|
"lintCommand": "ruff check",
|
|
"devCommand": null,
|
|
"scripts": {}
|
|
},
|
|
"conventions": {
|
|
"namingStyle": null,
|
|
"importStyle": null,
|
|
"testPattern": null,
|
|
"fileOrganization": null
|
|
},
|
|
"structure": {
|
|
"isMonorepo": false,
|
|
"workspaces": [],
|
|
"mainDirectories": [
|
|
"docs",
|
|
"examples",
|
|
"scripts",
|
|
"src",
|
|
"tests"
|
|
],
|
|
"gitBranches": {
|
|
"defaultBranch": "main",
|
|
"branchingStrategy": null
|
|
}
|
|
},
|
|
"customNotes": [],
|
|
"directoryMap": {
|
|
"dist": {
|
|
"path": "dist",
|
|
"purpose": "Distribution/build output",
|
|
"fileCount": 2,
|
|
"lastAccessed": 1780948623545,
|
|
"keyFiles": [
|
|
"easy_tdx-1.0.0-py3-none-any.whl",
|
|
"easy_tdx-1.0.0.tar.gz"
|
|
]
|
|
},
|
|
"docs": {
|
|
"path": "docs",
|
|
"purpose": "Documentation",
|
|
"fileCount": 8,
|
|
"lastAccessed": 1780948623545,
|
|
"keyFiles": [
|
|
"api_reference.md",
|
|
"conf.py",
|
|
"field_mapping.md",
|
|
"index.md",
|
|
"indicator-bias-signal.md"
|
|
]
|
|
},
|
|
"examples": {
|
|
"path": "examples",
|
|
"purpose": "Example code",
|
|
"fileCount": 0,
|
|
"lastAccessed": 1780948623546,
|
|
"keyFiles": []
|
|
},
|
|
"scripts": {
|
|
"path": "scripts",
|
|
"purpose": "Build/utility scripts",
|
|
"fileCount": 4,
|
|
"lastAccessed": 1780948623547,
|
|
"keyFiles": [
|
|
"probe_unknowns.py",
|
|
"ruff_hook.py",
|
|
"verify_fixes_20260415.py",
|
|
"__init__.py"
|
|
]
|
|
},
|
|
"src": {
|
|
"path": "src",
|
|
"purpose": "Source code",
|
|
"fileCount": 0,
|
|
"lastAccessed": 1780948623548,
|
|
"keyFiles": []
|
|
},
|
|
"tests": {
|
|
"path": "tests",
|
|
"purpose": "Test files",
|
|
"fileCount": 1,
|
|
"lastAccessed": 1780948623549,
|
|
"keyFiles": [
|
|
"__init__.py"
|
|
]
|
|
},
|
|
"venv": {
|
|
"path": "venv",
|
|
"purpose": null,
|
|
"fileCount": 2,
|
|
"lastAccessed": 1780948623550,
|
|
"keyFiles": [
|
|
"pyvenv.cfg"
|
|
]
|
|
},
|
|
"tests\\fixtures": {
|
|
"path": "tests\\fixtures",
|
|
"purpose": "Test fixtures",
|
|
"fileCount": 24,
|
|
"lastAccessed": 1780948623554,
|
|
"keyFiles": [
|
|
"company_info_category.hex",
|
|
"company_info_category.json",
|
|
"company_info_content.hex"
|
|
]
|
|
},
|
|
"venv\\Lib": {
|
|
"path": "venv\\Lib",
|
|
"purpose": "Library code",
|
|
"fileCount": 0,
|
|
"lastAccessed": 1780948623555,
|
|
"keyFiles": []
|
|
},
|
|
"venv\\Scripts": {
|
|
"path": "venv\\Scripts",
|
|
"purpose": "Build/utility scripts",
|
|
"fileCount": 25,
|
|
"lastAccessed": 1780948623555,
|
|
"keyFiles": [
|
|
"activate",
|
|
"activate.bat",
|
|
"activate.fish"
|
|
]
|
|
}
|
|
},
|
|
"hotPaths": [
|
|
{
|
|
"path": "src\\easy_tdx\\backtest\\cli.py",
|
|
"accessCount": 14,
|
|
"lastAccessed": 1781024440572,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "run_all_strategies.py",
|
|
"accessCount": 13,
|
|
"lastAccessed": 1781024439395,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "src\\easy_tdx\\MyTT.py",
|
|
"accessCount": 9,
|
|
"lastAccessed": 1781025723850,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "README.md",
|
|
"accessCount": 4,
|
|
"lastAccessed": 1781026610801,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "src\\easy_tdx\\backtest\\combo.py",
|
|
"accessCount": 3,
|
|
"lastAccessed": 1781023715594,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "src\\easy_tdx\\backtest\\__init__.py",
|
|
"accessCount": 3,
|
|
"lastAccessed": 1781023799015,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "tests\\unit\\test_backtest_combo.py",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1781023758085,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "src\\easy_tdx\\backtest\\strategy.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021955703,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "src\\easy_tdx\\backtest\\engine.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021956588,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "src\\easy_tdx\\backtest\\types.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021957067,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "src\\easy_tdx\\backtest\\dsl.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021962044,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "strategies\\ma_cross.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021963164,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "strategies\\macd_cross.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021963925,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "strategies\\rsi_reversal.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021964466,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "strategies\\bollinger_breakout.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021964950,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "src\\easy_tdx\\backtest\\performance.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021974264,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "strategies\\turtle_breakout.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781021982151,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "C:\\Users\\毛利哥\\.claude\\plans\\2-3-deep-melody.md",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781022126312,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "tests\\unit\\test_backtest_strategy.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781023334642,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "tests\\unit\\test_backtest_engine.py",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781023335435,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "pyproject.toml",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1781026550566,
|
|
"type": "file"
|
|
}
|
|
],
|
|
"userDirectives": []
|
|
} |