aishare-txt 2025.11.6.13__py3-none-any.whl

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.
@@ -0,0 +1,324 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ 股票技术指标分析器配置文件
5
+ """
6
+
7
+ import os
8
+
9
+ class IndicatorConfig:
10
+ """配置类,包含所有硬编码的常量和阈值"""
11
+
12
+ # 均线周期配置
13
+ MA_PERIODS = {
14
+ 'short': [5, 10, 20, 30],
15
+ 'medium': [60],
16
+ 'long': []
17
+ }
18
+
19
+ # EMA周期配置
20
+ EMA_PERIODS = [5, 10, 12, 20, 26]
21
+
22
+ # WMA周期配置
23
+ WMA_PERIODS = [10, 20]
24
+
25
+ # MACD配置
26
+ MACD_CONFIG = {
27
+ 'fastperiod': 12,
28
+ 'slowperiod': 26,
29
+ 'signalperiod': 9
30
+ }
31
+
32
+ # 布林带配置
33
+ BOLLINGER_BANDS_CONFIG = {
34
+ 'timeperiod': 20,
35
+ 'nbdevup': 2,
36
+ 'nbdevdn': 2,
37
+ 'matype': 0
38
+ }
39
+
40
+ # RSI配置
41
+ RSI_PERIODS = [9, 14]
42
+
43
+ # KD指标配置
44
+ STOCH_CONFIG = {
45
+ 'fastk_period': 9,
46
+ 'slowk_period': 3,
47
+ 'slowk_matype': 0,
48
+ 'slowd_period': 3,
49
+ 'slowd_matype': 0
50
+ }
51
+
52
+ # ADX/DMI配置
53
+ ADX_PERIOD = 14
54
+
55
+ # ATR配置
56
+ ATR_PERIOD = 14
57
+
58
+ # VWAP配置
59
+ VWAP_PERIOD = 14
60
+
61
+ # BIAS乖离率配置
62
+ BIAS_PERIODS = [5, 10, 20]
63
+
64
+ # OBV分析配置
65
+ OBV_CONFIG = {
66
+ 'short_period': 5,
67
+ 'medium_period': 20,
68
+ 'extrema_order': 3 # 局部极值检测的最小间隔
69
+ }
70
+
71
+ # 均线形态分析阈值
72
+ MA_THRESHOLDS = {
73
+ 'support_resistance': 0.02, # 2%以内视为支撑/阻力
74
+ 'divergence_strong': 0.02, # 2%以上为强发散
75
+ 'divergence_weak': 0.01, # 1%以下为弱发散
76
+ 'adhesion_tight': 0.003, # 0.3%以下为紧密粘合
77
+ 'adhesion_loose': 0.005, # 0.5%以下为一般粘合
78
+ 'adhesion_range': 0.01 # 1%以下为粘合范围
79
+ }
80
+
81
+ # RSI区间定义
82
+ RSI_ZONES = {
83
+ 'overbought': 70,
84
+ 'neutral_high': 50,
85
+ 'neutral_low': 30,
86
+ 'oversold': 0
87
+ }
88
+
89
+ # ADX强度等级
90
+ ADX_LEVELS = {
91
+ 'strong_trend': 40,
92
+ 'medium_trend': 25,
93
+ 'weak_trend': 0
94
+ }
95
+
96
+ # 资金流强度等级
97
+ FUND_FLOW_LEVELS = {
98
+ 'strong': 5.0, # 5%以上为强烈
99
+ 'active': 2.0, # 2%以上为活跃
100
+ 'moderate': 1.0, # 1%以上为温和
101
+ 'weak': 0 # 1%以下为平淡
102
+ }
103
+
104
+ # 波动率等级
105
+ VOLATILITY_LEVELS = {
106
+ 'high': 5.0, # 5%以上为高波动
107
+ 'medium': 3.0, # 3-5%为中等波动
108
+ 'low': 1.0, # 1-3%为低波动
109
+ 'very_low': 0 # 1%以下为极低波动
110
+ }
111
+
112
+ # 量比等级
113
+ VOLUME_RATIO_LEVELS = {
114
+ 'heavy': 2.0, # 2倍以上为放量
115
+ 'moderate': 1.5, # 1.5-2倍为温和放量
116
+ 'normal': 0.8, # 0.8-1.5倍为正常
117
+ 'light': 0 # 0.8倍以下为缩量
118
+ }
119
+
120
+ # 市值规模分类(单位:亿元)
121
+ MARKET_CAP_LEVELS = {
122
+ 'mega': 1000, # 超大盘股
123
+ 'large': 300, # 大盘股
124
+ 'medium': 100, # 中盘股
125
+ 'small_medium': 50, # 中小盘股
126
+ 'small': 0 # 小盘股
127
+ }
128
+
129
+ # 显示精度配置
130
+ DISPLAY_PRECISION = {
131
+ 'price': 2, # 价格显示2位小数
132
+ 'percentage': 2, # 百分比显示2位小数
133
+ 'ratio': 2, # 比率显示2位小数
134
+ 'volume_wan': 0, # 成交量(万元)显示整数
135
+ 'macd': 4, # MACD显示4位小数
136
+ 'atr': 4 # ATR显示4位小数
137
+ }
138
+
139
+ # 数据获取配置
140
+ DATA_CONFIG = {
141
+ 'default_period': 'daily',
142
+ 'default_adjust': 'qfq', # 前复权
143
+ 'required_columns': ['date', 'open', 'close', 'high', 'low', 'volume'],
144
+ 'min_data_length': 60, # 最少需要60个交易日数据
145
+ 'default_months_back': 4 # 默认获取往前推4个月的数据
146
+ }
147
+
148
+ # 列名映射
149
+ COLUMN_MAPPING = {
150
+ '日期': 'date',
151
+ '开盘': 'open',
152
+ '收盘': 'close',
153
+ '最高': 'high',
154
+ '最低': 'low',
155
+ '成交量': 'volume',
156
+ '成交额': 'turnover',
157
+ '振幅': 'amplitude',
158
+ '涨跌幅': 'pct_chg',
159
+ '涨跌额': 'change',
160
+ '换手率': 'turnover_rate'
161
+ }
162
+
163
+ # 报告格式配置
164
+ REPORT_CONFIG = {
165
+ 'title_separator': '=' * 60,
166
+ 'section_separator': '-' * 40,
167
+ 'min_fund_display_threshold': 100 # 超过100万才显示的资金流阈值(万元)
168
+ }
169
+
170
+ # 错误消息
171
+ ERROR_MESSAGES = {
172
+ 'no_data': "错误:无法获取股票数据",
173
+ 'invalid_code': "错误:股票代码格式错误",
174
+ 'network_error': "错误:网络连接问题",
175
+ 'api_error': "错误:数据接口暂时不可用",
176
+ 'data_insufficient': "错误:数据不足,无法计算指标",
177
+ 'calculation_failed': "错误:指标计算失败"
178
+ }
179
+
180
+ # 市场代码映射
181
+ MARKET_MAPPING = {
182
+ '6': 'sh', # 上海市场
183
+ '0': 'sz', # 深圳市场
184
+ '3': 'sz' # 深圳市场(创业板)
185
+ }
186
+
187
+ # AI配置
188
+ AI_CONFIG = {
189
+ # 默认使用的AI提供商
190
+ 'default_provider': 'deepseek', # 可选: 'deepseek', 'zhipuai'
191
+
192
+ # DeepSeek AI配置
193
+ 'deepseek': {
194
+ 'api_key': os.environ.get('DEEPSEEK_API_KEY'), # DeepSeek API密钥(从环境变量获取)
195
+ 'base_url': 'https://api.deepseek.com', # DeepSeek API地址
196
+ 'model': 'deepseek-chat', # 使用的模型
197
+ 'max_tokens': 100, # 最大输出token数
198
+ 'temperature': 0.6 # 控制随机性,降低以提高一致性
199
+ },
200
+
201
+ # 智谱AI配置
202
+ 'zhipuai': {
203
+ 'api_key': os.environ.get('ZHIPUAI_API_KEY'), # 智谱AI API密钥
204
+ 'model': 'glm-4.5-flash', # 使用的模型
205
+ 'max_tokens': 100, # 最大输出token数
206
+ 'temperature': 0.6 # 控制随机性,降低以提高一致性
207
+ },
208
+
209
+ # 投资建议配置
210
+ 'recommendation': {
211
+ 'prompt_template': """
212
+ 我打算以最新价格买入,在三个交易日内卖出。分析以下股票是否能够买入,返回结果可以是1:立即买入、-1:风险高于收益,不适合买入、0:当前不是买点需要观望这三种,请不要返回其他内容,仅返回对应的数字。
213
+
214
+ 股票代码: {stock_code}
215
+ 技术分析报告:
216
+ {technical_report}
217
+ """,
218
+ 'system_message': '你是一个专业的中国股票分析师。',
219
+ # 结果映射(确保符合项目规范)
220
+ 'valid_scores': [1, -1, 0], # 1:立即买入, -1:不适合买入, 0:观望等待
221
+ 'score_descriptions': {
222
+ 1: '立即买入',
223
+ -1: '不适合买入',
224
+ 0: '观望等待'
225
+ }
226
+ }
227
+ }
228
+
229
+ # 日志配置
230
+ LOGGING_CONFIG = {
231
+ 'version': 1,
232
+ 'disable_existing_loggers': False,
233
+ 'formatters': {
234
+ 'detailed': {
235
+ 'format': '%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s',
236
+ 'datefmt': '%Y-%m-%d %H:%M:%S'
237
+ },
238
+ 'simple': {
239
+ 'format': '%(asctime)s - %(levelname)s - %(message)s',
240
+ 'datefmt': '%Y-%m-%d %H:%M:%S'
241
+ },
242
+ 'console': {
243
+ 'format': '[%(levelname)s] %(message)s'
244
+ }
245
+ },
246
+ 'handlers': {
247
+ 'console': {
248
+ 'class': 'logging.StreamHandler',
249
+ 'level': 'INFO',
250
+ 'formatter': 'console',
251
+ 'stream': 'ext://sys.stdout'
252
+ },
253
+ 'file': {
254
+ 'class': 'logging.handlers.RotatingFileHandler',
255
+ 'level': 'DEBUG',
256
+ 'formatter': 'detailed',
257
+ 'filename': 'stock_analyzer.log',
258
+ 'maxBytes': 10485760, # 10MB
259
+ 'backupCount': 5,
260
+ 'encoding': 'utf-8'
261
+ },
262
+ 'error_file': {
263
+ 'class': 'logging.handlers.RotatingFileHandler',
264
+ 'level': 'ERROR',
265
+ 'formatter': 'detailed',
266
+ 'filename': 'stock_analyzer_errors.log',
267
+ 'maxBytes': 10485760, # 10MB
268
+ 'backupCount': 3,
269
+ 'encoding': 'utf-8'
270
+ }
271
+ },
272
+ 'loggers': {
273
+ 'stock_analyzer': {
274
+ 'level': 'DEBUG',
275
+ 'handlers': ['file', 'error_file'],
276
+ 'propagate': False
277
+ },
278
+ 'stock_analyzer.data_fetcher': {
279
+ 'level': 'DEBUG',
280
+ 'handlers': ['file'],
281
+ 'propagate': False
282
+ },
283
+ 'stock_analyzer.technical_indicators': {
284
+ 'level': 'DEBUG',
285
+ 'handlers': ['file'],
286
+ 'propagate': False
287
+ },
288
+ 'stock_analyzer.report_generator': {
289
+ 'level': 'DEBUG',
290
+ 'handlers': ['file'],
291
+ 'propagate': False
292
+ },
293
+ 'stock_analyzer.utils': {
294
+ 'level': 'DEBUG',
295
+ 'handlers': ['file'],
296
+ 'propagate': False
297
+ }
298
+ },
299
+ 'root': {
300
+ 'level': 'WARNING',
301
+ 'handlers': []
302
+ }
303
+ }
304
+
305
+ # 日志级别配置
306
+ LOG_LEVELS = {
307
+ 'DEBUG': 10,
308
+ 'INFO': 20,
309
+ 'WARNING': 30,
310
+ 'ERROR': 40,
311
+ 'CRITICAL': 50
312
+ }
313
+
314
+ # 默认日志设置
315
+ DEFAULT_LOG_LEVEL = 'INFO'
316
+ LOG_TO_FILE = True
317
+ LOG_TO_CONSOLE = False # 设置为False禁用控制台输出
318
+ LOG_FILE_PATH = 'logs/'
319
+ LOG_MAX_SIZE = 10 * 1024 * 1024 # 10MB
320
+ LOG_BACKUP_COUNT = 5
321
+
322
+
323
+ # 向后兼容的别名
324
+ Config = IndicatorConfig