自编解决方案分享:通达信分时预警(分时交易信号自动提示)(分时选股)

[通达信] 精华 1
设置
168046 381 黑马2681 Lv.3 发表于 · 2021-1-9 18:12 显示全部楼层 正序浏览 |
跳转到指定楼层
自编解决方案分享:通达信分时预警(分时交易信号自动提示)(分时选股)

需求:
通达信不支持日线以下的分时K线选股和信号预警功能,非常不方便,因经常需要用到60分钟及15分钟K线,于是使用通达信的DLL函数编写了一个TdxSignal.dll 将分时上产生的信号写入一个文本文件,然后用一个程序循环读取这个信号文件并提示出来,间接解决了这个需求。

工作原理:
在通达信公式中编辑一个指标,调用TdxSignal.dll函数,将股票代码、信号代码(自定义),通过DLL写入一个文本文件TdxSignal.txt。
在通达信界面K线分析中启用这个指标,然后用通达信自动翻页功能,使得该指标在需要关注的股票代码得到执行的机会,即可将关注的交易信号以代码形式传递至文本文件,用其他软件循环读取即可实现监控、预警、选股的功能。可以使用多股同列一屏调取最多32个股票来提高效率。
这个方法效率不高,只适合在一个给定的小范围需要密切关注的股票池中使用,用于监控这些股票分时K线出现的交易信号,不太适用于全市场选股(效率太低)和预警,介意的朋友就不需要往下看了。

程序压缩包中包含如下几个文件:
压缩包.png

TdxSignal.dll:通达信DLL程序,用于将交易信号保存入一个文本文件
DemoSig.tn6:通达信公式示例文件,演示如何使用DLL函数,用户可以根据示例编写自己的交易逻辑
OrderMon.exe:交易信号监控程序
OrderMon.ini: 交易信号监控程序配置文件
StockCodeNameTable.txt:股票代码名称对应表,用于将股票代码转换为名称在程序中显示


TdxSignal.dll安装使用说明

2.1.第一步、复制Dll文件至通达信的DLL目录中
查找通达信主程序TdxW.exe所在目录,在此目录下进入 \T0002\DLLS子目录(例如:D:\new_jyplug\T0002\dlls)。
将 TdxSignal.dll 文件复制入这个目录。

2.2.第二步、配置通达信的DLL函数
设置TdxDLL.png

配置方法如图所示:
1、在通达信主界面的菜单中选择[公式]-[公式管理器]
2、在公式管理器中点击[DLL函数]按钮
3、在绑定DLL函数界面选择DLL函数的编号,这里以2号为例(可以任选),选择“第2号DLL”,点击[打开绑定]
4、在打开界面选择刚才复制过来的TdxSignal.dll文件
5、程序提示是否信任,点击[确定]
6、出现“成功绑定了TdxSignal.dll”的提示,表示绑定成功
注、步骤3中可以绑定空余编号的任意一个,绑定成功之后需要记住这个编号,在随后通达信公式调用时需要用到这个编号。这里以绑定2号Dll为例,那么下一步中用到的调用Dll的函数名就是 “TDXDLL2()”

2.3.第三步、在通达信公式代码中添加Dll函数调用
在通达信公式编辑器中导入并打开 示例公式 “DemoSig.tn6”,其中“=== TDXSIGNAL====”括起来部分代码就是调用dll示例。

DemoSig.png

DLL函数是“TDXDLLN()”,在第二步的步骤3中选择的是是哪个编号,N就用哪个;这里示例用的是“TDXDLL2()”
TDXDLL2()函数有两次调用,分别调用DLL内部的1号函数和2号函数。
1号函数用于初始化DLL程序,不能改动,每个公式只需要使用一次即可;
2号函数用于输出具体交易信号,可以多次使用。函数有四个参数,第一个“2”表示调用2号函数,后面三个参数分别是
[股票代码]、[买卖标记(1/-1)]、[信号代码]
其中:
[股票代码]:”Str2Con(Code)”,不能改动;
[买卖标记]:用买(1)卖(-1)标记当前信号的方向,1/-1以外的数字无效;
[信号代码]:是自定义的数字代码,标记写入信号文件中的是哪个信号产生的。
举例:
TDXDLL2(2,STR2COCN(CODE), COND1,11);
表示用2号函数将 股票代码Code、买卖标记Cond1、信号代码11,写入信号文件TdxSignal.txt中。

