返回列表 发布新帖

《利用小市值策略筛选潜力股,实践加自选股方法》

5419 6
发表于 2024-3-8 18:06:46 | 显示全部楼层 阅读模式

一、前言

小市值策略是A股热度较高的周期轮动策略,我们可以通过程序代码每天生成固定范围的小市值股票池,辅助策略研究。

步骤如下:

1.获取当天收盘价或最新价的数据。 2.获取当天的总股本,用于计算股票市值。 3.过滤ST股和未上市股票,确保数据的准确性和可靠性。 4.将市值数据进行排序,找出潜力股。 5.存储板块数据到自定义板块,便于后续分析和操作。

二、代码实现

# coding:gbk

import datetime
import pandas as pd
import numpy as np

def after_init(C):
    # 取当天日期
    now_date = datetime.datetime.now().strftime("%Y%m%d")
    # 获取沪深A股列表
    ls = get_stock_list_in_sector("沪深A股")# 文档地址https://dict.thinktrader.net/innerApi/data_function.html?id=7zqjlm#contextinfo-get-stock-list-in-sector-%E8%8E%B7%E5%8F%96%E6%9D%BF%E5%9D%97%E6%88%90%E4%BB%BD%E8%82%A1

    # print(ls)
    ticks = C.get_full_tick(ls) # 文档地址https://dict.thinktrader.net/innerApi/data_function.html?id=7zqjlm#contextinfo-get-full-tick-%E8%8E%B7%E5%8F%96%E5%85%A8%E6%8E%A8%E6%95%B0%E6%8D%AE

    # 计算市值
    mv_dict = {}
    for i in ticks:
        # 取流通股本
        info = C.get_instrument_detail(i) # 文档地址https://dict.thinktrader.net/innerApi/data_function.html?id=7zqjlm#contextinfo-get-instrumentdetail-%E6%A0%B9%E6%8D%AE%E4%BB%A3%E7%A0%81%E8%8E%B7%E5%8F%96%E5%90%88%E7%BA%A6%E8%AF%A6%E7%BB%86%E4%BF%A1%E6%81%AF
        TotalVolumn = info["TotalVolumn"]
        # 计算当日市值
        mv = TotalVolumn * ticks[i]["lastPrice"]
        # 过滤停牌
        if ticks[i]["openInt"] == 1:
            continue
        # 过滤ST
        if "ST" in info["InstrumentName"]:
            continue
        # 过滤未上市
        if str(info["OpenDate"]) <= "19700101":
            continue
        # 记录
        mv_dict[i] = TotalVolumn * ticks[i]["lastPrice"]
    # 排序
    sorted_dict = dict(sorted(mv_dict.items(), key = lambda item: item[1]))
    sorted_ls = [i[0] for i in sorted(mv_dict.items(), key = lambda item: item[1])]

    print(sorted_ls)
    # 取出市值最小的50只
    final_ls = sorted_ls[:50]

    # sector=create_sector('我的','新建板块',False)
    sector=create_sector('我的',f'{now_date}小市值50只',False) # 文档地址https://dict.thinktrader.net/innerApi/system_function.html?id=7zqjlm#create-sector-%E5%88%9B%E5%BB%BA%E6%9D%BF%E5%9D%97
    reset_sector_stock_list(f'{now_date}小市值50只',final_ls) # 文档地址https://dict.thinktrader.net/innerApi/system_function.html?id=7zqjlm#reset-sector-stock-list-%E8%AE%BE%E7%BD%AE%E6%9D%BF%E5%9D%97%E6%88%90%E5%88%86%E8%82%A1

    return

三、筛选后效果图:

1709892333618.png

是不是很简单?快来通过代码实现对小市值股票的精准筛选!

不清楚的内容可添加下方助理微信咨询,有其他 QMT 小技巧想学习的吗?欢迎在下方留言,笔者将根据大家的留言持续更新哦!

欢迎和我一起加入迅投组建的 QMT 实战交流社群,交流群内有许多做量化交易的高手和大佬,具有良好的分享和互助氛围。且迅投官方会不定期为多次分享、乐于助人的群友申请送投研专业版的机会。

只需扫描下方的二维码,名额有限,限时加入。一起分享见解、交换信息、并共同进步,就像群友说的:“就算周末,晚上也有地方沟通交流!”

企业微信截图_17235220909173.png

评论6

*******9588
发表于 2024-3-9 21:20:28 | 显示全部楼层
如果在QMT中运行,   
info = C.get_instrument_detail(i)   
应改为:
info = C.get_instrumentdetail(i)   
就算调试通过了,选出来的股票,也会让你大吃一惊   
因为根据就是按顺序输出50只
*******9398
发表于 2024-3-14 21:25:20 | 显示全部楼层
小市值就是微盘股,2月暴跌吓死我了,回撤超过40%
*******6721_TqEFt
发表于 2024-6-23 13:24:40 | 显示全部楼层
原生python,怎么查历史流通市值?api只能查最新的
Anna向阳而生
发表于 2024-7-8 11:11:54 | 显示全部楼层
11111
*******8128_Ku5r8
发表于 2025-3-29 18:30:15 | 显示全部楼层
*******9588 发表于 2024-3-9 21:20
如果在QMT中运行,   
info = C.get_instrument_detail(i)   
应改为:

我也是get_instrumentdetail(劵商老版本)
*******3489_B4n50
发表于 2025-4-15 09:49:53 | 显示全部楼层
有谁需要开通QMT交易,我是券商的,现在低门槛为散户开通量化交易,有兴趣的可以加我QQ1649896903

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 迅投QMT社区 版权所有 All Rights Reserved. 蜀ICP备19002686号-2
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表