python 通达信公式函数_次新股的选股公式(20190321)

郑重提醒:

本人没有其他公众号。

本人没有微博。微博上复制我公众号文章的,都是骗子。

本人没有任何收费学习群。本人没有任何股票交流群。

凡是用本人名义联系您做股票或者收费的任何事项,都是骗局。

请谨防骗子。请谨防骗子。请谨防骗子。

我唯一的新浪博客是blog.sina.com.cn/taoboshi

友情提醒:想抄作业的。可以取关了。本公众号今后没有股票代码可以抄的。

免责声明:文中提到的个股,仅仅是案例所用,绝无推荐的意思,请勿据此操作。

新粉推荐阅读我前期推送的经典文章(可以直接点击链接):

《欧奈尔RPS曲线的编制方法及常见问题解答(20170505)》

《基金持股和北向持股的量化选股方法(20190102)》

《接近一年新高的选股公式(20190210)》

《净利润断层,威力无穷(20190121)》

《价值+动量+趋势(20190110)》

《月线反转5.0版本(20190310)》

近期大家问的较多的一个问题是:我说的次新股是指什么样的股票?

我这里再统一回复一下:陶博士说的次新股是指上市三四年时间以内的股票。具体到当前时刻,2015年至2018年上市的股票都是我说的次新股。之所以从2015年算起,有一个潜在的假设前提是2015年创业板牛市顶峰期间上市的股票,有可能还没有得到充分的表演机会。上市时间不足一年的新股,我一般情况下很少关注。

上市3至4年的股票,15年至18年上市的,都是我说的次新股

狮子孤行  2019-03-02 09:29:59

陶博:早!有陶粉反馈次新股选股问题,建议不要采用TOTALBARSCOUNT函数(返回总的周期数,简单理解为K线的个数,对于停牌的股票是不计数的,所以会导致误差),建议采用FINANCE(42)函数,完整的公式如下,亲测有效,供参考:

RANGE(FINANCE(42),N1,N2);

(N1、N2是参数。)

我原来的次新股选股公式有问题,因此我考虑采用狮子孤行的次新选股公式:

RANGE(FINANCE(42),N1,N2);

(公式的上市的天数位于N1和N2之间。N1、N2是参数。N1的默认值为60,N2的默认值为1460)

这个公式里的N1和N2是自然日的天数,一年365天,根据我前面的定义,4年之内的都可以算是次新股,365*4=1460,因此N2的默认值为1460

第一步,先建立一个“次新股公式”的条件选股公式

通达信软件,输入:.900(注意900前面有一个点),进入公式管理器

点击:条件选股公式

点击:其他类型

点击:新建,进入下图的条件选股公式编辑器

44522975efb8caead95db2d8ed97610a.png

RANGE(FINANCE(42),N1,N2);

(公式的上市的天数位于N1和N2之间。N1、N2是参数。N1的默认值为60,N2的默认值为1460)

公式建立好之后,就可以选股了。

第二步,选股

通达信软件,输入:.905(注意905前面有一个点),进入条件选股界面:

上面界面中,左上角的条件选股公式的下拉菜单,拉到最后,选中前面建立的“次新股公式”,点加入条件

选股范围,可以自行指定。

然后点击右下角的执行选股,就OK

下面这是今天的选股结果,选股范围,是我自行指定的。

06d615b770220a32dd7cd38c69ac8dd5.png

例如再增加一个条件:月线反转+次新股选股,结果如下:

c21849d0fc514cebd0ad5ed4a17959ef.png

abab929d3e18aa5da3494659bf306d79.png

祝大A红。万物随缘。

(本文完成于2019年3月21日晚)

### 使用 Python 实现通达信选股的读取和写入 #### 一、准备工作 为了能够通过 Python通达信选股进行读取和写入操作,需要了解通达信选股文件的存储路径以及其格式。 通常情况下,通达信选股保存在一个特定目录下的 `.blk` 文件中。这些文件位于用户的个人资料夹内,具体位置可能因操作系统和个人设置而异[^2]。 对于 Windows 用户而言,默认路径可能是类似于 `C:\Users\用户名\.tdx\blocknew\` 或者其他由安装过程指定的位置。Linux 和 macOS 的用户则需查找相应环境中的配置说明来定位该文件所在之处。 #### 二、读取通达信选股列表 要读取通达信选股的数据,可以采用如下方法: ```python def read_tdx_stock_list(file_path): stock_codes = [] try: with open(file_path, 'r', encoding='gbk') as file: lines = file.readlines() for line in lines: code = line.strip().split('|')[1].strip()[:6] if not (code.startswith('0') or code.startswith('3')): continue stock_codes.append(code) return stock_codes except Exception as e: print(f'Error reading TDX block file: {e}') return [] file_path = r'C:\path_to_your_file.blk' stock_list = read_tdx_stock_list(file_path) print(stock_list) ``` 此函数会打开给定路径处的一个 .blk 文件,并解析其中每一行的内容以提取股票代码。这里假设每条记录是以竖杠分隔开来的字符串形式存在的;实际应用时应根据实际情况调整正则表达式的匹配逻辑。 #### 三、向通达信添加新的自选股项 当想要往现有的自选股集合里增加新成员时,则可以通过追加的方式修改对应的 .blk 文件: ```python import os def add_stocks_to_block(block_name, stocks, tdx_dir=r"C:\Users\YourName\.tdx"): blk_filename = f"{block_name}.blk" full_blk_path = os.path.join(tdx_dir, "blocknew", blk_filename) existing_lines = set() if os.path.exists(full_blk_path): with open(full_blk_path, 'rb') as fp: content = fp.read().decode('GBK') existing_lines.update(content.split('\n')) new_entries = [ f"1|{s}|{''.join([' ']*8)}|0\n".encode('GBK') for s in stocks if all([ isinstance(s, str), len(s) >= 6, any([c.isdigit() for c in s]), f"1|{s}" not in ''.join(existing_lines) ]) ] if new_entries: mode = 'ab+' if os.path.isfile(full_blk_path) else 'wb' with open(full_blk_path, mode) as fp: fp.writelines(new_entries) add_stocks_to_block("我的自选", ["000001"]) ``` 上述脚本定义了一个名为 `add_stocks_to_block()` 的功能,它接受三个参数:板块名称 (`block_name`)、待加入的新股列表(`stocks`)通达信根目录(`tdx_dir`) 。如果目标区块已经存在同名项目,则仅新增那些尚未存在于当前区块内的证券编号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值