这段时间发生了太多的事,我自己也说不清。
嘿,既然你看到了这个文章。那我要提前告诉你。
这个文章可能会比较长,并且包含大量我自己摸索的内容。
不严谨,且也不专业,甚至可能有点垃圾。
完全就是在说梦话。想到什么写什么。
如果看的有点困难,用LLM总结一下也不是不行。
不过上面的阅读时长已经警告过你了。I Don’t Care.
我去 我怎么换 Fedora Linux了
是的。在这一个月期间,我写了一个超级巨大的项目。 而且这个项目我也不打算公开。
但是因为 Windows 众所周知的垃圾性能,我终于忍不了了。我简单问了一下我好哥们 @Mashirl,有没有什么能兼容 Secure Boot 的 GNU/Linux,结果他跟我说 Fedora Linux 几乎完美支持这被微软近似垄断的 Secure Boot。
我那天直接觉也不睡了,胶也不打了。直接开始备份 Laptop 里面的重要内容。然后开始重装 Fedora Linux Workstation。
说句实话,这是我用 Fedora Linux Workstation 的第2天。
(其实我的时间观已经在写那个大项目的时候被干烂了 这个时间就当乐子看)
日常用的东西其实都有,也就 Microsoft Office, Hancom Office, TrustLock 需要我 Dual Boot 到 Windows 去解决。
到这里你可能就已经想问我了。
不是,Microsoft Office 不是有 Web 版本么?你怎么不用那个?
说句实话,那个我用过。
那个垃圾东西就是他妈的依托答辩。不用质疑。老子说的。
我已经沉浸在 Fedora Linux 提供给我的令人舒适的 RPM包管理器 - dnf 和高度自定义化的 Gnome Desktop 中遨游了。
微软?滚吧。
除非是学校把刀架在我脖子上跟我说你不用 Windows 就不给你发毕业证书不然老子就他妈懒得开 Windows 了。
哦对了,这里还有原生的 LDAC 解码器可用。你 Windows 还得花钱给第三方软件送钱。
别整你那副驾驶屎山了。看得我犯恶心。听到没?微软。
当然,玩游戏的时候除外。毕竟还有傻逼 Anti-Cheat 这托 NT(脑瘫) Kernel Based 大型屎山等着我呢
GNU/Linux 的笑话先讲到这,先说说我最近精神状态为什么会这么颠吧
其实我这精神状态在上个学期 (KU - 25 2R) 的时候已经近似崩盘了。
学那个破离散数学,脑子里面全都是离散态。恨不得给自己平时想的事情都给个 O(x) 来评价时间。
还有,我总算明白为什么我上的这门的教授大伙都叫他朴神了。
虽然他 上课讲话口齿不清,使用尊贵的泡菜味英文。 但还是看了我的邮件。
对于我进行的 对于贵教授课程聆听困难程度相关问题的告知 进行了友好的回应。
虽然你不回老子邮件,但还是直接在课上讲了麦克风的问题。非常好甩锅
老子还是听不清你到底在讲什么。
先别怪麦克风了,老子是想学习而不是想靠人情混个分。靠着你那天才手绘 PPT 还拿了 B0。能不能先治治你的口齿不清问题?
哦对了,说到这里。差点忘了告诉未来可能在 Korea University - Computer Science & Engineering 学习的校友。
朴神的课好是好,前提是你能看懂他那逆天手绘 PPT 还有他的那口齿不清式韩式英语。
顺带,不要同时修 离散数学 (COSE211) 和 计算机算法 (COSE214)。你的脑子会受不了的。
因为这两门课教的内容比较类似。毕竟都要学离散层面。你在考试的时候只会搞混两门课的内容。
相信我,不要同时修。
尤其是你要在15分钟内开疾跑 教养馆 -> 情报通信馆 这样的情况下。
你的身体还没休息好。甚至刚抽完烟就得上楼。
上楼坐牢 一小时十五分钟 之后休息十五分钟 然后继续坐牢一小时十五分钟。
我重新想都觉得我应该,嗯。大致是疯了才会排这样的课表。
还有,朴神。你如果真的看到了这个文章。虽然我觉得你干脆不记得这号人。
谢谢你。你计算机算法给我 F 合情合理。毕竟我毛都没写。
但是你的离散数学让我收获很大。大到让我变成了彻底的 nerd。
怎么说到学校去了,还是看看 Vibe Coding 的 严父/严母,Rust吧
嘿,您猜怎么着。
其实这个项目本来我是不想写的。而且可以说是被迫写出来的。
项目名字叫 Kiwoom-Trading-Bot
您瞧瞧,
这像话么,Trading Bot。哈哈。
谁家神人写他妈股票自动交易啊。
哦,那个神人原来是我。
起初是因为贵尊母上,一直一天到晚跟我说:
你学点炒股吧,这东西能钱滚钱,你妈学了这么久,你跟着我买就好了。赚得不多也是,那也是钱。
不是… 你儿子是学 CompSci&Eng 的,不是学 Bussiness Major 的。
既然贵上天天这么说,那我只能顺从了。
我去开了一个 Kiwoom Securities Co., Ltd. 的 个人投资账户。
哦对,因为我国籍是尊贵的 P.R. China 再加上韩国的 e-KYC 系统基本上对外国人就是一个爱答不理的状态。
我得亲自去一趟位于汝矣岛的 Kiwoom Securities Co., Ltd. 营业部。
众所周知。算了,大伙也不认识我这号人。
我这个人其实是非常懒的出门的。
对我来说,能不出门就不出门。
因为我是阴暗小老鼠 哈哈
去了也基本上摆着一个死妈脸跟人沟通开户。
好在我有大韩民国的永驻权,没跟我问这问那的。
问我开户理由,就说了句,我是被我妈被迫来开户的。我自己使用证券账户,不会转让账户。
然后人也没说什么,直接掏手续让我签这签那的。
开了户,挺好。继 Mirae Assest Securities 又多了一个证券账户。
哦,等下。有点扯远了。该说正题了
是的,我开的这个证券账户,他们公司提供 REST API。
但是说来好笑,因为他们的问题,导致我无法申请 REST API 使用权限。

