Skip to content

交易 - 配置指南

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)配置类说明
momentumMomentumStrategyConfig动量策略
moving_average_crossoverMovingAverageCrossoverStrategyConfig均线交叉
buy_and_holdBuyAndHoldStrategyConfig买入持有
volume_trendVolumeTrendStrategyConfig量价趋势
volume_divergenceVolumeDivergenceStrategyConfig量价背离
mean_reversionMeanReversionStrategyConfig均值回归
rsiRSIStrategyConfigRSI
bollinger_bandsBollingerBandsStrategyConfig布林带
breakoutBreakoutStrategyConfig突破
dual_thrustDualThrustStrategyConfigDual Thrust
turtleTurtleStrategyConfig海龟交易

多策略组合

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_lossStopLossRuleConfig固定止损
take_profitTakeProfitRuleConfig固定止盈
trailing_stopTrailingStopRuleConfig移动止损
atr_trailing_stopATRTrailingStopRuleConfigATR 移动止损
max_holding_barsMaxHoldingBarsRuleConfig最大持仓周期
max_consecutive_rising_barsMaxConsecutiveRisingBarsRuleConfig连续上涨止盈
max_consecutive_falling_barsMaxConsecutiveFallingBarsRuleConfig连续下跌止损

选股器配置 (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")