Initial strategy32 research and live runtime
This commit is contained in:
39
scripts/run_adverse_regime_engine_search.py
Normal file
39
scripts/run_adverse_regime_engine_search.py
Normal file
@@ -0,0 +1,39 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
PACKAGE_PARENT = Path(__file__).resolve().parents[2]
|
||||
if str(PACKAGE_PARENT) not in sys.path:
|
||||
sys.path.insert(0, str(PACKAGE_PARENT))
|
||||
|
||||
from strategy32.research.adverse_regime import run_adverse_regime_search
|
||||
|
||||
|
||||
def main() -> None:
|
||||
payload = run_adverse_regime_search(
|
||||
cache_path="/tmp/strategy32_fixed66_bundle.pkl",
|
||||
eval_days=1825,
|
||||
initial_capital=1000.0,
|
||||
)
|
||||
out = Path("/tmp/strategy32_adverse_regime_engine_search.json")
|
||||
out.write_text(json.dumps(payload, indent=2), encoding="utf-8")
|
||||
|
||||
for regime, rows in payload["by_regime"].items():
|
||||
print(regime)
|
||||
for row in rows:
|
||||
print(
|
||||
" ",
|
||||
row["name"],
|
||||
f"ret={float(row['total_return']) * 100:.2f}%",
|
||||
f"sharpe={float(row['sharpe']):.2f}",
|
||||
f"mdd={float(row['max_drawdown']) * 100:.2f}%",
|
||||
f"active={float(row['active_bar_ratio']) * 100:.2f}%",
|
||||
f"rebalance={int(row['rebalance_count'])}",
|
||||
)
|
||||
print(f"wrote {out}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user