简单来说就是。不好意思,我们忘记给2000年后出生的外国人小朋友们的申请页面加上了。
?
这个世界就是一个巨大的草台班子具象化再次显现在我眼前了,我日你仙人。
哦对了。我稍微剧透一下,不影响后续阅读。

是的,他们 OpenAPI 部门没有电话热线。不然我已经因为 《产业安全保健法》第41条(因顾客辱骂等造成的健康损害预防措施等) 被起诉罚款了。

哦牛逼,看到这个马上申请休假是什么意思呢?

我将重申 《产业安全保健法》第41条(因顾客辱骂等造成的健康损害预防措施等) 这一条法律。
是这条法律救了你的眼睛不用看我在你们 Q&A Dashboard 上辱骂你们。
其实这里开始才是真正的正题。其实我没想用 LLM 生成的,但内容太多了 请见谅
使用模型:OpenAI-GPT-5.3-Codex xhigh
请求时间:2026-02-13 20:58:08 GMT+0900
请求工具:codex-cli 0.101.0
LLM压缩次数:4
生成耗时:27m 23s
使用提示词:翻阅目录下所有的文件 并且以技术层面详细告诉我 不能臆想其他内容,严格按照Codebase内所有代码为基准进行解释。可以使用Markdown但须严格遵守格式。禁止幻想,自行检查是否出现与Codebase不相符的内容,若出现不相符的内容,需自行重新查阅Codebase去确认详细内容。长度适量,严肃化,使用学术风格进行解释。并且不需要无用解释,需解释运作原理和代码层面的解释。并且需要对相关内容进行解释。可以解释到代码构造 使用 ```Rust 内容```来解释 但是只分析有学术价值的内容 比如分析器。然后写成 分析报告.md 给我。
以下内容为 LLM 生成。虽然诸位看不到 Source Code 而且输出审查是我自己做的,但还是烦请自行辨别真伪。我的提示词并不是万能的。而且 Codex 会压缩内容。烦请见谅。
分析器代码构造技术说明
1. 范围与方法
- 本文仅解释仓库中“分析器相关”的实现,不扩展至未实现逻辑。
- 解释对象来自以下文件:
src/analysis/chart_analyzer.rssrc/analysis/multi_timeframe.rssrc/analysis/volume_divergence.rssrc/analysis/investor_flow.rssrc/analysis/sector_analyzer.rssrc/analysis/sentiment.rssrc/analysis/dart_disclosure.rssrc/analysis/ecos_macro.rssrc/analysis/integrated_analyzer.rssrc/learning/ml_signal.rssrc/learning/correlation_risk.rssrc/learning/investor_flow_learner.rs
2. ChartAnalyzer:指标计算与离散评分系统
代码位置:src/analysis/chart_analyzer.rs
该模块属于“规则驱动型技术分析器”,核心是:
- 从 OHLCV 构造指标向量。
- 使用离散规则对买入分与卖出分累加。
- 再由指标关系推导趋势类别。
2.1 输入序列方向修正
源码显式将 API 数据反转(注释说明 API 为“最新在前”):
|
|
2.2 指标层
实现指标包括:
- SMA(5/20/60/120)
- Bollinger(20, 2σ)
- RSI(14)
- MACD(12,26,9)
- Stochastic(K14,D3)
- CCI(20)
- 20/60/250 日新高与 250 日低点涨幅
- 布林带突破状态(上破/回落/下破/反弹)
CCI 公式在代码中直接实现:
|
|
2.3 评分层(buy/sell 双分数)
评分从 (buy=50, sell=50) 起步,规则增量触发后截断到 <=100:
|
|
已实现的关键机制:
- RSI、Stochastic、CCI、布林带突破、新高信号均可加分。
- 成交量放大时,会依据当前买卖分强弱偏向继续加分。
- 注释中写明“MACD 已取消,不再作为买卖信号”,但 MACD 仍参与趋势判定。
2.4 趋势分类
趋势基于五个二元判断的累计分:
sma5>sma20sma20>sma60sma60>sma120macd>macd_signalrsi>50
分段映射:
4..=5 => StrongBullish2..=3 => Bullish-1..=1 => Neutral-3..=-2 => Bearish- 其余
StrongBearish
3. MultiTimeFrameAnalyzer:跨尺度一致性与权重融合
代码位置:src/analysis/multi_timeframe.rs
该模块定义日/周/月三个时间框架,执行“单尺度判别 -> 多尺度聚合”。
3.1 单尺度判别函数
analyze_timeframe 需要至少 60 根数据,计算:
SmaAlignment:Bullish/Bearish/MixedPricePosition:相对 20 日均线的 2% 带宽- RSI(14)
- MACD 状态(含金叉/死叉判别)
VolumeStatus:相对 20 日量均值,阈值由配置给出
趋势方向评分由四类因子加权:
|
|
3.2 多尺度聚合
若 higher_tf_priority=true,权重为:
- Daily=1
- Weekly=2
- Monthly=3
综合信号通过加权平均方向分得到,并计算一致性:
|
|
3.3 交易建议生成
StrongBuy/Buy/Sell/StrongSell直接映射should_buy/should_sell- 可选三重确认:若
require_triple_confirmation=true且 3 周期不全同向,则直接退化为不交易。 - 仓位比例:
base_position * (alignment / 100.0)。
4. VolumeDivergenceAnalyzer:量价背离、突破有效性与 OBV
代码位置:src/analysis/volume_divergence.rs
4.1 背离判定
先计算:
price_change:当前 vslookback_period前volume_change:当前量 vs 对应历史量current_vol_ratio:当前量 / 近期均量
再按阈值分类:
- 价涨且量缩 ->
BearishDivergence - 价跌且量缩 ->
BullishDivergence - 价量同向强化 ->
Confirmation
4.2 强度与置信度
强度使用阈值分段,置信度由“基础值+幅度因子”构成:
|
|
4.3 突破有效性
- 上破:当前价 > 前高 * 1.01
- 下破:当前价 < 前低 * 0.99
- 是否有效由
volume_ratio >= valid_breakout_volume_ratio决定。
4.4 OBV 与背离
通过价格涨跌累加/累减成交量构造 OBV 序列,再比较近期与更早期均值判断 ObvTrend;并检测“价格方向”与“OBV 趋势方向”是否一致。
5. InvestorFlowAnalyzer 与 InvestorFlowLearner
5.1 InvestorFlowAnalyzer(规则评分)
代码位置:src/analysis/investor_flow.rs
该模块基于最近 5 日投资者净流向计算三类分数:
- 外资
- 机构
- 私募基金
综合权重固定为 40%/40%/20%:
|
|
单类分数由两部分组成:
- 净流量分:
total_net / 1_000_000后截断到[-50, 50] - 连续性分:
consecutive * 10 * sign
5.2 InvestorFlowLearner(统计学习特征工程)
代码位置:src/learning/investor_flow_learner.rs
核心步骤:
- 30 日、180 日双尺度分析。
- 每个投资者类别计算:净额、买卖天数、连续性、线性趋势、动量、波动性。
- 构造 48 维特征(
3投资者 * 2周期 * 8特征)。
趋势计算使用线性回归斜率与 R²:
|
|
综合分数构造:
- 短期 70%,长期 30%
- 类别权重
外资40/机构40/私募20 - 一致性加成
alignment_bonus
6. SectorAnalyzer:相对强度与轮动检测
代码位置:src/analysis/sector_analyzer.rs
6.1 相对强度
5 日相对强度(RS)定义为“板块涨幅相对 KOSPI 涨幅”:
|
|
6.2 轮动信号
detect_rotation 比较当前 RS 与 lookback 前 RS:
change > 0.1 && current_rs > 1.0 => Rotating Inchange < -0.1 && current_rs < 1.0 => Rotating Out
6.3 市场广度分类
按强势/弱势板块数量与占比划分:
BroadRallyBroadDeclineRotationDivergence
7. SentimentAnalyzer:词典打分与风险分级
代码位置:src/analysis/sentiment.rs
7.1 单新闻打分
对标题+正文做关键词计数:
- 正面词命中:
positive_count += 1 - 负面词命中:
negative_count += 1 - 高风险词命中:
negative_count += 3
评分:
|
|
7.2 股票层聚合
使用影响力加权均值:
|
|
并计算:
- 正负新闻计数
- 情绪趋势(与历史均值差异阈值
±0.1) - 风险等级(Critical/High/Medium/Low)
should_avoid_buy(关键风控门)
7.3 NaverNewsClient(数据接入)
- 通过
openapi.naver.com/v1/search/news.json获取新闻。 - 清洗 HTML 标签,解析
pubDate,逐条调用analyze_article。
8. DART 与 ECOS:事件与宏观状态分析
8.1 DART 公告分析
代码位置:src/analysis/dart_disclosure.rs
DartApiClient 的分析输出为:
- 30 日公告数
- 主要事项公告数
- 24 小时内重大公告标志
analyze_with_name 支持两路径:
- 有
corp_code:直接按公司代码查。 - 无映射:全量日期范围查询后按股票代码/公司名过滤。
8.2 ECOS 宏观分析
代码位置:src/analysis/ecos_macro.rs
analyze_environment 并发获取五类指标(利率/汇率/GDP/CPI/景气),然后按固定权重合成市场分:
- 基准利率 25%
- 汇率 15%
- GDP 25%
- CPI 20%
- 景气指数 15%
最后映射环境类型:
- Expansion / Boom / Stable / Slowdown / Recession
并给出 signal_adjustment(),供上层策略做信号偏移。
9. IntegratedAnalyzer:多源异步融合与覆盖规则
代码位置:src/analysis/integrated_analyzer.rs
该模块是分析域中最核心的“系统编排器”。
9.1 异步编排
analyze_stock 使用 timeout + tokio::join! 并发拉取:
- 当前价与日K
- 投资者流向
- AI 流向学习
- 主题数据
- 新闻情绪
- DART 公告
- ECOS 宏观
每路都有超时容错与降级路径。
9.2 极端波动覆盖机制
在融合前后都存在“硬覆盖”:
- 日涨幅
>=25%:强烈卖出覆盖。 - 日涨幅
>=15%:至少卖出。 - 日跌幅过大:抑制追买。
这是对统计信号的强约束层,避免短期极端波动下模型过拟合。
9.3 主题与程序化交易信号构造
主题信号:
|
|
程序化交易信号:
|
|
9.4 新闻情绪与 LLM 混合
若 LLM 开启且有新闻,混合公式为:
|
|
并根据 LLM 评分阈值添加强警示或强化理由。
9.5 DART/ECOS 转化为融合信号
- DART 24h 重大事项:偏负面强权重信号。
- ECOS 使用缓存宏观环境,转成
macro_signal = market_score / 100.0纳入融合。
9.6 输出结构
IntegratedAnalysis 同时返回:
- 各子分析信号
FusedSignal- 最终
TradeRecommendation reasons与risk_warnings- 可解释技术详情
technical_details
10. MLSignalFusion:概率化信号融合器
代码位置:src/learning/ml_signal.rs
该模块对 Signal{value, confidence, source} 进行“来源级聚合 -> 加权融合 -> 概率映射”。
10.1 加权贡献
|
|
一致性由“买/卖/中性”三类中最大一致比例定义。
10.2 置信度校正
- 一致性 > 0.7:加
consistency_bonus - 一致性 < 0.3:减
inconsistency_penalty
10.3 概率映射
使用 sigmoid(尺度 4.5)与 confidence*consistency 调整,得到买/卖/持有概率。
|
|
并由概率阈值映射为 StrongBuy/Buy/Hold/Sell/StrongSell。
10.4 动态权重学习
record_trade_result 更新各来源历史准确率,达到最小样本数后按学习率更新权重并归一化。
11. CorrelationRiskManager:组合相关性与分散度评估
代码位置:src/learning/correlation_risk.rs
该模块提供分析域之外的“组合级风险分析器”:
- 皮尔逊相关系数矩阵。
- 高相关权重对识别。
- 板块集中度。
- HHI 分散度评分。
- 系统性风险代理(平均相关性)。
相关系数实现:
|
|
分散度评分核心是 HHI 归一化 + 持仓数量加成。
12. 代码层结论(仅基于现实现)
- 当前分析系统是“规则统计 + 信号融合 + 风险覆盖”的混合架构,而非端到端黑盒模型。
IntegratedAnalyzer的工程重点在“异步容错与多源拼接”,MLSignalFusion负责概率化汇总。- 可解释性在本项目中是一级目标:技术细分解释、理由与风险警告均有显式字段。
- 部分模块仍属于近似建模(例如板块历史近似、简化 MACD signal line),这是源码中可见的明确实现选择。
Wow,Holy Shit
我都没想到你会看到这里,我得给你一个小红花呢还是让你视奸我呢?
那我们下一个 Blog Post 再见。