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

news2024/11/26 20:43:19

现在很多交易者选择量化投资与传统的股票交易之间,往往会选择自动化交易跟量化交易的比较多,毕竟现在很多可以开发出来的交易软件都具备了量化的特点,能够及时的把握更多的盈利的机会,就比如说常使用的到通达信交易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接口实现调用的参数功能能够将精准的执行交易者的量化策略,及时的自定委托下单,实现程序化交易。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/27381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode | 850. 矩形面积 II

我们给出了一个(轴对齐的)二维矩形列表 rectangles 。 对于 rectangle[i] [xi1, yi1, xi2, yi2], 表示第 i 个矩形的坐标, (xi1, yi1) 是该矩形 左下角 的坐标, (xi2, yi2) 是该矩形 右上角 的坐标。 计算平面中所有 rectangles…

java maven pom application 生产prod/开发dev/测试test

前言 pom 和 application.properties(application.yml)里的定义的环境不太一样, pom 是maven对应的配置文件,编译阶段使用 application.properties(application.yml) 是Spring配置文件,程序运行阶段使用 POM pom文…

每次打开百度太麻烦?用程序直接打开网页 Python实现百度划词搜索功能(获取剪切板数据)

浏览顺序实现划词功能运行错误解决问题转载声明实现划词功能 说是划词翻译,实际上我们是通过获取用户的剪切板内容,通过一系列的操作得到的。首先呢,我们就先实现如何获取剪切板内容的程序 首先先在桌面创建一个文件夹,命名为“…

pac自动代理

文章目录1.pac 定义2. 参考配置地址3. 实际配置案例3.1 编写pac文件3.1.1 return 语句有三种指令:3.1.2 内置函数3.1.2.1 dnsDomainIs3.1.2.2 shExpMatch3.1.2.3 isInNet3.1.2.4 主机ip3.1.2.5 dnsResolve3.1.2.6 isPlainHostName3.1.2.7 isResolvable3.1.2.8 dnsDo…

RabbitMQ初步到精通-第十章-RabbitMQ之Spring客户端源码

目录 第十章-RabbitMQ之Spring客户端源码 1. 前言 2. 客户端消费代码 2.1 消费的实现方式 2.2 消费中注解解释 2.3 推测Spring实现过程 3.MQ消费源码分析 3.1 集成SpringBoot 启动过程 3.2 Broker投递消息给客户端过程 3.3 客户端消费过程 4. 总结 第十章-RabbitMQ之S…

【Linux】线程安全

文章目录1.线程互斥1.1.线程间互斥的相关概念1.2互斥量1.3互斥量接口1.4互斥量实现原理2.可重入VS线程安全3.常见锁概念3.1死锁3.2常见死锁情况3.2.1情况一:忘记释放锁3.2.2情况二:线程重复申请锁3.2.3情况三:双线程多锁申请3.3锁的相关概念4…

m在VBLAST协作MIMO系统分部使用LDPC,Turbo,卷积三种信道编译码进行误码率matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 从上面的结构可知,整个卷积编码的结构可由CRC校验,卷积编码,打孔组成,其中打孔的作用就是讲卷积编码后的码率变为所需要的码率进行发送。 …

一种在行末隐藏有效载荷的新供应链攻击技术研判

近期,Phylum检测到数十个新发布的Pypi软件包执行供应链攻击,在这些软件包中,通过隐藏的__import__将窃取程序投递到开发人员的机器上。攻击者利用代码审核者所使用IDE默认的不换行代码显示设置隐藏自身的行为与载荷,本文将就其中出…

栈简介、手写顺序栈、手写链栈和栈的应用

一. 简介 1. 什么是栈? 栈是一种只能从表的一端存取数据且遵循 "先进后出"("后进先出") 原则的线性存储结构。栈也是用来存储逻辑关系为 "一对一" 数据的线性存储结构。 C#中提供顺序栈:Stack&…

【MySQL基础】如何安装MySQL?如何将MySQL设置成服务?

目录 一、MySQL的安装 1、解压配置 2、步骤安装 💟 创作不易,不妨点赞💚评论❤️收藏💙一下 一、MySQL的安装 MySQL的安装有两种方式:解压配置和步骤安装 1、解压配置 需提前从官网直接下载压缩包,进…

【MySQL篇】第二篇——库的操作

目录 创建数据库 创建数据库案例 字符集和校验规则 查看系统默认字符集以及校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 校验规则对数据库的影响 操纵数据库 查看数据库 显示创建语句 修改数据库 数据库删除 备份和恢复 备份 还原 注意事…

常见磁盘调度算法总结

磁盘调度算法📖1. 最短寻道时间优先(SSTF)📖2. 电梯算法(SCAN或C-SCAN)📖3. 最短定位时间优先(SPTF)📖4. 总结由于IO的高成本,操作系统在决定发送…

C语言 0 —— 计算机硬件架构及信息在计算机中的表示

当前的计算机系统,如Window ,Linux,Mac 基本都是基于冯诺依曼的驱动架构设计的。 冯诺依曼架构输入设备先输入公式,给运算器,运算器先算 先算2*5 ,临时放在CPU内部寄存器中,寄存器不够用的时候会…

vscode插件开发(四)Webview(1)

上一篇详细讲解了命令,这回我们一起来看一下Webview。vscode的插件其实可以分为两种,一种是webview插件,另一种是非webview插件。 webview插件的自由度很高,可以满足开发者的各种定制化的要求;而非webview插件只能使用…

我悟了!Mysql事务隔离级别其实是这样!

问题描述 ​ 最近几天在忙项目,有个项目是将业务收集到的数据变动,异步同步到一张数据表中。在测试的过程时,收到QA的反馈,说有订单的数据同步时好时坏。我怀着疑惑的表情打开了那段代码,它的逻辑大概是这样的&#x…

Zookeeper实现分布式锁的原理。

之前学习Redis时候,我们利用Redis实现了分布式锁。 黑马点评项目Redis实现分布式锁_兜兜转转m的博客-CSDN博客 为什么提出了分布式锁的概念呢? 因为在单体项目中,锁是基于JVM虚拟机实现的,在分布式情况下,JVM就不唯…

FullGC频繁,线程数持续增长排查

告警 线上应用fullgc频繁,收到告警 GC监控—堆内存不足 查看近12小时的监控,发现Survivor区一直处于 满状态、fullgc非常频繁、但没有内存溢出的现象,很明显是堆内存不足 GC日志分析—暂停时间并不长 因为fullgc相当频繁,抽…

项目管理(知识体系概述)

项目的定义:为创造独特的产品、服务或者成果进行的临时性工作。 项目的特性:1、独特的产品、服务、成果;2、临时性工作。 项目管理的目的(为了解决什么问题): 1、达成业务目标 2、满足相关方期望 3、提供项目的可预测性 4、提高项目的成果性。 5、在适当的时刻交付…

机器人运动学标定:基于考虑约束的指数积的运动学标定方法——只需要测量位置,避免冗余约束

文章目录写在前面为什么要消除归一化和正交化操作?只用位置而不是位姿去做标定的原因基于消除冗余约束步骤的参数辨识模型分析参考文献写在前面 基于指数积的运动学标定方法介绍: 机器人运动学标定:基于指数积的串联机构运动学标定 机器人运…

Vue表单修饰符:v-model.lazy、v-model.number、v-model.trim

表单修饰符有:lazy、number、trim;修饰符加在v-model后面; lazy修饰符: v-model的作用是双向绑定表单,能获取到input输入框的值,而且是实时获取的,就是当你输入框里的值发生改变就会获取到&…