1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > [ahk]通达信股票交易软件持仓数据获取(招商证券 中银国际 通达信官方版等测试可用)

[ahk]通达信股票交易软件持仓数据获取(招商证券 中银国际 通达信官方版等测试可用)

时间:2021-07-05 22:33:34

相关推荐

[ahk]通达信股票交易软件持仓数据获取(招商证券 中银国际 通达信官方版等测试可用)

新版通达信持仓获取方式,得启动通达信,点击资金股份,再按热键F9,脚本如下,运行环境请去ahk英文官网下载 Current Version。

; Tested with AHK v1.1.31.00 Unicode 32/64-bit on Windows XP/7/10/*------------------------------------------------------Filename:获取通达信持仓.ahkDescription:在通达信持仓界面,按 F9 可以获取持仓数据,本脚本仅做演示用,如有定制需求,请与作者联系。Version:2月29日Created By:YuKuan.LiuAuthor Weixin:sunwind1576157Type:AutoHotkeyURL:/liuyukuan/article/details/49722207------------------------------------------------------TODO:+ 切换树状菜单到资金股份.------------------------------------------------------*/CoordMode,Mouse,WindowF9::PostMessage,0x111,14023,0,SysListView321,ahk_class TdxW_MainFrame_Class ;输出持仓数据;等待输出设置窗口loop{Sleep,50if A_Index >100Reload}until WinExist("输出") ;~ WinWait, 输出, , 3loop{Sleep,100ControlGet, isEnable, Enabled,,Edit1,输出ControlClick,x60 y60,输出ControlClick,Button1,输出if A_Index >100Reload}until (isEnable=1);获取输出路径ControlGetText,file,Edit1,输出;~ ControlSend,,{Enter},输出ControlSend,,{Enter},输出filename:=GetFilename(File);关闭弹出的文件窗口loop{Sleep,50if A_Index >100Reload}until WinExist(filename);~ WinWait, %filename%, , 3WinClose,% filename;解析持仓数据fileparse(File)return;~ SplitPath, InputVar [, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive]GetFilename(txt) {;~ SplitPath, txt, o ;OutFileNameSplitPath, txt, ,,,o ;OutNameNoExtreturn o}fileparse(file){FileRead,oFile, %file%FileContents:=StrReplace(oFile," ","`t")mark:=0Loop,parse,FileContents, `n, `r {;~ FileDelete,%file%LineNumber := A_Index;;-------- 读取人民币:余额、可用、可取、股票市值、基金市值、资产、盈亏-------- if (InStr(A_LoopField,"人民币")=1){Loop, parse, A_LoopField,%A_Tab%,%A_Space%{if(A_LoopField<>"")str.=A_LoopField . "`n"}MsgBox %str%};~ Loop, parse, A_LoopField,`t,`=;-------- 跳过 美 元、港 元、以及-------- else if (InStr(A_LoopField,"美")=1 or InStr(A_LoopField,"港")=1 or InStr(A_LoopField,"-")=1){mark:=LineNumber;记录 --------在哪一行continue};-------- 跳过空行-------- else if (LineNumber=mark+1){continue};-------- 读取表头-------- else if (LineNumber=mark+2){Loop, parse, A_LoopField,%A_Tab%,%A_Space%{if(A_LoopField<>"")head.=A_LoopField . "`n"}MsgBox 表头是↓`n%head%};-------- 读取数据-------- else{this_line:=""if (A_LoopField="")breakLoop, parse, A_LoopField,%A_Tab%,%A_Space%{if(A_LoopField<>"")this_line.=A_LoopField . "`n"}MsgBox % LineNumber-mark-2 "is↓`n" this_line}}}

测试结果如下:

以下为早期做法,已失效,可不用关注

2月29日 以下方法因交易软件做了权限限制,已无法获取。此法可以获取普通程序的SysListView321中的内容,但无法获取交易软件客户端里的持仓内容。

#PersistentDetectHiddenWindows,on;获取招商证券持仓数量,需要先登录到交易软件,并浏览过一次持仓情况后才可自动获取。Gui,Add,ListView, r20 w800,股票名称|证券数量|可卖数量|成本价|浮动盈亏|盈亏比例(`%)|最新市值|当前价|今买数量|今卖数量|证券代码|股东代码Gui,Show,, 持仓信息SetTimer, 获取持仓,1000获取持仓:;注意1、最后一个参数不要忽略;注意2、SysListView321这个控件ID需要自己用spy软件先获取,可能随着运行次数不同会变ControlGet, tdxlist,List, 0, SysListView321,ahk_classTdxW_MainFrame_Class, List1LV_delete()Loop,Parse, tdxlist,`nLV_Add("", StrSplit(A_LoopField,A_Tab)*)ReturnGuiClose:GuiEscape:ExitApp

几行代码就可以获取持仓,招商证券、中银国际通达信上测试可用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。