举例通达信API接口交易代码
时间: 2023-09-11 07:05:41 浏览: 334
以下是使用Python编写通达信API接口交易代码的示例:
```python
import win32api,win32con
import time
import os
import struct
import win32gui
import win32process
import pywintypes
# 获取通达信主窗口句柄
hwnd = win32gui.FindWindow("TdxW_MainFrame_Class", None)
# 获取通达信客户端路径
tdx_path = r"C:\new_tdx\TdxW.exe"
# 打开通达信客户端
os.startfile(tdx_path)
while True:
if hwnd > 0:
break
time.sleep(1)
# 获取通达信客户端进程ID
_, pid = win32process.GetWindowThreadProcessId(hwnd)
# 通过进程ID获取通达信客户端进程句柄
handle = win32api.OpenProcess(win32con.PROCESS_ALL_ACCESS, False, pid)
# 定义通达信客户端API函数
def tdx_call(func_name, param):
func_addr = win32api.GetProcAddress(win32api.GetModuleHandle("Trade.dll"), func_name)
if not func_addr:
raise Exception("函数{}不存在".format(func_name))
param = bytes(param, "GBK")
code, result = win32api.WinExecMemory(func_addr, handle.handle, param)
if code != 0:
raise Exception("函数{}执行失败".format(func_name))
return result.decode("GBK")
# 登录通达信客户端
tdx_call("Logon", 'htqh123,123456,123.123.123.123:7708')
# 获取账户资金信息
response = tdx_call("GetQuote", "查询资产,")
print(response)
# 下单交易(以买入股票为例)
response = tdx_call("SendOrder", "买入,0,600000,100,10.0,0,0,")
print(response)
# 退出通达信客户端
win32gui.PostMessage(hwnd, win32con.WM_CLOSE, 0, 0)
```
需要注意的是,以上代码仅供参考,具体实现需要根据自己的实际情况进行调整。同时,使用通达信API进行交易需要在通达信软件中开启自动登录和交易密码验证等功能,否则可能无法正常交易。
阅读全文