2.4.第四步、检查 TdxSignal.txt文件
经过以上三步操作成功,打开通达信K线图分析,可以调至分时图(例如15分钟),启用 “DemoSig”指标,查看几个股票K线图,确认最后一根K线该指标产生了交易信号。
打开D:\TdxSignal.txt,可以看到已经有信号产生。

TdxSignal.png

信号数据每行文本以"|"隔开,内容分别是:
产生信号的K线日期|时间|股票代码|[买卖标记]|[信号代码]|DLL程序接收信号的时间
其中的[买卖标记]、[信号代码]就是由第三步的 “DemoSig”指标中的数据经由DLL函数写入了这个信号文件。
举例:
20210106|1345|600918|1|11|13:42:41
表示在K线时间是2021/01/06,13:45,股票600918,方向:买入,信号代码11,DLL接收信号时间是13:42:41
分析这条数据就能及时知道:通达信DemoSig指标在600918上发出了买入信号,信号代码11,对应的信号名称是“5日均线金叉10”,这个名称是自己定义的,在后面的信号监控程序中设置对应关系之后会自动在程序中显示出来。


2.5.第五步、实现分时选股或交易信号自动提示

只要DemoSig指标获得执行机会,那么该指标就会将自己定义的信号(若有)写入TdxSignal.txt文件,因此只需要在想要选股的分时K线上应用这个指标,并翻看股票即可。
可以在需要关注的股票池中使用通达信的自动翻页功能,启动方法:菜单[选项]-[自动换页],或者使用快捷键[-](减号),再次按此快捷键关闭自动换页功能。
为了提高效率,可以使用多股同列功能,一次性调用多个股票,最多可以达到32个,设置方法:菜单[选项]-[系统设置]-[设置1],如下图根据自己需要选择即可。

多股同列启动方法:菜单[功能]-[多股同列],或者使用快捷键[CTRL-M]

经过以上设置之后,就可以实现分时选股或自动交易信号监控了。
举例:在股票池A上进行15分钟选股或交易信号监控,先在15分钟单独的K线界面应用DemoSig指标,然后每15分钟在股票池A上进入多股同列,并启动自动翻页功能,直到所有股票全部轮询一遍为止,这样该指标就会在股票池A上所有的股票都执行了一遍,如果有满足设定条件的股票,设定的信号就会立即写入了TdxSignal.txt文件之中。
附赠的交易信号监控程序提供设定时间表并到时提醒轮询股票池功能。


查看全部打赏
  • 灼月+20理想币 共享币 分享值 : 感谢交流,感恩互助,收获知识能量!
  • 非常道A+20理想币 共享币 分享值 : 很给力,投资愉快,理想因你而精彩;
  • 甲铭+20理想币 共享币 +2分享值 : 很给力,投资愉快,理想因你而精彩;
  • 别董大理想币 共享币 +1分享值 : 感谢交流,感恩分享,收获正能量。
  • 煎饼果子8+2理想币 共享币 分享值 : 理想精神:分享,互助,友善,传递正能量!
  • 赵小屁+10理想币 +2共享币 分享值 : 很给力,投资愉快,理想因你而精彩;
  • 沙子月+20理想币 +2共享币 分享值 : 每天进步一点点,希望的火苗不熄灭。
  • 海里有条鱼+20理想币 +2共享币 +2分享值 : 点赞,知识的价值在于分享,谢谢!
  • 股道西风+50理想币 +10共享币 +10分享值 : 点赞,知识的价值在于分享,谢谢!
  • 伊犁的牛理想币 共享币 +1分享值 : 很给力,投资愉快,理想因你而精彩;

举报

使用道具 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-11 15:40 复制 查看全部楼层
二树 发表于 2021-4-11 07:28
我把碰到不能绑定的解决办法说一下,以便后来的人少走弯路。

第一种方法:打开绑定的时候,找到TdxSigna ...

很细致,希望能对遇到这样的问题的朋友有帮助,谢谢你

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-11 15:40 复制 查看全部楼层
得定 发表于 2021-4-10 15:01
请教一下楼主,副 图指标上黄色白色是什么意思?

就是满足 指标中COND1和COND2条件的时候显示为1,否则为0,系统默认用了红色黄色来显示出来

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

二树
Lv.2
发表于 2021-4-11 07:28 复制 查看全部楼层
本帖最后由 二树 于 2021-4-11 07:34 编辑

我把碰到不能绑定的解决办法说一下,以便后来的人少走弯路。

第一种方法:打开绑定的时候,找到TdxSignal.dll,在下面有以只读文件的钩去掉   
第二种方法:直接打开DLL目录下的DLLS.INI文件,把你要绑的TdxSignal.dll写在要绑在哪号DLL上
[BAND]
band1=
band2=TdxSignal.dll
band3=
band4=
band5=
band6=
band7=
band8=
band9=
band10=

第三种方法:特殊提示:如果以上绑定路径对了,还绑定不了,需要删除通达信桌面快捷方式, 进入通达信安装目录,打开通达信,重复以上操作就可以绑定成功!绑定好后,重新生成一个快捷方式到桌面就可以。
常见异常: 一.提示绑定失败,绑定的dll不在通达信的安装目录的dlls文件夹里。 原因可能是: 1.没把这个DLL文件按要求复制到\T0002\dlls\文件夹里面。或者绑定时候文件夹没选择到通达信安装目录的dlls文件夹里,而是选择了下载目录的文件夹里的了。 2.还有一种可能原因,需要删除桌面通达信快捷方式,然后重新绑定,才能绑定成功。 3.还有就是可能绑定的是另外一个版本通达信的\T0002\dlls\目录下的DLL文件。。。。

这些都是在论坛里找到方法,感谢老师无偿提供这么好的软件给我们使用,谢谢

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

得定
Lv.3
发表于 2021-4-10 15:01 复制 查看全部楼层
请教一下楼主,副 图指标上黄色白色是什么意思?

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-10 11:04 复制 查看全部楼层
世杰投资 发表于 2021-4-10 09:22
这个能用于分时信号预警不就是南川三代这样类似指标分时信号不,我看举例都是分钟信号不知道分时可以不

我没试过,但应该可以的
你写个分时指标只要同样调用这个dll就行,在分时图上加载指标,dll得到执行就能将所需数据转存入TdxSignal.txt

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-10 11:01 复制 查看全部楼层
创意品牌 发表于 2021-4-9 17:58
谢谢老师,又更新了很多实用功能!谢谢!
有个小建议您看看:能否在软件界面批量粘贴股票代码或名称操 ...

有难度我先研究一下以后再说

举报

使用道具 扔鸡蛋(0) 回复

股友6688
Lv.3
发表于 2021-4-10 09:43 复制 查看全部楼层
非常感谢黑马老师的无私分享,为黑马老师点赞!

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

世杰投资
Lv.5
发表于 2021-4-10 09:22 复制 查看全部楼层
这个能用于分时信号预警不就是南川三代这样类似指标分时信号不,我看举例都是分钟信号不知道分时可以不

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

果不然
Lv.1
发表于 2021-4-9 21:13 复制 查看全部楼层
谢谢老师!!!

举报

使用道具 扔鸡蛋(0) 回复

