API Integration
Overview
Merlin integrates with two APIs to provide its strategy and portfolio optimization capabilities:
- MesoSim API: For option strategy backtesting and data collection
- Q-API: For quantitative analysis, statistical testing, and model building
Additionally, Merlin can be used as a library to leverage these APIs in custom applications, providing a convenient interface to their capabilities.
Using Merlin as a Library for API Access
Merlin can be imported as a Python library and use the API helpers located under the deltaray_apis package.
Accessing MesoSim API
from merlin.deltaray_apis.mesosim_api import run_job, list_backtests, get_backtest_events
# Configure API access
mesosim_instance = "https://portal.example-customer.mesosim.io"
api_key = "your-api-key"
# Submit a backtest (v3 StrategyDefinition)
strategy_definition = {...}
backtest_id, analytics = run_job(mesosim_instance, api_key, strategy_definition)
# List backtests (optional)
from datetime import datetime, timedelta
runs = list_backtests(
mesosim_instance,
api_key,
start=datetime.utcnow() - timedelta(days=7),
end=datetime.utcnow(),
page=0,
include_analytics=True,
status="Finished",
)
# Get backtest events
events = get_backtest_events(mesosim_instance, api_key, backtest_id)
Accessing Q-API
from merlin.deltaray_apis.q_api import cramers_v, sets_model, optimize_portfolio
# Configure API access
q_api_instance = "https://q-api.example-customer.mesosim.io"
api_key = "your-api-key"
# Run Cramér's V test
features_df = ... # DataFrame with features and target
cramers_results = cramers_v(
q_api_instance,
api_key,
features_df,
"StrategyNAV",
feature_grouping="tails",
bins_or_tails=0.1,
target_grouping="bins",
target_bins=3
)
# Build SETS model
model_config = {...} # SETS model configuration
model_results = sets_model(q_api_instance, api_key, features_df, model_config)
# Optimize portfolio
portfolio_config = {...} # Portfolio optimization configuration
portfolio_results = optimize_portfolio(q_api_instance, api_key, strategies_df, portfolio_config)