Python API Reference¶
pysigc: Python bindings for sigc.
Installation¶
Quick Start¶
Python
import pysigc
# Run a strategy
results = pysigc.run("momentum.sig")
# Access metrics
print(f"Sharpe: {results.sharpe_ratio:.2f}")
print(f"Return: {results.total_return:.1%}")
Running Strategies¶
Basic Run¶
With Parameters¶
With Date Range¶
With Configuration¶
Accessing Results¶
Metrics¶
Python
# Returns
total_return = results.total_return
annual_return = results.annual_return
# Risk
volatility = results.annual_volatility
max_drawdown = results.max_drawdown
# Risk-adjusted
sharpe = results.sharpe_ratio
sortino = results.sortino_ratio
As DataFrames¶
Python
import pandas as pd
# Weights over time
weights: pd.DataFrame = results.weights
# Daily returns
returns: pd.Series = results.daily_returns
# Positions
positions: pd.DataFrame = results.positions
Parameter Optimization¶
Grid Search¶
Python
results = pysigc.optimize(
"strategy.sig",
params={
"lookback": [20, 40, 60, 80],
"top_pct": [0.15, 0.20, 0.25]
},
metric="sharpe"
)
print(f"Best params: {results.best_params}")
print(f"Best Sharpe: {results.best_metric:.2f}")
Walk-Forward¶
Python
results = pysigc.walk_forward(
"strategy.sig",
train_years=5,
test_years=1,
params={
"lookback": [40, 60, 80]
}
)
print(f"Out-of-sample Sharpe: {results.oos_sharpe:.2f}")
Signal Computation¶
Get Signal Values¶
Python
signals = pysigc.compute_signals("strategy.sig")
momentum = signals["momentum"] # pd.DataFrame
print(momentum.head())
Custom Signal¶
Python
# Compute signal for custom data
import pandas as pd
prices = pd.read_parquet("prices.parquet")
signal = pysigc.compute_signal(
"zscore(ret(prices, 60))",
data={"prices": prices}
)
Data Handling¶
Load Data¶
Convert Formats¶
Jupyter Integration¶
Display Results¶
Python
from pysigc import display
# Pretty print results
display.summary(results)
# Plot performance
display.plot_cumulative(results)
display.plot_drawdown(results)
Interactive Dashboard¶
API Reference¶
Functions¶
| Function | Description |
|---|---|
run(strategy, **kwargs) |
Run backtest |
optimize(strategy, params, metric) |
Parameter optimization |
walk_forward(strategy, ...) |
Walk-forward validation |
compute_signals(strategy) |
Get signal values |
load_data(path) |
Load data file |
Results Object¶
| Attribute | Type | Description |
|---|---|---|
sharpe_ratio |
float | Sharpe ratio |
total_return |
float | Total return |
max_drawdown |
float | Maximum drawdown |
weights |
DataFrame | Weight time series |
daily_returns |
Series | Daily returns |