release: v0.14.0

This commit is contained in:
github-actions[bot]
2026-07-19 02:07:07 +00:00
parent d36bc7ee4c
commit 8bb39852d8
32 changed files with 1410 additions and 120 deletions
+1 -1
View File
@@ -72,4 +72,4 @@ if __name__ == "__main__":
print(result.summary())
print(f"\nElapsed: {perf_counter() - t0:.2f}s")
mbt.plot.tearsheet(result, show=True)
mbt.plot.tearsheet(result)
+1 -1
View File
@@ -75,4 +75,4 @@ if __name__ == "__main__":
print(f"\nElapsed: {elapsed:.3f}s")
# Plot
mbt.plot.summary(result, show=True)
mbt.plot.summary(result)
+1 -1
View File
@@ -63,4 +63,4 @@ if __name__ == "__main__":
print(result.summary())
print(f"\nElapsed: {elapsed:.3f}s")
mbt.plot.summary(result, show=True)
mbt.plot.summary(result)
+1 -1
View File
@@ -70,4 +70,4 @@ if __name__ == "__main__":
print(result.summary())
print(f"\nElapsed: {elapsed:.3f}s")
mbt.plot.summary(result, show=True)
mbt.plot.summary(result)
+1 -1
View File
@@ -101,4 +101,4 @@ if __name__ == "__main__":
print(result.summary())
print(f"\nElapsed: {elapsed:.3f}s")
mbt.plot.summary(result, show=True)
mbt.plot.summary(result)
+1 -1
View File
@@ -71,4 +71,4 @@ if __name__ == "__main__":
print(result.summary())
print(f"\nElapsed: {elapsed:.3f}s")
mbt.plot.summary(result, show=True)
mbt.plot.summary(result)
+13 -14
View File
@@ -92,7 +92,7 @@ if __name__ == "__main__":
)
# -- 3. Summary 3-panel ---------------------------------------------------
mbt.plot.summary(result, show=True)
mbt.plot.summary(result)
# -- 4. Candlestick chart (first symbol in universe) --------------------
mbt.plot.chart(
@@ -101,18 +101,17 @@ if __name__ == "__main__":
smas=[50],
n_bars=120,
interactive=False,
show=True,
)
# -- 5. Individual charts -------------------------------------------------
mbt.plot.equity(result, show=True)
mbt.plot.drawdown(result, show=True)
mbt.plot.monthly_returns(result, show=True)
mbt.plot.annual_returns(result, show=True)
mbt.plot.returns_histogram(result, show=True)
mbt.plot.var_chart(result, show=True)
mbt.plot.rolling_sharpe(result, show=True)
mbt.plot.rolling_volatility(result, show=True)
mbt.plot.equity(result)
mbt.plot.drawdown(result)
mbt.plot.monthly_returns(result)
mbt.plot.annual_returns(result)
mbt.plot.returns_histogram(result)
mbt.plot.var_chart(result)
mbt.plot.rolling_sharpe(result)
mbt.plot.rolling_volatility(result)
# -- 6. Sweep heatmap 2D -------------------------------------------------
# Sweep over RSI period and oversold threshold
@@ -160,7 +159,7 @@ if __name__ == "__main__":
"metric_grid": metric_grid,
}
print(f"Sweep done in {time.perf_counter() - t0:.1f}s")
mbt.plot.heatmap_2d(sweep_result, show=True)
mbt.plot.heatmap_2d(sweep_result)
# -- 7. Walk-forward validation -------------------------------------------
print("\nRunning walk-forward (manual folds)...")
@@ -201,11 +200,11 @@ if __name__ == "__main__":
"folds": wf_folds,
}
print(f"Walk-forward done in {time.perf_counter() - t0:.1f}s")
mbt.plot.walk_forward(wf_result, show=True)
mbt.plot.walk_forward(wf_result)
# -- 8. Monte Carlo -------------------------------------------------------
print("\nRunning Monte Carlo (1000 paths)...")
mbt.plot.monte_carlo(result, n_simulations=1000, seed=42, show=True)
mbt.plot.monte_carlo(result, n_simulations=1000, seed=42)
# -- 9. Parameter stability -----------------------------------------------
print("\nRunning stability analysis (RSI period)...")
@@ -241,7 +240,7 @@ if __name__ == "__main__":
"stability_score": 1.0 - (std_m / abs(mean_m)) if mean_m != 0 else 0.0,
}
print(f"Stability done in {time.perf_counter() - t0:.1f}s")
mbt.plot.stability(stab_result, show=True)
mbt.plot.stability(stab_result)
# -- 10. Research report (composite) --------------------------------------
print("\nGenerating research report...")
+1 -1
View File
@@ -93,4 +93,4 @@ if __name__ == "__main__":
print(f"\n{len(folds)} folds in {elapsed:.2f}s")
if folds:
mbt.plot.walk_forward({"optimize_metric": metric, "folds": folds}, show=True)
mbt.plot.walk_forward({"optimize_metric": metric, "folds": folds})
+1 -1
View File
@@ -87,4 +87,4 @@ if __name__ == "__main__":
"y_values": slow_values,
"metric": "t-stat(alpha)",
"metric_grid": metric_grid,
}, show=True)
})
+1 -1
View File
@@ -84,4 +84,4 @@ if __name__ == "__main__":
"y_values": slow_values,
"metric": "t-stat(alpha)",
"metric_grid": metric_grid,
}, show=True)
})
+1 -1
View File
@@ -66,4 +66,4 @@ if __name__ == "__main__":
print(f"Elapsed: {time.perf_counter() - t0:.3f}s\n")
# 2. Monte Carlo fan chart
mbt.plot.monte_carlo(result, n_simulations=10000, seed=42, show=True)
mbt.plot.monte_carlo(result, n_simulations=10000, seed=42)
+1 -1
View File
@@ -72,4 +72,4 @@ if __name__ == "__main__":
print(result.summary())
print(f"\nElapsed: {elapsed:.3f}s")
mbt.plot.tearsheet(result, show=True)
mbt.plot.tearsheet(result)
-1
View File
@@ -141,5 +141,4 @@ if __name__ == "__main__":
mbt.plot.stochastic_paths(
result,
title=f"Mean-reverting model (S0=80, target=100, {N_PLOT:,} paths)",
show=True,
)
+1 -1
View File
@@ -83,4 +83,4 @@ if __name__ == "__main__":
print(result.summary())
print(f"\nElapsed: {elapsed:.3f}s")
mbt.plot.equity(result, show=True)
mbt.plot.equity(result)
+1 -1
View File
@@ -105,4 +105,4 @@ if __name__ == "__main__":
print(result.summary())
print(f"\nElapsed: {elapsed:.3f}s")
result.plot_equity(show=True)
result.plot_equity()
+1 -1
View File
@@ -211,4 +211,4 @@ if __name__ == "__main__":
print(result.summary())
print(f"\nElapsed: {elapsed:.3f}s")
result.plot_equity(show=True)
result.plot_equity()