Configuration Reference¶
Complete reference for sigc configuration options.
Configuration File¶
sigc uses YAML configuration files:
YAML
# config.yaml
data:
source: "prices.parquet"
format: parquet
performance:
parallel:
enabled: true
workers: 8
daemon:
enabled: true
schedule:
- cron: "0 16 * * 1-5"
action: compute_weights
Data Configuration¶
Source Options¶
YAML
data:
# Local file
source: "path/to/data.parquet"
# S3
source: "s3://bucket/path/data.parquet"
# PostgreSQL
source: "postgres://user:pass@host:5432/db"
# Yahoo Finance
source: "yahoo://AAPL,GOOGL,MSFT"
format: parquet # csv, parquet, arrow, sql
Column Mapping¶
YAML
data:
columns:
date: Date
ticker: Symbol
close: Numeric as prices
volume: Numeric as volume
sector: Category as sectors
Filters¶
Performance Configuration¶
Parallelism¶
Memory¶
YAML
performance:
memory:
max_memory_gb: 16
target_memory_gb: 12
memory_map:
enabled: true
max_mapped_size_gb: 50
Incremental¶
Daemon Configuration¶
Basic Daemon¶
YAML
daemon:
enabled: true
pid_file: "/var/run/sigc/strategy.pid"
log_file: "/var/log/sigc/strategy.log"
Schedule¶
YAML
daemon:
schedule:
- cron: "30 15 * * 1-5"
action: compute_weights
timezone: "America/New_York"
- cron: "55 15 * * 1-5"
action: execute_trades
Actions¶
| Action | Description |
|---|---|
compute_weights |
Calculate target weights |
execute_trades |
Send orders to broker |
reconcile |
Check positions match |
report |
Generate report |
Risk Configuration¶
Limits¶
YAML
risk:
limits:
max_position: 0.03
max_sector: 0.20
gross_exposure: 2.0
net_exposure: [-0.1, 0.1]
max_turnover: 0.25
Loss Limits¶
Safety Configuration¶
Pre-Trade Checks¶
Circuit Breakers¶
Broker Configuration¶
Alpaca¶
YAML
broker:
name: alpaca
paper: true
credentials:
api_key: ${ALPACA_API_KEY}
api_secret: ${ALPACA_API_SECRET}
settings:
base_url: "https://paper-api.alpaca.markets"
Order Settings¶
Alerting Configuration¶
Channels¶
YAML
alerting:
slack:
webhook: ${SLACK_WEBHOOK}
channel: "#trading"
pagerduty:
service_key: ${PAGERDUTY_KEY}
email:
smtp_host: "smtp.gmail.com"
smtp_port: 587
from: "alerts@example.com"
to: ["team@example.com"]
Rules¶
YAML
alerting:
rules:
- name: "Large Loss"
condition: daily_loss > 0.02
severity: warning
channels: [slack]
- name: "Circuit Breaker"
condition: daily_loss > 0.03
severity: critical
channels: [slack, pagerduty]
Monitoring Configuration¶
Prometheus¶
YAML
monitoring:
prometheus:
enabled: true
port: 9090
metrics:
- portfolio_value
- daily_return
- position_count
Health Checks¶
Logging Configuration¶
YAML
logging:
level: info # debug, info, warn, error
format: json
output: /var/log/sigc/
rotation:
max_size_mb: 100
max_files: 10
retention: 30d
Environment Variables¶
Configuration can reference environment variables:
Set in environment:
Configuration Precedence¶
- CLI arguments (highest)
- Environment variables
- Configuration file
- Default values (lowest)
Validation¶
Validate configuration: