乐于分享
好东西不私藏

通达信软件用法——盘面一览

通达信软件用法——盘面一览
欢迎

置顶精品


一个视频

已关注
关注
重播 分享

讲清楚

通达信软件复盘工具 

用法。


历史精品


通达信软件复盘工具

自定义数据制作备忘

通达信软件用法——文件迁移

通达信软件用法——市场(我的版面)

通达信软件用法——功能(公式管理器)

通达信软件用法——功能(自定义数据管理器)

通达信软件用法——功能(扩展数据管理器)

通达信软件用法——使用python写一个下载专业财务数据的角本

股票成本价都有啥


分享


通达信软件用法——怎么参与盘后定价

通达信软件用法——高低点画线主图公式

通达信软件用法——变盘时间窗口主图公式

通达信软件用法——一劳永逸的黄金分割线主图公式

通达信软件用法——RPS版面设置

通达信软件用法——RPS排序公式

通达信软件用法——概念RPS曲线在个股幅图上显示

通达信软件用法——RPS扩展数据设置

通达信软件用法——强度排名版面设置

通达信软件用法——市场人气版面设置

强度排名
五个行业首次强度上穿50
个股首次上穿50同时二级行业上穿50产生共振

净利润断层只出现了4支

后记


给大家解决一个在下载专业财务数据的时候,股票数据包下载慢的问题,那就是单独写一个下载股票数据包的代码,设置如下 

打开策略管理器

新建文件

勾选新增的策略,打开编辑

复制代码

import os

import requests

import zipfile

from datetime import datetime

# ==================== 配置区域 ====================

# 通达信安装目录,请根据自己的实际安装路径修改

TDX_DIR = r"D:\tdxV2026X64"

# 下载超时时间(秒)

TIMEOUT = 300

# 下载失败重试次数

MAX_RETRY = 3

# 下载完成后是否自动删除临时zip包

AUTO_DELETE_TEMP_ZIP = True

# ==================================================

# 仅保留股票数据包的下载配置

DOWNLOAD_CONFIG = {

    "股票数据包": {

        "url": "http://data.tdx.com.cn/vipdoc/tdxgp.zip",

        "extract_dir": r"vipdoc\cw",

        "type": "zip",

    },

}

def download_file(url, save_path, desc="文件"):

    """带进度显示的文件下载"""

    os.makedirs(os.path.dirname(save_path), exist_ok=True)

    headers = {

        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',

        'Referer': 'https://www.tdx.com.cn/',

    }

    for attempt in range(MAX_RETRY):

        try:

            print(f"\n开始下载 {desc}...")

            response = requests.get(url, headers=headers, stream=True, timeout=TIMEOUT)

            response.raise_for_status()

            total_size = int(response.headers.get('content-length', 0))

            print(f"文件大小: {total_size/1024/1024:.1f} MB")

            downloaded = 0

            with open(save_path, 'wb') as f:

                for chunk in response.iter_content(chunk_size=8192):

                    if chunk:

                        f.write(chunk)

                        downloaded += len(chunk)

                        if total_size > 0:

                            percent = downloaded / total_size * 100

                            print(f"\r  进度: {percent:.1f}% ({downloaded/1024/1024:.1f}MB / {total_size/1024/1024:.1f}MB)", end='')

            actual_size = os.path.getsize(save_path)

            print(f"\n✓ 下载完成!实际大小: {actual_size/1024/1024:.1f} MB")

            return True

        except Exception as e:

            print(f"\n✗ 下载失败(第{attempt+1}次): {e}")

            if attempt < MAX_RETRY - 1:

                print("  正在重试...")

    print(f"✗ {desc}下载失败")

    return False

def unzip_file(zip_path, extract_dir):

    """解压zip文件"""

    print(f"\n正在解压到: {extract_dir}")

    if not zipfile.is_zipfile(zip_path):

        print("✗ 不是有效的zip文件")

        return False

    try:

        with zipfile.ZipFile(zip_path, 'r') as zip_ref:

            file_list = zip_ref.namelist()

            print(f"  压缩包包含 {len(file_list)} 个文件/文件夹")

            # 显示前10个文件

            for f in file_list[:10]:

                print(f"    - {f}")

            if len(file_list) > 10:

                print(f"    ... 还有 {len(file_list)-10} 个")

            os.makedirs(extract_dir, exist_ok=True)

            zip_ref.extractall(extract_dir)

        print(f"✓ 解压完成!")

        return True

    except Exception as e:

        print(f"✗ 解压失败: {e}")

        return False

def download_zip_pack(name, config, tdx_dir):

    """下载一个zip数据包"""

    print("\n" + "=" * 60)

    print(f"【{name}】")

    print("=" * 60)

    url = config['url']

    extract_dir = os.path.join(tdx_dir, config['extract_dir'])

    # 临时保存路径

    temp_dir = os.path.join(tdx_dir, "temp_download")

    zip_filename = os.path.basename(url)

    zip_path = os.path.join(temp_dir, zip_filename)

    # 下载

    success = download_file(url, zip_path, name)

    if not success:

        return False

    # 解压

    success = unzip_file(zip_path, extract_dir)

    # 解压成功后自动删除临时zip包

    if success and AUTO_DELETE_TEMP_ZIP:

        try:

            os.remove(zip_path)

            print(f"✓ 已自动清理临时压缩包: {zip_path}")

        except Exception as e:

            print(f"⚠ 清理临时文件失败: {e}")

    return success

def main():

    """主函数"""

    print("=" * 60)

    print("  通达信股票数据包自动下载工具(带自动清理)")

    print(f"  通达信目录: {TDX_DIR}")

    print(f"  当前时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")

    print("=" * 60)

    # 检查目录

    if not os.path.exists(TDX_DIR):

        print(f"\n✗ 错误:通达信目录不存在: {TDX_DIR}")

        return

    results = {}

    # 仅执行股票数据包下载

    for name, config in DOWNLOAD_CONFIG.items():

        success = download_zip_pack(name, config, TDX_DIR)

        results[name] = success

    # 总结

    print("\n" + "=" * 60)

    print("  下载完成总结")

    print("=" * 60)

    for name, success in results.items():

        status = "✓ 成功" if success else "✗ 失败"

        print(f"  {name}: {status}")

    print("\n" + "=" * 60)

    print("  全部任务完成!")

    print("=" * 60)

if __name__ == "__main__":

    main()

完成代码编辑后运行

欢迎有空再