交易 - 配置指南
SessionServiceConfigBuilder 是配置交易会话的入口,采用流式 Builder 模式。
from jh_quant.trading.config import SessionServiceConfigBuilder
config = ( SessionServiceConfigBuilder.defaults() .with_session(...) # 会话基础配置 .with_selection(...) # 选股器配置 .with_portfolio(...) # 组合优化配置(可选) .add_strategy(...) # 添加策略(可多次调用) .add_risk_rule(...) # 添加风险规则(可多次调用) .build())会话基础配置 (with_session)
.with_session( session_id="my-session", mode="paper", # "paper" 模拟 / "live" 实盘 price_lookback_days=365, max_candidates=10, auto_start=True, frequency="daily", # daily / 1m / 5m / 15m / 30m / 60m / 1h price_slippage=0.001, cron_expression="0 16 * * 1-5", timezone="Asia/Shanghai", restore_persisted_state=True, enable_backfill=True, backfill_from="2025-01-01",)策略配置 (add_strategy)
内置 11 种策略:
策略名称 (name) | 配置类 | 说明 |
|---|---|---|
momentum | MomentumStrategyConfig | 动量策略 |
moving_average_crossover | MovingAverageCrossoverStrategyConfig | 均线交叉 |
buy_and_hold | BuyAndHoldStrategyConfig | 买入持有 |
volume_trend | VolumeTrendStrategyConfig | 量价趋势 |
volume_divergence | VolumeDivergenceStrategyConfig | 量价背离 |
mean_reversion | MeanReversionStrategyConfig | 均值回归 |
rsi | RSIStrategyConfig | RSI |
bollinger_bands | BollingerBandsStrategyConfig | 布林带 |
breakout | BreakoutStrategyConfig | 突破 |
dual_thrust | DualThrustStrategyConfig | Dual Thrust |
turtle | TurtleStrategyConfig | 海龟交易 |
多策略组合
config = ( SessionServiceConfigBuilder.defaults() .add_strategy(name="momentum", alias="mom", weight=0.6, params=MomentumStrategyConfig(window=20)) .add_strategy(name="mean_reversion", alias="mr", weight=0.4, params=MeanReversionStrategyConfig(window=10)) .build())风险规则配置 (add_risk_rule)
内置 7 种风险规则:
规则名称 (name) | 配置类 | 说明 |
|---|---|---|
stop_loss | StopLossRuleConfig | 固定止损 |
take_profit | TakeProfitRuleConfig | 固定止盈 |
trailing_stop | TrailingStopRuleConfig | 移动止损 |
atr_trailing_stop | ATRTrailingStopRuleConfig | ATR 移动止损 |
max_holding_bars | MaxHoldingBarsRuleConfig | 最大持仓周期 |
max_consecutive_rising_bars | MaxConsecutiveRisingBarsRuleConfig | 连续上涨止盈 |
max_consecutive_falling_bars | MaxConsecutiveFallingBarsRuleConfig | 连续下跌止损 |
选股器配置 (with_selection)
使用内置因子选股
from jh_quant.trading.config import FactorSelectionConfig
config = ( SessionServiceConfigBuilder.defaults() .with_selection( name="factor", params=FactorSelectionConfig( factor="momentum_20", start="2020-01-01", top_n=10, period="monthly", ), ) .build())使用自定义选股器
先注册,再引用:
register_selection_provider( name="my_picker", provider_cls=MySelectionProvider, config_model=MySelectionConfig,)
config = ( SessionServiceConfigBuilder.defaults() .with_selection(name="my_picker", params=MySelectionConfig(...)) .build())组合优化配置 (with_portfolio)
from jh_quant.trading.config import RebalanceMode, RebalancePolicySpec
config = ( SessionServiceConfigBuilder.defaults() .with_portfolio( enabled=True, objective="MinRisk", # MinRisk / MaxRet / MaxSharpe / MaxUtility risk_measure="MV", model="Classic", covariance_method="hist", min_weight=0.01, max_weight=0.20, lookback=252, rebalance_policy=RebalancePolicySpec( mode=RebalanceMode.DRIFT_THRESHOLD, drift_threshold=0.10, ), ) .build())再平衡模式
| 模式 | 说明 |
|---|---|
DISABLED | 禁用再平衡 |
INITIAL_ONLY | 仅在初次建仓时 |
EVERY_CYCLE | 每个周期都再平衡 |
DRIFT_THRESHOLD | 持仓偏离超过阈值时触发 |
SCHEDULE | 按 Cron 表达式定时 |
MANUAL_ONLY | 仅手动触发 |
配置导入导出
from jh_quant.trading.config import export_config_to_file, import_config_from_file
export_config_to_file(config, "my_config.json")config = import_config_from_file("my_config.json")