forked from ZhuLinsen/daily_stock_analysis
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
322 lines (294 loc) · 13.8 KB
/
.env.example
File metadata and controls
322 lines (294 loc) · 13.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
# ===================================
# A股自选股智能分析系统 - 环境变量配置模板
# 复制此文件为 .env 并填入真实配置
# ===================================
# 自选股列表(逗号分隔,支持沪深两市代码)
# 沪市:600xxx, 601xxx, 603xxx
# 深市:000xxx, 002xxx, 300xxx
STOCK_LIST=600519,300750,002594
# 数据源配置
# Tushare Pro Token(可选,从 https://tushare.pro/weborder/#/login?reg=834638 获取)
TUSHARE_TOKEN=your_tushare_token_here
# ===================================
# 定时任务配置(本地/Docker运行)
# ===================================
# SCHEDULE_ENABLED=true
# SCHEDULE_TIME=18:00
# 启动时是否立即运行一次(默认 true)
# SCHEDULE_RUN_IMMEDIATELY=false
# ===================================
# AI 模型配置(二选一,至少配置一个)
# ===================================
#
# 【方案一】使用 Gemini(推荐,有免费额度)
# 从 https://aistudio.google.com/ 获取免费 API Key
# 留空或删除此行则跳过 Gemini,直接使用方案二
# 如果是本地运行,直连gemini/openai官网需要特殊网络环境
GEMINI_API_KEY=
GEMINI_MODEL=gemini-3-flash-preview
GEMINI_MODEL_FALLBACK=gemini-2.5-flash
# 温度参数(0.0-2.0):控制输出随机性
# - 0.0-0.3: 更保守、确定性强(适合技术分析)
# - 0.4-0.7: 平衡模式(推荐,默认)
# - 0.8-1.2: 更有创意、多样性强
# - 1.3-2.0: 非常随机(不推荐用于股票分析)
GEMINI_TEMPERATURE=0.7
# 请求间隔(秒),防限流,默认 2.0
# GEMINI_REQUEST_DELAY=2.0
# 【方案二】使用 Anthropic Claude API
# 从 https://console.anthropic.com 获取 API Key
# ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxx
# ANTHROPIC_MODEL=claude-3-5-sonnet-20241022
# ANTHROPIC_TEMPERATURE=0.7
# ANTHROPIC_MAX_TOKENS=8192 # 可选,响应最大 token 数
# 【方案三】使用 OpenAI 兼容 API(支持多种国产模型)
# 如果不想用 Gemini/Anthropic,可以只配置下面三项(去掉注释)
# 支持:OpenAI、DeepSeek、通义千问、Moonshot、智谱GLM 等
#
# ┌──────────────────────────────────────────────────────────────┐
# │ 配置规则: │
# │ OPENAI_API_KEY = 必填,你的 API Key │
# │ OPENAI_BASE_URL = 可选,第三方 API 地址(官方可不填) │
# │ OPENAI_MODEL = 可选,模型名称(默认 gpt-4o-mini) │
# │ OPENAI_VISION_MODEL = 可选,图片识别专用模型(不填则用 │
# │ OPENAI_MODEL;DeepSeek 等不支持图像) │
# │ OPENAI_TEMPERATURE = 可选,温度参数(默认 0.7) │
# └──────────────────────────────────────────────────────────────┘
#
# --- OpenAI 官方(只需填 Key)---
# OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
# OPENAI_TEMPERATURE=0.7
#
# --- DeepSeek(国产,便宜好获取)---
# OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
# OPENAI_BASE_URL=https://api.deepseek.com/v1
# OPENAI_MODEL=deepseek-chat
# OPENAI_TEMPERATURE=0.7
# 搜索引擎配置(用于获取股票新闻)
# Tavily API Keys(支持多个,逗号分隔)
TAVILY_API_KEYS=your_tavily_key_here
# SerpAPI Keys(支持多个,逗号分隔)
SERPAPI_API_KEYS=your_serpapi_key_here
# Brave Search API Keys(支持多个,逗号分隔)
# 获取: https://brave.com/search/api/
BRAVE_API_KEYS=your_brave_key_here
# ===================================
# 新闻时效与分析筛选配置
# ===================================
# 新闻最大时效(天),搜索时限制结果在近期内,避免使用过时信息
# NEWS_MAX_AGE_DAYS=3
# 乖离率阈值(%),偏离 MA5 超过此值提示不追高;强势趋势股自动放宽到 1.5 倍
# BIAS_THRESHOLD=5.0
# ===================================
# 通知渠道配置(可同时配置多个,全部推送)
# ===================================
#
# 【方式一】企业微信机器人
# 在企业微信群 -> 设置 -> 群机器人 -> 添加 -> 复制 Webhook 地址
#
# WECHAT_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your_key_here
#
# 【方式二】飞书机器人
# 在飞书群 -> 设置 -> 群机器人 -> 添加机器人 -> 自定义机器人 -> 复制 Webhook 地址
#
# FEISHU_WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/your_key_here
#
# 【方式三】Telegram 机器人(需同时配置两项)
# 1. 在 Telegram 找 @BotFather -> /newbot -> 获取 Bot Token
# 2. 获取 Chat ID:发消息给 @userinfobot 或访问 https://api.telegram.org/bot<token>/getUpdates
#
# TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
# TELEGRAM_CHAT_ID=123456789
# TELEGRAM_MESSAGE_THREAD_ID=2780
#
# 【方式四】邮件推送(只需 2 项配置,SMTP 自动识别)
# 支持 QQ邮箱、163邮箱、Gmail、Outlook 等主流邮箱
# 1. 获取授权码(以QQ邮箱为例):设置 -> 账户 -> POP3/SMTP服务 -> 开启 -> 获取授权码
# 2. 填写下面两项即可:
#
# EMAIL_SENDER=your_email@qq.com
# EMAIL_PASSWORD=your_email_auth_code
# EMAIL_RECEIVERS=receiver@example.com # 可选,留空则发给自己
#
# 【方式四扩展】股票分组发往不同邮箱(Issue #268,可选)
# 配置后,不同股票组的报告发送到对应邮箱;大盘复盘发往所有配置邮箱
# STOCK_GROUP_1=600519,300750
# EMAIL_GROUP_1=user1@example.com
# STOCK_GROUP_2=002594,AAPL
# EMAIL_GROUP_2=user2@example.com
#
# 【方式五】自定义 Webhook(支持多个,逗号分隔)
# 适用于:钉钉、Discord、Slack、Bark、自建服务等任意支持 POST JSON 的 Webhook
# 系统会自动识别常见服务并使用对应格式
#
# CUSTOM_WEBHOOK_URLS=https://oapi.dingtalk.com/robot/send?access_token=xxx,https://hooks.slack.com/services/xxx
# CUSTOM_WEBHOOK_BEARER_TOKEN=your_bearer_token # 可选,用于需要认证的 Webhook (Header Authorization: Bearer <token>)
# WEBHOOK_VERIFY_SSL=true # 默认校验。设为 false 可支持自签名证书。警告:禁用后存在 MITM 劫持风险,仅限可信内网
#
# 【方式六】Pushover 配置
# 注册Pushover账号,并创建应用Token https://pushover.net/apps/build
# PUSHOVER_USER_KEY=your_user_key
# PUSHOVER_API_TOKEN=your_api_token
#
# 【方式七】PushPlus 配置(国内推送服务,推荐)
# 注册PushPlus账号并获取Token https://www.pushplus.plus
# PUSHPLUS_TOKEN=your_pushplus_token
#
# 【方式八】Discord 配置
# 支持两种方式:Webhook(推荐,配置简单)和 Bot API(权限高)
#
# 方式1:Discord Webhook(推荐,无需 Bot 账号)
# 在 Discord 频道设置 -> 集成 -> Webhook -> 新建 Webhook -> 复制 URL
# DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your_webhook_id/your_webhook_token
#
# 方式2:Discord Bot API(需要 Bot 账号和频道 ID)
# 1. 创建 Bot:https://discord.com/developers/applications -> 新建应用 -> Bot -> 创建 Bot
# 2. 获取 Bot Token:Bot 页面 -> 重置 Token
# 3. 获取频道 ID:Discord 开启开发者模式 -> 右键频道 -> 复制 ID
# DISCORD_BOT_TOKEN=your_bot_token_here
# DISCORD_MAIN_CHANNEL_ID=your_channel_id_here
#
# 【方式九】Server酱3 配置(国内推送服务,支持微信推送)
# 注册Server酱3账号并获取SendKey https://sc3.ft07.com/
# SERVERCHAN3_SENDKEY=your_serverchan3_sendkey
#
# 【高级配置】消息长度限制(字节)
# 超过限制会自动分批发送,一般无需修改
# FEISHU_MAX_BYTES=20000 # 飞书限制约 20KB,默认 20000 字节
# WECHAT_MAX_BYTES=4000 # 企业微信限制 4096 字节,默认 4000 字节
#
# 【Markdown 转图片】
# 对不支持 Markdown 的渠道,将报告转为图片发送,提升可读性
# 需安装 wkhtmltopdf(Docker 已内置),本地运行: apt install wkhtmltopdf 或 brew install wkhtmltopdf
# MARKDOWN_TO_IMAGE_CHANNELS=telegram,wechat,custom,email # 逗号分隔
# MARKDOWN_TO_IMAGE_MAX_CHARS=15000 # 超过此长度不转换,避免超大图片
# ===================================
# 单股推送配置(可选)
# ===================================
# 单股推送模式:每分析完一只股票立即推送,而不是汇总后推送
# SINGLE_STOCK_NOTIFY=false
#
# 报告类型:simple(精简) 或 full(完整)
# Docker环境下如果推送内容不完整,可以设置为 full
# REPORT_TYPE=simple
# 仅分析结果摘要:设为 true 时只推送汇总,不含个股详情
# REPORT_SUMMARY_ONLY=false
# 个股分析与大盘复盘合并推送(默认 false),减少邮件数量、降低垃圾邮件风险
# MERGE_EMAIL_NOTIFICATION=false
# ===================================
# 分析间隔配置(可选)
# ===================================
# 个股分析和大盘分析之间的延迟时间(秒)
# 用于避免触发 Gemini 等 AI API 的限流
# ANALYSIS_DELAY=0
# 应用 AppKey(与 Webhook 模式共用)
DINGTALK_APP_KEY=xxxx
# 应用 AppSecret(与 Webhook 模式共用)
DINGTALK_APP_SECRET=xxxx
# 启用 Stream 模式
DINGTALK_STREAM_ENABLED=false
# 飞书应用机器人配置
FEISHU_APP_ID=xxxx
FEISHU_APP_SECRET=xxxx
# 启用长连接模式
FEISHU_STREAM_ENABLED=false
# 数据库路径
DATABASE_PATH=./data/stock_analysis.db
# ===================================
# 回测配置(可选)
# ===================================
# 是否启用回测(true/false)
BACKTEST_ENABLED=true
# 回测评估窗口(交易日数)
BACKTEST_EVAL_WINDOW_DAYS=10
# 仅回测 N 天前的分析记录(避免当天/最近数据不完整)
BACKTEST_MIN_AGE_DAYS=14
# 回测引擎版本(当回测逻辑升级时用于区分结果)
BACKTEST_ENGINE_VERSION=v1
# 中性区间阈值(%),例如 2 表示 -2%~+2% 视为震荡
BACKTEST_NEUTRAL_BAND_PCT=2.0
# === 定时任务配置 ===
# 是否启用定时任务(true/false)
SCHEDULE_ENABLED=false
# 每日执行时间(HH:MM 格式,24小时制)
SCHEDULE_TIME=18:00
# 是否启用大盘复盘(true/false)
MARKET_REVIEW_ENABLED=true
# 大盘复盘市场区域:cn(A股)、us(美股)、both(两者),us 适合仅关注美股的用户
# MARKET_REVIEW_REGION=cn
# ===================================
# 代理配置(可选)
# ===================================
# 是否启用代理(true/false,默认 false)
# 仅在本地开发环境生效,GitHub Actions 环境自动跳过
USE_PROXY=false
# 代理服务器地址(默认 127.0.0.1)
PROXY_HOST=127.0.0.1
# 代理服务器端口(默认 10809)
PROXY_PORT=10809
# 系统配置
# 日志目录
LOG_DIR=./logs
# 日志级别(DEBUG/INFO/WARNING/ERROR)
LOG_LEVEL=INFO
# 最大并发线程数(建议保持低并发防封禁)
MAX_WORKERS=3
# 是否启用调试日志
DEBUG=false
# ===================================
# WebUI 配置(可选)
# ===================================
# 是否默认启动 WebUI(true/false,默认 false)
WEBUI_ENABLED=false
# WebUI 监听地址(默认 127.0.0.1;Docker/Compose 场景需要 0.0.0.0 才能从宿主机访问端口映射)
WEBUI_HOST=127.0.0.1
# WebUI 监听端口(默认 8000)
WEBUI_PORT=8000
# 反向代理下信任 X-Forwarded-For 获取真实 IP(Nginx/Cloudflare 前置时设为 true,直连公网时保持 false 防伪造)
# TRUST_X_FORWARDED_FOR=false
# ===========================================
# 图片识别股票代码(设置页「从图片添加」)
# ===========================================
# 单次请求超时 60 秒;图片最大 5MB
# 需配置 GEMINI_API_KEY、ANTHROPIC_API_KEY 或 OPENAI_API_KEY 中至少一个(Vision 能力模型)
# ===========================================
# Data Fetcher Priority Configuration
# ===========================================
# Lower number = higher priority (tried first)
# Default priorities: efinance(0) > akshare(1) > tushare/pytdx(2) > baostock(3) > yfinance(4)
# For US stocks, set YFINANCE_PRIORITY=0 to use Yahoo Finance first
# EFINANCE_PRIORITY=0 # EastMoney (China) - default: 0
# AKSHARE_PRIORITY=1 # AkShare (China) - default: 1
# TUSHARE_PRIORITY=2 # Tushare Pro (China) - default: 2
# PYTDX_PRIORITY=2 # Tongdaxin (China) - default: 2
#
# Pytdx custom server (for intranet/deploy): use custom host instead of built-in public servers
# PYTDX_HOST=192.168.1.100
# PYTDX_PORT=7709
# Or multiple servers: PYTDX_SERVERS=ip1:port1,ip2:port2
# BAOSTOCK_PRIORITY=3 # Baostock (China) - default: 3
# YFINANCE_PRIORITY=4 # Yahoo Finance (Global) - default: 4
# Example: Prioritize Yahoo Finance for US stocks
# YFINANCE_PRIORITY=0
# EFINANCE_PRIORITY=99
# ===========================================
# 实时行情数据源优先级配置
# ===========================================
# 用于获取量比、换手率、市盈率等实时数据
# 可选数据源(逗号分隔,按顺序尝试):
# - tencent: 腾讯财经,有量比/换手率/PE/PB,单股查询稳定(推荐首选)
# - akshare_sina: 新浪财经,基本行情,无量比,但非常稳定
# - efinance: 东财(efinance库),有量比,全量拉取易被封
# - akshare_em: 东财(akshare库),数据最全,全量拉取易被封
# - tushare: Tushare Pro,需要2000积分,数据全面(付费用户推荐)
#
# 默认优先级:tencent > akshare_sina > efinance > akshare_em
# 如果有 Tushare Pro 高积分账号,可将 tushare 放在首位:
# REALTIME_SOURCE_PRIORITY=tushare,tencent,akshare_sina,efinance,akshare_em
# REALTIME_SOURCE_PRIORITY=tencent,akshare_sina,efinance,akshare_em
# 是否启用实时行情(关闭后使用历史收盘价分析)
# ENABLE_REALTIME_QUOTE=true
# 是否启用筹码分布(该接口不稳定,云端部署建议关闭)
# ENABLE_CHIP_DISTRIBUTION=true
# 是否启用东财请求接口补丁(东财接口无法成功请求时,可尝试开启)
# ENABLE_EASTMONEY_PATCH=false