创意品牌
Lv.3
发表于 2021-4-9 17:58 复制 查看全部楼层
本帖最后由 创意品牌 于 2021-4-9 20:02 编辑
黑马2681 发表于 2021-4-9 16:35
应用户提出的需求,在程序(v1.36 版)增加指定股票代码的警示功能,如果监控 到预先设定过的股票代码有信号 ...


谢谢老师,又更新了很多实用功能!谢谢!
有个小建议您看看:能否在软件界面批量粘贴股票代码或名称操作,自动更新到ini文件里面呢?无需每次手动修改设置文件。

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-9 16:42 复制 查看全部楼层
完整程序包,与楼上一样,这里不能下载了就去楼上下载

链接: https://pan.baidu.com/s/1K5nC1p5s-LsRj27tA2jGCQ 提取码: s1yj 复制这段内容后打开百度网盘手机App,操作更方便哦

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-9 16:40 复制 查看全部楼层
完整程序包:

OrderMonitor20210407.zip (2.26 MB, 下载次数: 4)

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-9 16:38 复制 查看全部楼层
为了提高监控效率避免无用操作,增加了监控的自动启动和停止功能,在配置文件中设置时间即可,跨越时间点是会自动启动或停止监控,如下所示:

;时间格式"HH:MM:SS"中间无空格、不足两位数的以0补齐,例如9点5分2秒写成09:05:02
;自动监控启动时间点、自动监控停止时间点
AutoMonStartTime = 09:29:50|12:59:50
AutoMonStopTime  = 11:30:10|15:00:10

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-9 16:35 复制 查看全部楼层
应用户提出的需求,在程序(v1.36 版)增加指定股票代码的警示功能,如果监控 到预先设定过的股票代码有信号出现,就会以红色标记出来以警示特别关注。
在配置文件中设定需要警示的股票代码,以"|"隔开,中间不能有空格,不设置 则禁用。
如下图所示:

股票代码警示ini.png

当监控程序检测到设定过警示的股票代码的信号时,会以红色警示出来。如下 图所示:

股票代码警示.png

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-9 16:32 复制 查看全部楼层
本帖最后由 黑马2681 于 2021-4-9 16:33 编辑
股中游 发表于 2021-3-16 17:11
谢谢老师.
老师在TdxSignal.dll在导出TdxSignal.txt,同时导出一份到.BLK中就可以了.只不过需判断是6,还 ...


应用户提出的需求,在程序(v1.35 版)增加监控股票输出至通达信指定板块功能。 打开通达信菜单[选项]-[自定义板块设置],新增一个板块“OrderMon 信号”,如下图所示:

自定义板块OrderMon.png

板块新建成功之后,在 [通达信目录]\T0002\blocknew\目录下,就可以找到这 个板块对应的存盘文件:“ORDERMONXH.blk”,然后在配置文件中进行配置,如 下图所示:

输出blk设置.png

(1)、将“ORDERMONXH.blk”全路径设置到 [TdxBlkFileName]中
(2)、设置功能参数[Export2TdxBlk],0-禁用,1-每次列表改变时输出,2-手动点 击按钮[发至 TDX]时输出
输出 blk 文件之后,可以在通达信底部标签[自定]-[OrderMon 信号]板块中查看 输出的结果。
注:若板块中股票未能及时更新,请重启通达信再试。

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-9 16:27 复制 查看全部楼层
ghm 发表于 2021-1-28 09:07
dll文件非常好,解决了任意周期的预警。美中不足的是,出来预警结果可不知道是什么周期产生的,最好写入预 ...

应用户提出的需求,在程序(v1.33 版)增加显示 K 线信号周期功能。
第一步:在配置文件中增加配置:功能参数[PeriodMode],设置 1 即显示信号 K 线的周期,设置 0 则是显示信号 K 线的时间。
举例:
PeriodMode = 1

第二步:在通达信代码中修改[DATE]为[PERIOD]。在 v1.33 程序包中 DemoSig.tn6 已经更新为使用[PERIOD]的版本,直接导入即可使用。
DemoSigPeriod.png

设置完成后,在OrderMon中就可以看到产生信号的周期了
信号周期.png

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

