ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从 Excel 手动选股到 Python 自动化:一个散户的进化路径

从 Excel 手动选股到 Python 自动化:一个散户的进化路径 从 Excel 手动选股到 Python 自动化一个散户的进化路径如果你现在的选股流程是这样的打开行情软件翻涨幅榜、成交额榜挨个点开 K 线图目测趋势打开 Excel把感兴趣的票手动记下来第二天复盘时发现昨天记的票有一半不记得为什么选了那这篇文章就是写给你的。我不是要劝你学编程。我想告诉你的是你已经在做量化了只不过用的是最慢的工具。你脑子里那些成交量放大 突破前高 均线多头的判断标准就是策略逻辑。区别只是你用眼睛一只一只看还是让电脑几秒钟全部扫一遍。阶段一你现在的做法Excel 时代典型工作流15:00 收盘 15:05 打开东方财富/同花顺 15:10 翻涨幅榜看前 50 名 15:20 逐个点开 K 线判断趋势 15:40 在 Excel 记下 5-10 个代码 15:50 手动查每只票的均线、成交量 16:00 写下明天的交易计划花了 1 小时看了 50 只票。问题在哪覆盖率低A 股有 5000 多只你只看了 1%主观性强趋势好不好完全靠目测心情不同判断不同不可回溯为什么选了这只票当时什么逻辑下周就忘了重复劳动每天重复同样的动作没有积累阶段二用 Python 把眼睛做的事变成代码你不需要懂机器学习不需要会搭框架。你只需要把你本来就在做的判断翻译成代码。比如你选股的标准是“成交额大于 3 亿、涨幅 3%-8%、最新价站上 20 日均线”用 Python 写出来就是fromalphafeedimportAlphaFeedimportpandasaspd afAlphaFeed()# 第一步拿全市场行情代替你翻涨幅榜dfaf.quotes.get(universesCN_Stock,to_dataframeTrue)df[change_rate]df[change_rate].astype(float)df[amount]df[amount].astype(float)# 第二步初筛代替你逐个排除candidatesdf[(df[amount]3e8)(df[change_rate]0.03)(df[change_rate]0.08)].copy()print(f初筛{len(candidates)}只)两步5 行代码代替了你 20 分钟的翻页操作。而且它看了全部 5000 只不是前 50 名。阶段三加上技术面判断光看今天的涨幅不够。你平时还会看 K 线图判断趋势——让代码来做symbolscandidates[symbol].tolist()# 批量拉 K 线代替你逐个点开 K 线图dfsaf.klines.batch(symbols,period1d,count30,adjustforward,to_dataframeTrue,show_progressTrue)results[]forsymbol,kdfindfs.items():iflen(kdf)20:continueclosekdf[close].values volumekdf[volume].values highkdf[high].values ma5close[-5:].mean()ma20close[-20:].mean()# 均线多头ifnot(close[-1]ma5ma20):continue# 放量今天量 10 日均量 1.5 倍avg_volvolume[-11:-1].mean()ifavg_vol0andvolume[-1]avg_vol*1.5:continue# 突破近 20 日高点prev_highhigh[-21:-1].max()iflen(high)21elsehigh[:-1].max()breakoutclose[-1]prev_high rowcandidates[candidates[symbol]symbol]namerow[name].values[0]iflen(row)0andnameinrow.columnselsechgrow[change_rate].values[0]iflen(row)0else0results.append({代码:symbol,名称:name,涨幅:f{chg*100:.1f}%,最新价:round(close[-1],2),MA5:round(ma5,2),MA20:round(ma20,2),突破新高:✅ifbreakoutelse,})result_dfpd.DataFrame(results)print(f\n最终选出{len(result_df)}只)print(result_df.to_string(indexFalse))这段代码做的事情就是你盯着 K 线图在做的事情。区别是你的眼睛Python 脚本覆盖范围50 只5000 只耗时40 分钟10 秒判断标准看心情写死在代码里可复盘记不住有记录阶段四把结果保存下来代替 Excelfromdatetimeimportdate filenamef选股结果_{date.today():%Y%m%d}.csvresult_df.to_csv(filename,indexFalse,encodingutf-8-sig)print(f已保存到{filename})打开这个 CSV和你以前在 Excel 里记的一模一样——代码、名称、涨幅、价格。但它是自动生成的每天的选股标准完全一致而且可以回溯对比。阶段五自动化彻底解放双手把脚本保存为daily_scan.py加一个定时任务# macOS / Linux每个交易日 15:05 自动运行515* *1-5cd/your/pathuv run python daily_scan.py加上推送通知结果直接发到手机importrequestsdefpush_result(results_df,sendkey):lines[f今日选出{len(results_df)}只\n]for_,rinresults_df.head(15).iterrows():lines.append(f-{r[代码]}{r[名称]}{r[涨幅]}{r[突破新高]})requests.post(fhttps://sctapi.ftqq.com/{sendkey}.send,data{title:f选股结果{date.today()},desp:\n.join(lines)})从此以后你每天下午 3 点多收到一条微信推送告诉你今天有哪些票符合你的标准。不用打开行情软件不用翻涨幅榜不用手动记 Excel。为什么选 AlphaFeed 做这件事你可能会想这些代码用 akshare 或者 Tushare 也能写吧能写。但体验完全不同。1. 全市场行情一行搞定# AlphaFeeddfaf.quotes.get(universesCN_Stock,to_dataframeTrue)# aksharedfak.stock_zh_a_spot_em()# 爬东方财富偶尔挂# Tusharedfpro.daily(trade_date20260824)# 需要积分只有收盘数据AlphaFeed 的universes让你不用维护股票代码列表也不用担心新股上市或退市遗漏。2. 批量 K 线不用写循环# AlphaFeeddfsaf.klines.batch(symbols_200,period1d,count30,adjustforward,to_dataframeTrue)# akshare / Tushareforsymbolinsymbols_200:dfget_kline(symbol)# 一个一个来time.sleep(0.5)# 还得等200 只票AlphaFeed 几秒钟循环sleep 要两分钟。3. 脚本长期跑不会莫名挂掉akshare/efinance 底层是爬虫。东方财富改版了、加验证码了、换接口了你的脚本就挂了。而且挂了不一定报错可能只是返回空数据——你还以为今天没有符合条件的票。AlphaFeed 是正式 APISDK 内置自动重试。你的 crontab 任务可以安心跑一年。进化路线图阶段 1Excel 手动选股 → 痛点慢、覆盖少、不可复盘 → 升级方法把选股标准写成 Python 代码 阶段 2Python 脚本 手动运行 → 痛点每天要记得跑 → 升级方法加 crontab 定时任务 阶段 3自动运行 结果推送 → 痛点策略单一 → 升级方法加更多标签维度多策略并行 阶段 4多策略 历史回测 → 你已经是一个正经的量化选手了你不需要一步到位。先把阶段 1 升级到阶段 2——就这篇文章里的 20 行代码——你的选股效率就会有质的飞跃。开始动手pipinstallalphafeed注册一个 AlphaFeed 账号免费版就够用把你现在 Excel 里的选股条件翻译成代码跑一遍。你会发现以前一小时做的事现在 10 秒就做完了。而且比你做得更全、更客观、更可靠。AlphaFeed 官网https://alphafeed.org/Python SDK 文档https://docs.alphafeed.org/zh-Hans/sdk/python-quickstart
返回列表