通达信交易dll接口怎么实现程序化交易?

现在很多交易者选择量化投资与传统的股票交易之间,往往会选择自动化交易跟量化交易的比较多,毕竟现在很多可以开发出来的交易软件都具备了量化的特点,能够及时的把握更多的盈利的机会,就比如说常使用的到通达信交易dll接口就是一个例子,通过通达信接口来传输自己的交易策略,就可以在接口修改本身的dll来调用,实现程序化交易,那么,具体它是如何实现的呢?

具体来看:

将 MetaTrade.dll, MetaTrade.lic, MetaTrade.ini 三个文件放到应用程序同级目录

    1. 调用 LoadLibrary 加载 MetaTrade.dll 实例
    2. 调用 GetProcAddress 获取 API 函数地址
    3. 调用 Init 接口进行 API 初始化
    4. 调用 Logon 接口登录券商账户并获得与之对应的 ClientId, 一个应用程序实例可以同时登录多个账户
    5. 通过 ClientId 调用其它 API 接口进行查询或委托下单
    6. 调用 Logoff 接口登出券商账户
    7. 调用 Deinit 接口进行 API 清理
    8. 调用 FreeLibrary 卸载 MetaTrade.dll 实例

如果是通达信交易dll接口要想通过一段代码来自动委托下单,则需要股票api交易接口,运用接口的各个参数功能来自动下单:

名称

功能

基本函数

Init

API 初始化

Deinit

API 反初始化

Logon

登录交易账户

Logoff

登出交易账户

QueryData

查询各类交易数据

QueryHistoryData

查询各类历史数据

SendOrder

委托下单

CancelOrder

委托撤单

GetQuote

获取五档报价

Repay

融资融券账户直接还款

GetExpireDate

查询 API 授权到期日期

单账户批量函数

QueryDatas

单账户批量查询各类交易数据

SendOrders

单账户批量下单

CancelOrders

单账户批量撤单

GetQuotes

单账户批量获取五档报价

多账户批量函数

QueryMultiAccountsDatas

多账户批量查询各类交易数据

SendMultiAccountsOrders

多账户批量下单

CancelMultiAccountsOrders

多账户批量撤单

GetMultiAccountsQuotes

多账户批量获取五档报价

代码举例:

import requests;
import time;
import json;
import pandas as pd; 
def fenshishuju_dfcf(daima);

//这里我们要定义数组来区分开来,让打印结果更加详细化,实现股票交易接口实时抓取的数据按时间详细化分割,精准的打印出来;
    if daima[:2] == "sh":
        lsbl = '1.'+daima[2:]
    else:
        lsbl = '0.' + daima[2:]
    wangzhi = "http://push2his.eastmoney.com/api/qt/stock/trends2/get?&fields1=f1%2Cf2%2Cf3%2Cf4%2Cf5%2Cf6%2Cf7%2Cf8%2Cf9"
              "%2Cf10%2Cf11%2Cf12%2Cf13&fields2=f51%2Cf52%2Cf53%2Cf54%2Cf55%2Cf56%2Cf57%2Cf58&"
              "ut=7eea3edcaed734bea9cbfc24409ed989&ndays=1&iscr=0&secid="+lsbl+
              "&_=1643253749790"+str(time.time)
    resp = requests.get(wangzhi, timeout=6)
    # print (resp)

#打印请求结果的状态码
    data = json.loads(resp.text)
    shuju = {'日期时间': [], '最新价': [], '均价': [], '成交额': []}
    for k in data['data']['trends']:
        lsbl = k.split(",")
        shuju['日期时间'].append(lsbl[0])
        shuju['最新价'].append(lsbl[2])
        shuju['均价'].append(lsbl[-1])
        shuju['成交额'].append(lsbl[-2])
        
    shuju = pd.DataFrame(shuju)
    print(shuju)
    return shuju
 
if __name__ == '__main__':
    while 1:
        fenshishuju_dfcf('sh603102')
        time.sleep(3)

return{
}

持仓数据显示:

因此,通达信交易dll接口实现调用的参数功能能够将精准的执行交易者的量化策略,及时的自定委托下单,实现程序化交易。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>