凌寒滨州
Lv.2
发表于 2021-4-8 22:00 复制 查看全部楼层
分享过期了  老师再来个链接呀!!!!!

举报

使用道具 扔鸡蛋(0) 回复

永不回撤
Lv.2
发表于 2021-4-8 15:52 复制 查看全部楼层
黑马2681 发表于 2021-3-16 16:57
在程序(v1.31 版)增加监控股票发送至通达信功能,如下图所示

终于找到能解决预警问题的高人了,老师,链接过期了能否再发一次,万分感谢!!

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

凌寒滨州
Lv.2
发表于 2021-4-8 10:17 复制 查看全部楼层
分享过期了  老师再来个链接呀

举报

使用道具 扔鸡蛋(0) 回复

梦里多少
Lv.2
发表于 2021-4-7 13:07 复制 查看全部楼层
这个帖子已经被大家赠送了很多分享值了,不知道是否可以转给你来下载,希望有需要的人都能解决与我一样的烦恼

举报

使用道具 扔鸡蛋(0) 回复

姜海洋
Lv.3
发表于 2021-4-7 08:57 复制 查看全部楼层
谢谢分享,楼主辛苦。。。。。。。

举报

使用道具 扔鸡蛋(0) 回复

刘一009
Lv.3
发表于 2021-4-7 08:26 复制 查看全部楼层
厉害奥,高手,向你学习

举报

使用道具 扔鸡蛋(0) 回复

其其2006
Lv.5
发表于 2021-4-7 08:24 复制 查看全部楼层
非常感谢楼主无私分享。学习中。。。。可惜没法下载

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

约瀚乐洋
Lv.1
发表于 2021-4-6 10:59 复制 查看全部楼层
非常感谢楼主无私分享。

举报

使用道具 扔鸡蛋(0) 回复

失眠后
Lv.4
发表于 2021-4-5 21:28 复制 查看全部楼层
黑马2681 发表于 2021-4-5 20:21
看了你推荐的那个链接里面:

3.在通达信公式使用

是的,如果只是把选股结果传出来,是没有必要这么复杂的。如果想分时选股,用大智慧预警或股池功能,把选股结果保存到自选股中,再把自选股同步到通达信即可。

我更大的兴趣还是保存更多的即时数据,看本帖中,其他人提出的需求,大多也是想保留的更多数据,故有此一建议。

打通两个软件,是为了用两个软件的强项。比如,在通达信中,把每天涨停票的最后封板时间精确提取出来,是比较麻烦的,可通过大智慧就很简单。如果需要的话,就可以通过风影老师的DLL,把这个数据调用到。如下图。
Snipaste_2021-04-05_21-21-30.jpg

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-5 20:21 复制 查看全部楼层
失眠后 发表于 2021-4-5 17:37
第一步,在大智慧中选股;
第二步,在大智慧中,把选股信号保存为大智慧的一个自定义数据;
第三步,在 ...

看了你推荐的那个链接里面:

3.在通达信公式使用
JB:TDXDLL1(3,STR2CON(CODE),DATE,32);
JS:TDXDLL1(3,STR2CON(CODE),DATE,33);

这样读取到通达信指标里,然后呢?用这个指标在通达信里再进行选股,把满足JB或JS的股票选出来?
如果是这个想法,似乎看到过有个同步工具可以将几个股票软件同步的,可以找找看
主要也是因为大智慧从来没用过,暂时没有精力再学习一套行情系统,一套系统就已经够折腾的了

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

咖啡猫2009
Lv.5
发表于 2021-4-5 17:43 复制 查看全部楼层
黑马2681 发表于 2021-3-16 16:57
在程序(v1.31 版)增加监控股票发送至通达信功能,如下图所示

你百度的链接失效了!!!!

举报

使用道具 扔鸡蛋(0) 回复

