通达信量化tdxquant快速开始第一个策略

按软件说明(步骤分解 | 通达信量化平台),运行第一个策略,出现问题小结如下:

一.找不到要导入的库文件,tqcenter.py,把通达信安装目录的这个文件粘贴到与"涨幅选"同一个目录下,又提示找不到TPythClient.dll,还是不行,又提示缺失依赖环境,tdxrpcx64.dll,都找到了,都复制到工作目录下了,还是不能运行.最终原因是用通达信安装目录下的位置里的这些,不要拷贝,拷贝了也没有用..

二.指定的板块,默认的是"通达信88",这是其系统自带的板块,可以直接用中文名,如果是自定义的板块,则必须用其简称,不能用汉字,只能用汉字的拼音首字母替代汉字.

说来简单,但也花了好长时间还是用cursor的agent帮助解决的.这个agent能力很强.比国产的DB要好用.

下面是原有涨幅选股.py修改后的内容:

python 复制代码
# 策略说明:如果运行时间点价格高出昨收5%, 则进入涨幅选股板块,否则清空该板块
import sys
from pathlib import Path

# 必须使用通达信安装目录下的 tqcenter(DLL/配置在 PYPlugins 内),勿用项目内拷贝
TDX_USER = Path(r'E:\zd_itrend_138\PYPlugins\user')
sys.path.insert(0, str(TDX_USER))

import pandas as pd
import numpy as np
from datetime import datetime
from tqcenter import tq

# 初始化tq(需先启动并登录通达信客户端)
tq.initialize(__file__)

# 1. 基础配置
# 自定义板块须传「简称代码」+ block_type=1(中文名无效)
# 「我的国度260813」对应简称:WDGD260813
sector_code = 'WDGD260813'
batch_codes = tq.get_stock_list_in_sector(sector_code, block_type=1)
if not batch_codes:
    tq.close()
    raise RuntimeError(
        f"板块「{sector_code}」成分股为空。自定义板块请用简称代码且 block_type=1;"
        "并确认通达信已登录且该板块有成分股。"
    )
print(f"股票池「{sector_code}」: {len(batch_codes)} 只")
start_time = "20251025"                                  # 数据起始日期
target_end = datetime.now().strftime("%Y%m%d")           # 数据结束日期(当前日期)
target_gain = 5.0                                        # 目标涨幅(%),可修改
target_block_name = 'ZFXG'                               # 目标自定义板块简称

# 2. 获取并整理收盘价数据
df_real = tq.get_market_data(
    field_list=['Close'],
    stock_list=batch_codes,
    start_time=start_time,
    end_time=target_end,
    dividend_type='front',  # 前复权
    period='1d',            # 日线
    fill_data=True          # 填充缺失数据
)
# 转换为「日期×股票代码」的收盘价宽表
close_df = tq.price_df(df_real, 'Close', column_names=batch_codes)

# 3. 核心:计算当日相较于昨日的涨幅(%)
# 昨日收盘价(向下平移1行)
prev_close = close_df.shift(1)
# 计算涨幅:(当日收盘价 - 昨日收盘价) / 昨日收盘价 × 100%
daily_gain = (close_df - prev_close) / prev_close * 100

# 4. 筛选符合条件的股票(最新交易日涨幅超target_gain%)
latest_date = daily_gain.index[-1]              # 最新交易日
latest_daily_gain = daily_gain.loc[latest_date] # 每只股票最新交易日的涨幅
# 筛选条件:涨幅 > target_gain%(排除NaN,避免数据异常)
target_stocks = latest_daily_gain[latest_daily_gain > target_gain].sort_values(ascending=False)
target_stocks_list = target_stocks.index.tolist()  # 提取符合条件的股票代码列表

# 5. 结果输出与自定义板块操作(可按需注释)
print(f"\n=== 筛选结果(交易日 {latest_date.strftime('%Y-%m-%d')},涨幅>{target_gain}%)===")
print(f"板块股票数: {len(batch_codes)},当日最高涨幅: {latest_daily_gain.max():.2f}%")
if not target_stocks.empty:
    # ===================== 模块1:打印筛选结果 =====================
    print("【模块1:打印筛选结果】")
    print(f"符合条件的股票共 {len(target_stocks)} 只:")
    print(f"{'股票代码':<12} {'昨日收盘价':<12} {'当日收盘价':<12} {'当日涨幅':<10}")
    print("-" * 50)
    for stock_code, gain in target_stocks.items():
        prev_price = prev_close.loc[latest_date, stock_code]
        curr_price = close_df.loc[latest_date, stock_code]
        print(f"{stock_code:<12} {prev_price:<12.2f} {curr_price:<12.2f} {gain:<.2f}%")
    print("-" * 50)

    # ===================== 模块2:添加至自定义板块 =====================
    try:
        print("【模块2:自定义板块操作】")
        tq.send_user_block(block_code=target_block_name, stock_list=target_stocks_list, show=True)
        print(f"✅ 已成功将股票添加至自定义板块「{target_block_name}」")
    except Exception as e:
        print(f"❌ 添加自定义板块失败:{e}")
    print("-" * 50)



else:
    # ===================== 模块1:打印空结果 =====================
    print("【模块1:打印筛选结果】")
    print(f"暂无当日涨幅>{target_gain}%的股票")
    print("-" * 50)

    # ===================== 模块2:清空自定义选板块 =====================
    try:
        print("【模块2:自定义板块操作】")
        tq.send_user_block(block_code=target_block_name, stock_list=[], show=True)
        print(f"✅ 已清空自定义板块「{target_block_name}」")
    except Exception as e:
        print(f"❌ 清空自定义板块失败:{e}")
    print("-" * 50)
相关推荐
Albart5752 小时前
Windows快速访问幽灵文件夹彻底解决|清除tmp残留_无效固定项_侧边栏残留(Win10_Win11通用)
windows·powershell脚本·快速访问修复·幽灵文件夹清理·tmp垃圾清除·电脑系统优化
Mr.亮先生15 小时前
# 把 DeepSeek 官方 Agent 工作台,直接装进 Windows 启动器里
windows·deepseek·harness
曹牧20 小时前
C#:List<string>特定格式输出
windows·c#
易点云徐源1 天前
(已解决)Photoshop 多画板 Alt+拖动复制随机卡死 4~5 分钟
windows·photoshop
Dovis(誓平步青云)1 天前
DevEco Studio 6.1.1 Windows 安装实录:从下载校验到首次启动
android·开发语言·数据库·人工智能·windows·harmonyos
bosins1 天前
将 Hyper-V 上的 Ubuntu 虚拟机内容迁移到 WSL (Windows Subsystem for Linux) 中
linux·windows·ubuntu
ι:1 天前
DeepSeek Harness 桌面一键启动与网页背景修改指南
windows·学习·deepseekharness
zuozewei1 天前
7DGroup 开源 dsh-7d-tray-win 系统托盘插件
windows·代码复审
深念Y1 天前
Wine 运行 HiTool 踩坑记录
linux·windows·容器·桌面·wine·虚拟器