返回列表 发布新帖

QMT如何获取回测当日涨停的股票

3250 3
发表于 2024-8-8 14:50:54 | 显示全部楼层 阅读模式

我们在回测的时候,有时需要获得过去每一日涨停的股票数据

以下代码是运行在QMT平台中的,可以获取回测时每个交易日涨停的数据

import pandas as pd


def init(c):
    c.stock_list = c.get_stock_list_in_sector('沪深A股')
    # 去除掉创业板,科创板的股票
    c.stock_list = [stock for stock in c.stock_list if
                    not (stock.startswith("30") or stock.startswith("68") or stock.endswith(".BJ"))]

    # 如果没有数据,需要先下载数据
    for stock in c.stock_list:
        download_history_data(stock, '1d', '20240701', '20240807')
    print("下载完成...")
    # print(c.stock_list)
    # print(len(c.stock_list))


def handlebar(c):
    bar_date = timetag_to_datetime(c.get_bar_timetag(c.barpos), '%Y%m%d')
    print(bar_date)
    # 获取前收盘价和收盘价,用于计算涨幅
    local_data = c.get_market_data_ex(['preClose', 'close'], c.stock_list, end_time=bar_date, period=c.period,
                                      dividend_type='none', count=1)
    # print(local_data)
   
    data_list = []
    for stock, df in local_data.items():
        if df['preClose'].iloc[0] == 0:  # 过滤掉前收盘价为0的数据
            continue
        curr_date = df.index[0]
        growth_rate = (df['close'].iloc[0] - df['preClose'].iloc[0]) / df['preClose'].iloc[0] * 100
        growth_rate = round(growth_rate, 2)  # 涨幅
        # print(curr_date,growth_rate)
        temp_dict = {
            'stock': stock,
            'date': curr_date,
            '涨跌幅': growth_rate
        }
        data_list.append(temp_dict)  # 列表套字典

    if len(data_list) == 0:
        return
    result_df = pd.DataFrame(data_list)
    # print(result_df)
    high_limit_df = result_df[result_df['涨跌幅'] > 9.5]
    high_limit_df = high_limit_df.reset_index(drop=True) # 重置索引
    print(high_limit_df)

回测2024-8-5日数据,打印如下:


后续会发布一些QMT使用上的小技巧,每个小技巧如同散落的珍珠,循序渐进,用线将每个珍珠串起来,可以形成实用的策略,可以我的微信公众号

qrcode_for_gh_15ea42cc7893_344.jpg


来自圈子: 新手入门

评论3

Anna向阳而生
发表于 2024-8-9 11:34:57 | 显示全部楼层
无门槛申请QMT(mini qmt)、ptrade,策略代写,股票低佣万0.854,融资4.5%起 ,联系:Annalidian-8285
Clarence.罗
发表于 2025-1-2 12:23:09 来自手机 | 显示全部楼层
学习啦!

涨停价应该是昨天是收盘价乘以1.1或1.2之后还有个在小数点后两位的四舍五入
*******7532 发表于 2025-3-14 14:36:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

回复

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

客服专线

400-080-8112

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