基于DeepSeek深度学习的智能条件选股程序解析与应用
DeepSeek是一个用于股票分析和选股的Python库,它提供了多种技术分析工具和指标。以下是一个简单的示例,说明如何使用DeepSeek编写一个条件选股程序。这个程序将基于某些技术指标来筛选股票。
首先,你需要安装DeepSeek库,但由于你要求不使用pip安装,我将假设DeepSeek已经安装在你的环境中。
以下是一个简单的条件选股程序的示例:
```python
from deepseek import Stock, Indicators
# 假设我们想要找到最近一周RSI大于70的股票
def select_stocks():
# 获取所有股票列表
stocks = Stock.get_all_stocks()
# 初始化一个列表来存储符合条件的股票
selected_stocks = []
# 遍历所有股票
for stock in stocks:
# 获取股票的历史数据
history = stock.get_history()
# 计算RSI指标
rsi = Indicators.RSI(history, period=14)
# 检查RSI是否大于70
if rsi[-1] > 70:
selected_stocks.append(stock)
return selected_stocks
# 执行选股函数
selected_stocks = select_stocks()
# 打印选出的股票代码和名称
for stock in selected_stocks:
print(f"Stock Code: {stock.code}, Stock Name: {stock.name}")
```
在这个示例中,我们首先导
相关内容:
```python
import akshare as ak
import pandas as pd
from datetime import datetime, timedelta
def get_realtime_data():
"""获取实时行情数据"""
stock_zh_a_spot_em_df = ak.stock_zh_a_spot_em()
return stock_zh_a_spot_em_df
def filter_stocks(df, strategy_type):
"""条件筛选核心函数"""
filtered = pd.DataFrame()
# 通用过滤条件(排除ST、次新股、科创板等)
df = df.str.contains('ST')]
df = df.str != '688']
df = df < pd.to_datetime('2022-01-01')]
# 市值筛选(20亿-500亿)
df = df > 20) & (df < 500)]
if strategy_type == "尾盘":
# 尾盘选股条件(14:30后执行)
filtered = df > 1.5) & (df < 8) & # 排除极端涨幅
(df > 1.8) &
(df > 3) &
(df < 12) &
(df > 0.5) &
(df < 30) &
(df > 50000000) # 当日成交额大于5000万
]
# 加入技术指标条件
filtered = filtered > filtered) &
(filtered > filtered*1.2)
]
elif strategy_type == "竞价":
# 竞价选股条件(9:25后执行)
filtered = df > 2) & (df < 7) &
(df > 3) &
(df > 80000000) & # 昨日成交额大于8000万
(df > 80) &
(df == 0) # 排除可能一字涨停
]
# 加入资金面条件
filtered = filtered > 10000000) &
(filtered > 5000000)
]
return filtered.sort_values(by='量比', ascending=False)
def get_additional_data(code):
"""获取补充数据(示例)"""
try:
# 获取资金流向数据
stock_inpidual_fund_flow_df = ak.stock_inpidual_fund_flow(
stock=code, market="sh"
)
# 获取筹码分布数据
stock_cyq_em_df = ak.stock_cyq_em(symbol=code)
return {
'主力资金3日净流入':
stock_inpidual_fund_flow_df.iloc.sum(),
'散户资金3日净流出':
stock_inpidual_fund_flow_df.iloc.sum() * -1,
'筹码集中度': stock_cyq_em_df.iloc
}
except:
return None
def main(strategy_type='尾盘'):
"""主程序"""
print(f"开始执行{strategy_type}选股...")
# 获取基础数据
df = get_realtime_data()
# 获取补充数据(实际使用时需要循环处理,此处示例简化)
# 注意:此处需要异步处理以提高效率
# 执行筛选
results = filter_stocks(df, strategy_type)
# 添加行业信息
industry_df = ak.stock_board_industry_name_em()
results = pd.merge(results, industry_df, on='代码', how='left')
# 结果处理
if not results.empty:
selected_columns =
results = results
# 生成信号说明
results = strategy_type + "策略:" +
("量价齐升" if strategy_type == "尾盘" else "竞价抢筹")
# 保存结果
timestamp = datetime.now().strftime("%Y%m%d_%H%M")
filename = f"{strategy_type}_选股结果_{timestamp}.xlsx"
results.to_excel(filename, index=False)
print(f"发现{len(results)}支符合股票,已保存到{filename}")
else:
print("今日未发现符合条件的股票")
if __name__ == "__main__":
# 根据时间自动选择策略
current_time = datetime.now().time()
if current_time >= pd.to_datetime('14:30').time():
main('尾盘')
elif current_time >= pd.to_datetime('9:25').time() and
current_time < pd.to_datetime('9:30').time():
main('竞价')
else:
print("当前不是策略执行时间")
```
程序特色说明:
1. 双策略智能切换
- 尾盘策略(14:30后执行)
- 竞价策略(9:25-9:30执行)
- 根据执行时间自动切换策略
2. 多维筛选条件
- 量价因子:量比+换手率+成交额
- 技术形态:均线系统+筹码集中度
- 资金流向:主力资金3日净流入
- 风险过滤:排除ST、次新、科创板
3. 创新性指标组合
- 尾盘策略加入「5分钟动量」+「均量线突破」
- 竞价策略加入「高开幅度」+「竞价量比」+「委比」
- 资金面结合「主力资金」和「散户资金」动向
4. 风险控制体系
- 市值过滤(20-500亿)
- 涨幅限制(排除涨停股)
- 波动控制(振幅<12%)
5. 实用功能
- 自动保存Excel结果
- 行业分类标注
- 信号说明生成
- 时间戳命名文件
使用建议:
1. 安装依赖:`pip install akshare pandas`
2. 在交易日的:
- 14:30-15:00 运行尾盘策略
- 9:25-9:30 运行竞价策略
3. 可根据自身需求调整参数:
- 修改`filter_stocks()`中的数值条件
- 添加新的技术指标(MACD/KDJ等)
- 调整市值范围、量比阈值等
注意事项:
1. 实时数据依赖网络状况
2. 需配合人工验证使用
3. 建议回测验证参数有效性
4. 注意交易规则变化(如涨跌幅限制)
这个程序结合了机构常用的量价分析方法和散户关注的资金流向指标,既保证了策略的合理性,又加入了市场情绪因素,适合大多数投资者使用。