erwin 0fbc9eafb4 initial commit пре 2 месеци
..
.claude 0fbc9eafb4 initial commit пре 2 месеци
__pycache__ 0fbc9eafb4 initial commit пре 2 месеци
README.md b5cf367577 regime 30分钟 пре 2 месеци
SZ#399673.txt b5cf367577 regime 30分钟 пре 2 месеци
cyb50_30min_classifier.py 29e498cf0d regime 30分钟 пре 2 месеци
cyb50_30min_classifier_v2.py 45a0d5f82a feat: CYB50数据获取支持多数据源和实时数据合并 пре 2 месеци
cyb50_30min_regime_chart.png 45a0d5f82a feat: CYB50数据获取支持多数据源和实时数据合并 пре 2 месеци
cyb50_30min_regime_result.csv 29e498cf0d regime 30分钟 пре 2 месеци
cyb50_30min_regime_v2.csv 45a0d5f82a feat: CYB50数据获取支持多数据源和实时数据合并 пре 2 месеци
cyb50_30min_regime_v2_chart.png 45a0d5f82a feat: CYB50数据获取支持多数据源和实时数据合并 пре 2 месеци
cyb50_market_classifier.py b5cf367577 regime 30分钟 пре 2 месеци
cyb50_market_classifier_v3.py b5cf367577 regime 30分钟 пре 2 месеци
cyb50_regime_2024_2025.png b5cf367577 regime 30分钟 пре 2 месеци
daily_email_sender.py 7c193caf9b chore: update email addresses and add memory files пре 2 месеци
generate_30min_regime_chart.py 29e498cf0d regime 30分钟 пре 2 месеци
generate_last60_report.py b5cf367577 regime 30分钟 пре 2 месеци
generate_regime_chart.py b5cf367577 regime 30分钟 пре 2 месеци
generate_v2_chart.py 45a0d5f82a feat: CYB50数据获取支持多数据源和实时数据合并 пре 2 месеци
hmm_diagnosis.py b5cf367577 regime 30分钟 пре 2 месеци
last_60_days_report.html b5cf367577 regime 30分钟 пре 2 месеци
market_regime_hmm.py b5cf367577 regime 30分钟 пре 2 месеци
requirements.txt b5cf367577 regime 30分钟 пре 2 месеци
rf_classifier.pkl b5cf367577 regime 30分钟 пре 2 месеци
rf_classifier_30min.pkl 45a0d5f82a feat: CYB50数据获取支持多数据源和实时数据合并 пре 2 месеци
rf_classifier_30min_v2.pkl 45a0d5f82a feat: CYB50数据获取支持多数据源和实时数据合并 пре 2 месеци
rf_classifier_v3.pkl b5cf367577 regime 30分钟 пре 2 месеци
send_test_report.py 7c193caf9b chore: update email addresses and add memory files пре 2 месеци
smtp_relay_server.py 29e498cf0d regime 30分钟 пре 2 месеци
start_relay_server.bat 29e498cf0d regime 30分钟 пре 2 месеци
train_and_validate.py b5cf367577 regime 30分钟 пре 2 месеци

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