@kamuira/stock-analyzer 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/analyze.js +1222 -0
- package/backtest.js +423 -0
- package/bin/analyze.js +4 -0
- package/bin/backtest.js +4 -0
- package/bin/server.js +4 -0
- package/dev.js +50 -0
- package/index.html +503 -0
- package/package.json +47 -0
- package/readme.md +166 -0
- package/server.js +1699 -0
- package/stock.js +181 -0
package/readme.md
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# A股/台股综合分析工具
|
|
2
|
+
|
|
3
|
+
## 启动方式
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
# 开发模式(自动重启)
|
|
7
|
+
node dev.js
|
|
8
|
+
|
|
9
|
+
# 直接启动
|
|
10
|
+
node server.js
|
|
11
|
+
|
|
12
|
+
# CLI 分析
|
|
13
|
+
node analyze.js [股票代码|all]
|
|
14
|
+
|
|
15
|
+
# 回测
|
|
16
|
+
node backtest.js [股票代码|all]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
浏览器访问: http://127.0.0.1:3000
|
|
20
|
+
|
|
21
|
+
## 支持的输入格式
|
|
22
|
+
|
|
23
|
+
| 格式 | 示例 | 说明 |
|
|
24
|
+
|------|------|------|
|
|
25
|
+
| 6位数字 | `002049` | 自动识别A股 |
|
|
26
|
+
| sh/sz前缀 | `sz002049` | 明确指定A股 |
|
|
27
|
+
| 4位数字 | `2330` | 自动识别台股 |
|
|
28
|
+
| tw前缀 | `tw2330` | 明确指定台股 |
|
|
29
|
+
| 中文名称 | `紫光国微` | 搜索A股 |
|
|
30
|
+
| 拼音缩写 | `zggw` | 搜索A股 |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 常见问题
|
|
35
|
+
|
|
36
|
+
### 胜率是如何计算的?
|
|
37
|
+
|
|
38
|
+
**触发条件:**
|
|
39
|
+
- 当日综合评分 >= 5 → 记为"买入信号"
|
|
40
|
+
- 当日综合评分 <= -5 → 记为"卖出信号"
|
|
41
|
+
- 中间区域 → "观望",不计入统计
|
|
42
|
+
|
|
43
|
+
**计算公式:**
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
买入胜率 = 买入信号发出后N天价格上涨的次数 / 买入信号总次数 × 100%
|
|
47
|
+
平均收益 = 所有买入信号N天后涨跌幅之和 / 买入信号总次数
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**具体流程:**
|
|
51
|
+
1. 取500个交易日(约2年)历史数据
|
|
52
|
+
2. 从第60天开始,逐日计算综合评分
|
|
53
|
+
3. 某天评分>=5,记录当天收盘价为"入场价"
|
|
54
|
+
4. 分别看 3天、5天、10天 后的收盘价
|
|
55
|
+
5. 后续收盘价 > 入场价 → 算"赢",否则算"输"
|
|
56
|
+
|
|
57
|
+
**举例:**
|
|
58
|
+
紫光国微在250个交易日中,有75次触发买入信号(评分>=5),其中5天后价格上涨的有41次:
|
|
59
|
+
- 胜率 = 41/75 = 55.4%
|
|
60
|
+
- 平均收益 = 所有75次的5日涨跌幅平均值 = +0.46%
|
|
61
|
+
|
|
62
|
+
**当前局限性:**
|
|
63
|
+
- 每天独立判断,连续信号不去重(如连续5天都是买入信号,会算5次独立交易)
|
|
64
|
+
- 未模拟实际仓位管理和交易手续费
|
|
65
|
+
- 未考虑止损提前退出的情况
|
|
66
|
+
- 固定持有N天后退出,不考虑中途信号变化
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### 综合评分是怎么算的?
|
|
71
|
+
|
|
72
|
+
评分由多个技术指标加权求和,根据市场状态(趋势/震荡)动态调整权重:
|
|
73
|
+
|
|
74
|
+
**趋势市(ADX>=25)权重:**
|
|
75
|
+
- 均线(×1.5) + MACD(×1.3) + ADX(×1.5) + RSI(×0.7) + KDJ(×0.7) + 布林(×0.8) + 量价(×1.0) + 趋势(×1.3) + 背离(×1.2) + 形态(×1.0) + 动量(×1.2) + 缺口(×0.8)
|
|
76
|
+
|
|
77
|
+
**震荡市(ADX<25)权重:**
|
|
78
|
+
- 均线(×0.8) + MACD(×0.8) + ADX(×0.8) + RSI(×1.5) + KDJ(×1.5) + 布林(×1.5) + 量价(×1.0) + 趋势(×0.8) + 背离(×1.3) + 形态(×1.2) + 动量(×1.0) + 缺口(×1.0)
|
|
79
|
+
|
|
80
|
+
**额外修正:**
|
|
81
|
+
- 趋势一致性:短/中/长期方向一致 +3分,矛盾则打8折
|
|
82
|
+
- ADX<20 震荡市:所有信号打6折
|
|
83
|
+
- 低波动股(ATR<1.5%):信号打7折
|
|
84
|
+
- 量能确认:放量看多加成15%,缩量看多打8折
|
|
85
|
+
- 大盘环境:上证偏强+1.5,偏弱-1.5且正分打7折
|
|
86
|
+
|
|
87
|
+
**信号分级:**
|
|
88
|
+
| 评分 | 信号 |
|
|
89
|
+
|------|------|
|
|
90
|
+
| >= 10 | 强烈买入 |
|
|
91
|
+
| >= 5 | 建议买入 |
|
|
92
|
+
| >= 1 | 谨慎买入 |
|
|
93
|
+
| >= -4 | 观望 |
|
|
94
|
+
| >= -9 | 建议卖出 |
|
|
95
|
+
| < -9 | 强烈卖出 |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### 风险收益比怎么算的?
|
|
100
|
+
|
|
101
|
+
不是机械地用ATR倍数,而是基于实际支撑/压力位:
|
|
102
|
+
|
|
103
|
+
**止损位(取最近的下方支撑):**
|
|
104
|
+
- MA20(如果在下方)
|
|
105
|
+
- 布林下轨
|
|
106
|
+
- 近20日最低价
|
|
107
|
+
- ATR止损(兜底)
|
|
108
|
+
|
|
109
|
+
**止盈位(取上方有意义的压力位,排除<2%的):**
|
|
110
|
+
- 近20日最高价
|
|
111
|
+
- 布林上轨
|
|
112
|
+
- 斐波那契回撤位
|
|
113
|
+
- ATR目标(补充)
|
|
114
|
+
|
|
115
|
+
**公式:**
|
|
116
|
+
```
|
|
117
|
+
风险收益比 = (止盈位 - 当前价) / (当前价 - 止损位)
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
- 比值 >= 2.0 → 提示"入场性价比高"
|
|
121
|
+
- 比值 < 1.0 → 提示"建议等回调再入场"
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### 什么类型的股票适合本系统?
|
|
126
|
+
|
|
127
|
+
基于26只股票的回测验证:
|
|
128
|
+
|
|
129
|
+
**适合(胜率55%+):**
|
|
130
|
+
- 科技成长股(兆易创新、台积电、中芯国际、立讯精密)
|
|
131
|
+
- 有色金属/新材料(湖南白银、宏和科技、紫金矿业)
|
|
132
|
+
- 高弹性趋势股(阳光电源、联发科、德明利)
|
|
133
|
+
- 共同特征:波动率适中(ATR 2-6%)、趋势性强(ADX经常>25)、成交活跃
|
|
134
|
+
|
|
135
|
+
**不适合(胜率<45%):**
|
|
136
|
+
- 银行股(招商银行、平安银行)— 低波动,政策驱动
|
|
137
|
+
- 白酒消费(茅台、五粮液)— 基本面下行时技术面失效
|
|
138
|
+
- 公用事业(核电、长江电力)— 波动太小
|
|
139
|
+
- 券商(中信建投)— 脉冲式行情,趋势不持续
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### 买入条件的逻辑?
|
|
144
|
+
|
|
145
|
+
根据评分高低给出不同激进程度的入场建议:
|
|
146
|
+
|
|
147
|
+
- **评分>=5(强势)**:给出当前价附近或日内回调半个ATR的入场价 + 分批建仓方案
|
|
148
|
+
- **评分1-4(偏多)**:建议等回调2-3%后出现止跌信号再买
|
|
149
|
+
- **评分<1(中性/偏空)**:给出布林下轨抄底或等站回MA20的条件
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### 数据来源
|
|
154
|
+
|
|
155
|
+
| 数据 | A股来源 | 台股来源 |
|
|
156
|
+
|------|---------|---------|
|
|
157
|
+
| 实时行情 | 新浪财经 (hq.sinajs.cn) | TWSE MIS API |
|
|
158
|
+
| 历史K线 | 腾讯财经 (web.ifzq.gtimg.cn) | Yahoo Finance |
|
|
159
|
+
| 股票搜索 | 腾讯智能搜索 (smartbox.gtimg.cn) | — |
|
|
160
|
+
| 大盘指数 | 腾讯财经 (上证000001) | — |
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 免责声明
|
|
165
|
+
|
|
166
|
+
本工具仅基于技术面指标进行分析,不构成任何投资建议。投资有风险,入市需谨慎。
|