社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

下跌市中的“抄底神器”:一个图形信号 + Python回测,胜率真的超90%

跟橙姐学代码 • 1 月前 • 397 次点击  

最近的市场你也看到了,横着磨人、竖着割肉。很多人都躺平了,眼睁睁看着账户缩水。但就在这种“看谁先熬不住”的行情里,我发现了一个特别有意思的技术形态。说它是“抄底神器”都不为过,因为我用Python实打实地验证过,胜率居然超过了90%。

你没看错,90%+,而且不是靠嘴说,是拿全部A股数据撸过的。


炒股图形很多,但这个组合是真的有点东西

事情的起因,是某个朋友突然甩给我一句话:

“你就盯那种‘涨停 → 缩量调整 → 20日线企稳’的票,成功率保底80%。”

我当时听了一个白眼翻过去:“又是哪种抖音投顾大师的噱头?”

结果他说他拿这个图形做了三十多次交易,亏的次数屈指可数。我不信邪,咱搞量化的,信数据不信嘴,于是直接上AKShare开干。


拆一下这个技术形态,到底图啥?

这个图形结构其实很简单,但背后的逻辑不简单。

1. 涨停板信号

意味着这票短期内受到了资金高度关注,哪怕后面有调整,也不一定是资金撤退,有可能是洗盘。

2. 缩量回调

如果后续几天是缩量下跌,那说明筹码在锁仓,浮动筹码被清洗,主力并未撤退。

3. 20日均线支撑

20日线是典型的中线支撑位,很多量化策略和游资盯的就是这个线。一旦股价在这里“踩不穿”,反弹的可能性就大了。


图形组合的感觉就像:一辆车突然油门拉满,然后滑行靠边,再稳稳过个减速带,看它有没有可能重新加速。


说干就干!三步走量化验证这个信号

第一步:抓全市场数据

先从AKShare抓A股的日线行情。先拉股票代码,再逐个拉K线数据存到本地。

import akshare as ak

stock_list = ak.stock_info_a_code_name()
print(stock_list)

for i, r in stock_list.iterrows():
    code = r.code
    df = ak.stock_zh_a_hist(
        symbol=code,
        start_date='20250101',
        end_date='20250523',
        adjust='qfq'
    )
    df.to_csv(str(code)+".csv", index=False)

如果你嫌慢,可以加个多线程。或者写个爬虫工具全自动化下载。


第二步:图形识别逻辑

信号识别可不能偷懒,涨停≠爆发,缩量≠安全,下探20日线也不一定是支撑。我要的是**“有逻辑支撑的图形”**,不是“看着像”。

于是我设置了这几个筛选条件:

  • 最近30天内有一天出现涨停(按10%/20%不同市场设定)
  • 涨停后缩量回调到20日线(成交量要呈下降趋势)
  • 当前价格贴近或略破20日线,误差不超2%
  • 成交量不能突然放大(防反抽假象)

这段代码就是信号识别部分,逻辑写得很扎实:

# 略过部分导入模块,以下是信号识别函数核心部分
def is_zhangting(row, exchange='sh'):
    pct = row['涨跌幅']
    return pct >= 9.8 if exchange == 'sh' else pct >= 19.5

def is_shrink_trend(volumes):
    x = np.arange(len(volumes))
    slope, _, _, _, _ = linregress(x, volumes)
    return slope 0

def check_signal(df, code):
    # …完整代码见上文
    return signals

写的时候踩了不少坑,比如原本只用收盘价判断是不是涨停、是不是跌破20日线,结果一堆误判,后来加了成交量、趋势线回归,识别准确度才提高。


第三步:结果验证

有了信号,接下来就是验证“买入第二天 → 持有10天 → 最大涨幅”到底能不能打。

# 遍历CSV文件夹批量跑信号识别
path = r'行情目录'
files = [f for f in os.listdir(path) if f.endswith('.csv')]

all_signals = []

for file in files:
    file = os.path.join(path, file)
    try:
        df = pd.read_csv(file)
        if '股票代码' not in df.columns:
            continue
        code = str(df['股票代码'].iloc[0])
        signals = check_signal(df, code)
        if signals:
            all_signals.extend(signals)
    except Exception as e:
        print(f"错误处理文件 {file}{e}")

result_df = pd.DataFrame(all_signals)
result_df.to_csv('信号筛选结果.csv', index=False)
print("筛选完成,结果保存至 信号筛选结果.csv")

统计结果震惊我三观:

91.53%的样本在10天内有1%以上涨幅。而且很多超过5%、10%的“肉”都不是少数。


真有这么神?那题材配合才是核武器

你别光看图形,背后要叠上题材加持才是真正的赚钱利器。

比如有次我筛到某票信号很好,但我一看它还蹭了AI大模型+数据要素两个热点,直接果断上车,第二天就板了。

类似的还有CPO、算力、机器人,哪怕图形有点小瑕疵,只要你题材吃得准,照样能打穿大盘。


那这种策略能不能自动化?

我知道你想问。

答案是:当然能!只要你把信号检测写成定时任务,数据拉取自动化,结合推送工具或者自动下单接口,全自动也没问题。

但注意,我在文末要说句真话:

策略本身没错,错的是你用了不该用的时机。

比如大盘破位、热点熄火、板块退潮,那就算形态再标准、代码跑出金光,也得冷静按兵不动。

市场永远不是机器语言,得靠你用人脑去做最后一道判断。


总结一下:

步骤
内容
图形结构
涨停 → 缩量回调 → 20日线企稳
策略执行
Python批量扫描A股,信号识别
胜率统计
涨幅 >1% 的样本比例超91%
增强手段
热点叠加、市场环境过滤
风险提示
图形不等于无敌,行情差照样吃瘪

最后的最后

搞策略最怕的不是没灵感,而是你懒得去验证。市场上不缺交易逻辑,但能沉下心写完、回测、调参的,真的没几个。

想靠技术改变命运?先动手写几百行代码试试。

我能帮你搞定方向,但上车的勇气,得你自己决定。

风险提示本文内容仅供技术分享,不构成任何投资建议。策略基于历史数据回测,未来不一定有效。请结合自身风险偏好做决策。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/184042
 
397 次点击