
数据是个宝,研究少烦恼
挖的深,看的远,找规律
做笔记,练盘感,多总结
★★★★★博文原创不易,源码使用过程中,如有疑问的地方,欢迎大家指正留言交流。喜欢的老铁可以点赞+收藏分享+置顶,小红牛在此表示感谢。★★★★★
Python股票热点方向+龙头标的复盘系统6.66
股票热点数据分类统计系统3.0(padans+matplotlib+sqlite3)
股票精简节点记事本2.0优化版(tkinter+json)
量化教程: 教你快速上车,通达信量化平台(TdxQuant太强了,真香啊)
对复盘系统sqlites数据库中的,数据按时间截取数据
Python处理复盘系统中,sqlite3数据库中的json热点和行业字段
模拟炒股K线训练系统2.0(threading+mplfinance)
股票自选股公告系统1.0
Python提取通达信,自定义板块中成分股代码
教你用Python下载东财业绩报,做tdx自定义数据。
Python指数月线回测系统,回测逻辑3种新写法
(简易版)Ex写通达信自定义序列+外部数据1.0
使用Excel制作通达信自定义外部数据,安排!!!
通达信自定义数据的制作+导入+显示+选股
Tdx#自定义数据常用的指标编写与注释
通达信实现股票联动,消息号优化探测的方法1.2
200条复盘核心及细分点(仅供参考)
200条关于热点和龙头股的理解(仅供参考)
龙头股Vs跟风股(杂毛)200条(仅供参考)
通达信指标公式34:避雷参考,选股前,必须优先排除有垃圾属性的股。
通达信指标公式33:严重异动提醒,计算10/30日的涨跌幅偏离值
1.对股票属于的市场类型做标识符梳理:当股票代码为60,68开头='1|'+时间+'|',30,00开头='0|' ,92开头'2|'。
def get_stock_type(code): if code.startswith(('60', '68')): return '1' elif code.startswith(('30', '00')): return '0' elif code.startswith('92'): return '2' else: return '3'
2.对股票代码处理(删除前缀和后缀)
添加前缀:比如用于网页字段或tq量化平台中需要添加前缀等,才能解析到正确的地址。如sh600519,或者sh.600519字母大小写开头等,自己根据当时的需求处理。
def add_prefix(code): code = code.strip() if not code.isdigit():
return None if code.startswith(('60', '68')): return f"sh{code}" elif code.startswith(('30', '00')): return f"sz{code}" elif code.startswith('92'): return f"bj{code}" else: return None
去掉文本或字母开头类型的前缀或后缀:适用于自定义数据,比如把前后缀,sh600519或者600519.sh转化成600519,只取股代码。
def extract_code(s): """从 'sh600519' 或 '600519.sh' 中提取6位数字代码""" if s[0].isalpha(): return s[-6:] elif s[-1].isalpha(): return s[:6] else: return s
codes = ["sh600519", "600519.sh"]for c in codes: print(f"{c} -> {extract_code(c)}")
如自定义板块中的前缀数据格式为1600519,对于数值类型的的前后缀我们这样处理,取右边 6 个字符:使用 s[-6:],取左边 6 个字符:使用 s[:6]。
3.日期处理:对于序列数据通达信格式有要求,必须为YYYYMMDD 格式(如 20260506),以下可以将不同格式的日期字符串统一转换。通过 strptime 解析原始格式,再用 strftime 输出目标格式。
from datetime import datetime
def format_to_yyyymmdd(date_str, original_format): """ 将指定格式的日期字符串转换为 YYYYMMDD 格式。
参数: date_str: 日期字符串,如 '2026-05-06' original_format: 原字符串的格式,如 '%Y-%m-%d'
返回: YYYYMMDD 格式的字符串,如 '20260506' """ dt = datetime.strptime(date_str, original_format) return dt.strftime('%Y%m%d')
examples = [ ("2026-5-6", "%Y-%m-%d"), ("2026/05/06", "%Y/%m/%d"), ("06 May 2026", "%d %b %Y"), ("06 May 2026", "%d %B %Y"), ("20260506", "%Y%m%d"), ("06-05-2026", "
%d-%m-%Y"), ("2026年05月06日", "%Y年%m月%d日"), ]
for date_str, fmt in examples: try: result = format_to_yyyymmdd(date_str, fmt) print(f"{date_str:20} -> {result}") except ValueError as e: print(f"{date_str:20} 解析失败:{e}")
输出内容:
2026-5-6 -> 202605062026/05/06 -> 2026050606 May 2026 -> 2026050606 May 2026 -> 2026050620260506 -> 2026050606-05-2026 -> 202605062026年05月06日 -> 20260506
4.数值处理:主要是四舍五入和除以1w(数据值比较大时,让显示精简)value = 123456789 # 单位:元
value_wan = value / 10000 # 12345.6789
result = round(value_wan, 2) # 12345.68
print(result) # 输出 12345.68
f"{float(value) / 10000:.2f}"
5.拼接字段:把处理好的股代码+日期等字符串用f"{}"格式化操作,拼接成通达信能够识别的标准格式。自定义序列数据:标识符+‘|’+股代码+‘|’+日期+‘|’+数值+换行符,如下,amout数值保留两位小数处理。
f"{stock_type}|{code}|{date_compact}|{amount:.2f}\n")
自定义外部数据:股代码+‘|’+文本或数值内容+‘|’+换行符+|0.000
line1 = f"{market}|{code}|{qoq} 净利润:{profit + '万' if profit else ''} 营业收入{revenue +
'万' if revenue else ''} {yoy} {date}"line1 = ' '.join(line1.split()) f"{line1}\n|0.000"
6.数据保存:把拼接好的数据用open函数写入,保存数据即可,可以参考以下部分代码写法,具体的以实际需求为主。
with open(sell_filename, 'w', encoding='utf-8') as f_sell: for code, dt, amount in sell_results: stock_type = self.get_stock_type(code) f_sell.write(f"{stock_type}|{code}|{date_compact}|{amount:.0f}\n")
温馨提示:股市有风险,投资需谨慎。本文所写内容仅供粉丝们参考使用,仅为个人研究观点表述,股友们须自己思考与分析股市。
-!! 完毕 ,感谢您的收看!!-
-------★★历史博文集合★
★------
股软件 龙虎榜小红牛分析系统 资金大单系统
通达信主附图指标改选股器
通达信自定义数据系统
自定义数据 其他股软 Ex系统 每日收盘数据
通达信小技巧
tdx指标编写教程 Tdx指标公式
龙虎榜教程 游资盈亏数据 产业链上下游 股学堂
量化教程
指标回测 Python 我的股票笔记