[AHK]通达信联动到同花顺下单

 

上面无需热键,鼠标滚轮自动实现通达信到同花顺联动,定制脚本50¥/小时。

以下为热键版,仅做示范

#Persistent
#SingleInstance,Force

tdxTitle:="华泰证券"
CodeTable:=initCodeTable()

;需按热键来调用,可多次运行,
#z::
StockName:=getStockName(tdxTitle)
MsgBox % "当前通达信上浏览的股票是: " . StockName
StockCode:=getStockCode(StockName,CodeTable)
MsgBox % "股票代码是: " .  StockCode
buy(StockCode) ;同花顺根据传入的股票代码来买入
return

buy(StockCode)
{
	;激活下单软件	
	IfWinExist 网上股票交易系统5.0
	{
		WinActivate
		send {F1}
		sleep 100
		ControlSetText, Edit1, %StockCode% 
		sleep 100 ;
		ControlSetText,Edit4,8800 
		sleep 100
		;未完成点击动作
        }
	MsgBox 未探测到 网上股票交易系统5.0
}

getStockName(tdxTitle)
{
	IfWinExist, %tdxTitle%
		WinGetTitle, Title, %tdxTitle%
	StringReplace, Title, Title, ]
	StockName:=StrSplit(Title,"-")[3]
	if (StrLen(StockName)=0)
		return -1
	return StockName
}

getStockCode(StockName,CodeTable)
{
	StockCode:=-1
	For index, value in CodeTable
	   {
			IfInString, value, %StockName% 
			{
				StockCode := substr(value, 1, 6)
				break
			}
		}
		return StockCode
}

initCodeTable()
{
	;初始化股票对照表
	codeTableFile:=["SZ.SNT","SH.SNT"]
	filePath:=A_ScriptDir
	;还可以用
	;~ filePath:=A_Desktop
	 ; 每个数组在使用前必须进行初始化:
	codeTableArray := Object()
	ArrayCount := 0   

	for index, name in codeTableFile
	{
		FileName:= filePath . "\" . name
		;~ MsgBox % "Element number " . index . " is " . FileName
		if FileExist(FileName)
		{
			Loop, read, %FileName%,
			{
				ArrayCount += 1
				codeTableArray[ArrayCount]:= A_LoopReadLine
			}
		}
		else
			return -1 ;~ MsgBox 找不到代码文件
	}
	return codeTableArray
}



SZ.SNT
文件是文本文件,每个股票一行:
000012南玻A

おすすめ

転載: blog.csdn.net/liuyukuan/article/details/53612796