CLI Overview

QuantLab provides a comprehensive command-line interface for all trading research operations.

Command Structure

quantlab [COMMAND] [SUBCOMMAND] [OPTIONS] [ARGUMENTS]

Main Commands

Data Management

quantlab data check              # Check data availability
quantlab data tickers [--type]   # List available tickers
quantlab data query TICKER       # Query price/options data
quantlab data range TICKER       # Show date range

Analysis

quantlab analyze ticker TICKER [OPTIONS]     # Analyze single ticker
quantlab analyze portfolio NAME [OPTIONS]    # Analyze portfolio

Portfolio Management

quantlab portfolio create NAME             # Create portfolio
quantlab portfolio list                    # List portfolios
quantlab portfolio show NAME               # Show portfolio details
quantlab portfolio add NAME TICKER [OPTS]  # Add position
quantlab portfolio remove NAME TICKER      # Remove position
quantlab portfolio update NAME TICKER      # Update position

Visualization

quantlab visualize price TICKER [OPTIONS]              # Price charts
quantlab visualize compare TICKER1 TICKER2 ... [OPTS]  # Multi-ticker
quantlab visualize options STRATEGY [OPTIONS]          # Options payoff
quantlab visualize portfolio NAME [OPTIONS]            # Portfolio charts
quantlab visualize backtest PATH [OPTIONS]             # Backtest results

Lookup Tables

quantlab lookup init                    # Initialize lookup tables
quantlab lookup stats                   # Show statistics
quantlab lookup refresh [--type]        # Refresh data
quantlab lookup get company TICKER      # Get company info
quantlab lookup get ratings TICKER      # Get analyst ratings
quantlab lookup get treasury [--maturity] # Get risk-free rate

Common Options

Price Charts

--period PERIOD          # Time period (e.g., 30d, 90d, 1year, ytd, max)
--interval INTERVAL      # Intraday interval (1min, 5min, 15min, 1hour)
--chart-type TYPE        # Chart type (candlestick, line)
--output PATH            # Save chart to file
--show-volume           # Include volume bars
--mas MA_PERIODS        # Moving averages (e.g., 20,50,200)

Examples:

# Daily candlestick with volume
quantlab visualize price AAPL --period 90d --chart-type candlestick --show-volume

# Intraday 5-minute chart
quantlab visualize price AAPL --interval 5min --period 5d --chart-type line

# With moving averages
quantlab visualize price AAPL --period 1year --mas 50,200

Options Strategy

--current-price PRICE    # Current stock price
--strike1, --strike2,    # Strike prices (strategy-dependent)
--strike3, --strike4
--premium PREMIUM        # Net premium paid/received
--iv IV                  # Implied volatility (for Greeks)
--dte DAYS              # Days to expiration
--risk-free-rate RATE   # Risk-free rate (default: treasury)

Available strategies:

  • Single leg: long_call, long_put, short_call, short_put

  • Covered: covered_call, protective_put, collar

  • Spreads: bull_call_spread, bear_put_spread, bull_put_spread, bear_call_spread

  • Volatility: long_straddle, short_straddle, long_strangle, short_strangle

  • Complex: iron_condor, iron_butterfly, butterfly, calendar_spread

Analysis Options

--output PATH                # Save analysis to JSON file
--no-fundamentals           # Skip fundamental analysis
--no-options                # Skip options analysis
--no-technicals             # Skip technical analysis
--no-sentiment              # Skip sentiment analysis

Examples:

# Full analysis
quantlab analyze ticker AAPL --output results/aapl_analysis.json

# Options-only analysis
quantlab analyze ticker AAPL --no-fundamentals --no-technicals --no-sentiment

Environment Variables

QUANTLAB_CONFIG_PATH      # Custom config file path
POLYGON_API_KEY          # Polygon.io API key
ALPHA_VANTAGE_API_KEY    # Alpha Vantage API key
QUANTLAB_DB_PATH         # Database file path

Configuration File

Default location: ~/.quantlab/config.yaml

# API Keys
api_keys:
  polygon: "YOUR_API_KEY"
  alpha_vantage: "YOUR_API_KEY"

# Data paths
data:
  qlib_data_path: "/path/to/qlib/data"

# Database
database:
  path: "~/.quantlab/quantlab.duckdb"

# Default settings
defaults:
  period: "90d"
  chart_type: "candlestick"

Output Formats

JSON Output

Analysis commands support --output to save JSON:

quantlab analyze ticker AAPL --output analysis.json

# Pretty-print JSON
cat analysis.json | python -m json.tool

HTML Charts

Visualization commands generate interactive HTML:

quantlab visualize price AAPL --output chart.html

# Open in browser
open chart.html  # macOS
xdg-open chart.html  # Linux
start chart.html  # Windows

Piping and Integration

Use with jq

# Extract specific fields
quantlab analyze ticker AAPL --output - | jq '.options.chain[] | select(.strike == 180)'

# Count options contracts
quantlab analyze ticker AAPL --output - | jq '.options.chain | length'

Use with grep

# Filter tickers
quantlab data tickers | grep "^AA"

# Search in analysis
quantlab analyze ticker AAPL --output - | grep -i "recommendation"

Batch Processing

# Analyze multiple tickers
for ticker in AAPL GOOGL MSFT; do
    quantlab analyze ticker $ticker --output results/${ticker}.json
done

# Parallel processing
echo "AAPL GOOGL MSFT NVDA" | xargs -P 4 -n 1 bash -c '
    quantlab analyze ticker "$1" --output "results/$1.json"
' _

Error Handling

Return Codes

  • 0: Success

  • 1: General error

  • 2: Invalid arguments

  • 3: Data not found

  • 4: API error

Logging

Set log level:

# Debug level
QUANTLAB_LOG_LEVEL=DEBUG quantlab visualize price AAPL

# Quiet mode
QUANTLAB_LOG_LEVEL=ERROR quantlab analyze ticker AAPL

Advanced Usage

Custom Scripts

Import QuantLab in your Python scripts:

from quantlab.core.analyzer import Analyzer
from quantlab.visualization.price_charts import create_candlestick_chart

# Initialize analyzer
analyzer = Analyzer()

# Get data and create chart
df = analyzer.get_price_data("AAPL", period="90d")
fig = create_candlestick_chart(df, "AAPL", show_volume=True)
fig.write_html("aapl_chart.html")

Backtesting Integration

Use qrun for backtesting:

# Run backtest
qrun configs/my_strategy.yaml

# Visualize results
quantlab visualize backtest results/mlruns/[exp_id]/[run_id]

Next Steps