失眠后
Lv.4
发表于 2021-4-5 17:37 复制 查看全部楼层
黑马2681 发表于 2021-4-5 16:53
谢谢你的建议,不过大智慧没用过。。。
你的意思是在大智慧里进行分时选股,然后把选股后的股票池,通过 ...

第一步,在大智慧中选股;
第二步,在大智慧中,把选股信号保存为大智慧的一个自定义数据;
第三步,在通达信中,用DLL把大智慧的数据读出来。

第三步的工具在 https://www.55188.com/thread-9418595-1-1.html
前两步主要利用大智慧的全推和数据的灵活性。
放到通达信中,可以利用通达信的优势。我是比较习惯通达信的自定义版面,界面速度和交易模块等。

刚才我手工测试了一下,通达信的自定义数据盘中更新后,不能直接调用,需要重新启动通达信;换句话说,就是用signals_user调用的还是初始化的数据,估计是从内存中取数据吧。因此,需要自己在DLL里加个读取功能。这样的话,你可以自己定义存储格式了。不过我还是建议仿照通达信的自定义序列数据,这样比较灵活,想写什么,写多少,使用者自己设计。当然,最好还是按通达信的自定义数据体系保存管理,虽然不能用通达信的函数读取,但一样可以写DLL从文件中读取。这种方式可以保存一些通用性,满足某些特殊场合需要。

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

黑马2681
Lv.3
发表于 2021-4-5 16:53 复制 查看全部楼层
失眠后 发表于 2021-4-5 15:39
楼主真是很热心,值得点赞。

之前论坛里有一个帖子,可以让通达信软件读取大智慧软件的自定义数据。大 ...

谢谢你的建议,不过大智慧没用过。。。
你的意思是在大智慧里进行分时选股,然后把选股后的股票池,通过大智慧的dll写到通达信自定义数据,通达信读取数据再显示?怎么样使用和显示请具体说说,没弄明白你的想法,还有个问题是如果大智慧已经完成分时选股了,还有必要转到通达信里么?

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

失眠后
Lv.4
发表于 2021-4-5 15:39 复制 查看全部楼层
黑马2681 发表于 2021-4-5 14:10

这几天乘小长假增加了几个功能,测试完就上传上来,请大家稍等

楼主真是很热心,值得点赞。

之前论坛里有一个帖子,可以让通达信软件读取大智慧软件的自定义数据。大智慧因为是全推的,只要数据类型选择合理,可以实现盘中各种周期的选股和预警。同时,大智慧有很多写自定义数据的dll插件。这样,就可以把大智慧软件中的分时信号,通过自定义数据的方式,传递给通达信。不需要翻页,不局限于小范围的股池,也不需要通过ordermon进行监控。

这个模式的关键是通过自定义数据来传递,所以,我建议楼主开发一个写通达信自定义数据的功能,实际上,通达信的自定义数据很简单,就保存了4字节的日期(序列)和4字节的数值,通过不同的id来存储不同的数据。通达信好像也没有自定义数据容量的问题,那么可以保存的数据量就很多了,使用者可以自行发挥,满足大多数的个性化需求。

下图是通达信自定义数据的解析,供楼主参考。
Snipaste_2021-04-05_15-23-15.png

以序列数据为例,最简单,每个品种一个文件,调用快,更新快。其中:
1,自定义数据的数据号,图上2号数据,就保存在T0002\signals\signals_user_2中;
2,对应股票,每个股票一个文件,深圳的票前面加0_,上海的票前面加1_;
3,数据在文件中的对应,每条数据只有两个值,日期和数值,固定占用8个字节;
4,数据格式,日期编码为32位的整型,数值为浮点,这个编码转换应该很简单。

有了这个功能,可以想象的空间就很多了,建议楼主考虑。

举报

使用道具 点亮(0) 扔鸡蛋(0) 回复

您需要登录后才可以回帖 登录

本版积分规则 《理想财富服务协议》《免责声明》

站长推荐 关闭 上一条 /6 下一条
回顶部 到页底
快速回复 返回顶部 返回列表