erwin 1c90bb6525 regime 3 settimane fa
..
__pycache__ 45a0d5f82a feat: CYB50数据获取支持多数据源和实时数据合并 2 mesi fa
README.md e267c6e9ef Add Market Regime Identifier with HMM model 2 mesi fa
cyb50_market_classifier.py 45a0d5f82a feat: CYB50数据获取支持多数据源和实时数据合并 2 mesi fa
cyb50_market_classifier_v3.py 1c90bb6525 regime 3 settimane fa
cyb50_regime_2024_2025.png 4b51bc0ef8 feat: CYB50市场状态识别系统 v1.0 2 mesi fa
daily_email_sender.py 7c193caf9b chore: update email addresses and add memory files 2 mesi fa
feature_stats.pkl 1c90bb6525 regime 3 settimane fa
generate_last60_report.py 4b51bc0ef8 feat: CYB50市场状态识别系统 v1.0 2 mesi fa
generate_regime_chart.py 4b51bc0ef8 feat: CYB50市场状态识别系统 v1.0 2 mesi fa
hmm_diagnosis.py 1c90bb6525 regime 3 settimane fa
hmm_model.pkl 1c90bb6525 regime 3 settimane fa
last_60_days_report.html 0b3ca35a9c refactor: 将trend-max-daily.py移至专用目录 2 mesi fa
market_regime_hmm.py 1c90bb6525 regime 3 settimane fa
requirements.txt 1c90bb6525 regime 3 settimane fa
rf_classifier.pkl 70cb8dcbde Optimize market regime labels for balanced distribution (72.10% accuracy) 2 mesi fa
rf_classifier_v3.pkl 4b51bc0ef8 feat: CYB50市场状态识别系统 v1.0 2 mesi fa
train_and_validate.py 1c90bb6525 regime 3 settimane fa

README.md

市场环境识别器 (Market Regime Identifier)

基于HMM隐马尔可夫模型的市场状态识别系统

概述

自动识别市场所处的三种状态:

  • 震荡 (State 0):价格波动大但无明显方向
  • 趋势 (State 1):价格持续单向运动
  • 反转 (State 2):超买/超卖后的V型反转

安装依赖

pip install numpy pandas scipy scikit-learn hmmlearn

或使用:

pip install -r requirements.txt

使用方法

1. 训练模型

cd /root/.openclaw/workspace/market-regime-identifier
python3 train_and_validate.py

2. 实时识别

from market_regime_hmm import MarketRegimeHMM, StrategySelector, extract_features
import pandas as pd
import pickle

# 加载模型
with open('hmm_model.pkl', 'rb') as f:
    hmm = pickle.load(f)

# 准备数据
df = pd.read_csv('your_data.csv', index_col='date', parse_dates=True)
features = extract_features(df)
X = features[['ret_std_5', 'momentum_10', 'vol_ratio', 'volume_change', 'intraday_trend']]

# 识别当前状态
current_regime = hmm.get_current_regime(X)
print(f"当前状态: {current_regime['state_name']}")

# 获取策略建议
strategy = StrategySelector.get_strategy(current_regime['state'])
print(f"推荐策略: {strategy['name']}")
print(f"仓位: {strategy['position_size']*100}%")

特征说明

特征 描述 计算方式
ret_std_5 5日收益率标准差 std(returns, 5) × √252
momentum_10 10日价格动量 (close / close.shift(10) - 1) × 100
vol_ratio 波动率比率 vol(5) / vol(20)
volume_change 成交量变化率 volume.pct_change() × 100
intraday_trend 日内趋势强度 (close - open) / (high - low) × 100

状态转移矩阵

        震荡    趋势    反转
震荡    0.85    0.10    0.05
趋势    0.15    0.80    0.05
反转    0.20    0.10    0.70

策略切换规则

状态 策略 仓位 止损
震荡 RSI均值回归 50% 2N
趋势 海龟趋势跟踪 100% 2N
反转 反向/观望 30% 1N

文件说明

  • market_regime_hmm.py - 核心HMM模型实现
  • train_and_validate.py - 训练与验证脚本
  • requirements.txt - 依赖包列表
  • hmm_model.pkl - 训练好的模型(生成后)
  • feature_stats.pkl - 特征统计(生成后)

验证标准

  • 训练数据:2017-2023年
  • 验证数据:2024-2025年
  • 准确率要求:> 72%

作者

OpenClaw - 2026-03-06