605faf5310
Add cluster audit pipeline, united EA updates, brochure generators, and publication hygiene (gitignore, MT5 path desensitization, pre-upload scan). Remove tracked reports, models, and binary artifacts from the repo. Co-authored-by: Cursor <cursoragent@cursor.com>
Factor Strategy Tester (MT5-style workflow)
Python app scaffold that mirrors the MT5 Strategy Tester flow for factor investing:
- Single run backtest
- Parameter optimization (grid search)
- Inputs panel + report panel
- Custom factor expressions with safe operators
- Pluggable strategy engines
Quick start
cd strategy-tester
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
streamlit run app.py
Current capabilities
- Upload CSV with at least:
dateassetclose- feature columns (e.g.
pe,momentum_12m,quality)
- Define factor score expression, e.g.:
(z(momentum_12m) + z(quality) - z(volatility_20d)) / 3
- Rebalance by period and choose top/bottom quantiles
- Long-only or long-short portfolio simulation
- Optimize selected parameters and rank by Sharpe/Return/Drawdown
Expression language
Supported:
- Arithmetic:
+ - * / ** - Comparisons:
> >= < <= == != - Boolean:
and or not - Parentheses
- Functions:
abs(x),log(x),sqrt(x)z(x)(cross-sectional z-score per date)rank(x)(cross-sectional percentile rank per date)clip(x, lo, hi)
The parser is AST-validated (no raw eval).
Architecture
factor_tester/expressions.py: safe expression compiler/evaluatorfactor_tester/engine.py: backtest engine API + default cross-sectional factor enginefactor_tester/optimize.py: optimization runnerfactor_tester/data.py: CSV loading and validationapp.py: Streamlit UI
Next steps
- Walk-forward optimization
- Transaction costs/slippage model
- Multi-factor blend templates (value/size/momentum/quality/low-vol)
- Job queue / parallel optimization workers