炒股自动化:交易接口API才是重点,券商官方散户可用的接口

news2025/1/27 12:57:39

上一篇我们用get_full_tick取到了数据,也讲了变量和字典的基本概念,这次我们向交易所发送订单试试。前面文章的链接放在文末了,需要的可以看一下

这些内容是给新手看的,找接口的大佬们直接拉到文末即可

取市场数据的方法很多,官方接口取到的要比第三方的准确及时,就如上一篇取的实时数据,我用普通100M的家庭宽带,延迟也就是30毫秒左右。

要实现程序交易,首先取数据,然后我们要判断市场数据是否符合某个条件,然后根据条件来决定是否执行交易。交易接口和行情接口不一样,行情接口可以直接调用,交易接口需要和交易中心建立连接,还要告诉交易所是你的账户发来的指令。

# 客户端的路径
客户端路径 = 'D:/程序交易客户端/userdata_mini'
# 随便输入一个整数
会话编号 = random.randint(100, 10000)
# 创建交易对象实例
交易对象 = XtQuantTrader(客户端路径, 会话编号)
# 启动交易对象
交易对象.start()
# 创建交易连接
连接返回值 = 交易对象.connect()
# 返回值是0就是连接成功,失败返回非0的值,一般是-1
print('连接状态:', 连接返回值)
# 创建账户对象,默认STOCK,表示股票账户,也支持港股通、期权、期货等
账户对象 = StockAccount('你的资金账号', 'STOCK')

首先指定客户端的路径,所有的接口调用都是Python层在和客户端交互,这里你去GPT①问一下,为什么Python中,\要换成/来表示路径的字符串。路径用字符串表示,并赋值给变量“客户端路径”;不同的策略要用不同的会话编号,这里先不用理解,复杂的需要保持连接或者多个策略运行的才需要注意。

创建交易对象API实例,之后所有交易和账户类的操作都要用到,GPT问一下:Python中的对象是什么?面向对象编程是个什么概念?暂时不理解没事,简单读一下就行,这里我们就把对象想象成一把多功能军刀,用到哪个工具就拿出来,不用的时候收起来,就是个对象。后面创建连接,输出连接状态看一下是否成功,还有创建账户对象这些就好理解了。

准备工作做好了,上一篇也取了实时数据,现在就要根据实时价格来判断是否执行交易,还是以平安银行为例,代码000001.SZ,假设今天的价格到了10.01,我们就认为可以建仓了,执行买入一手。

实时数据 = xtdata.get_full_tick(['000001.SZ'])
卖一价 = 实时数据['000001.SZ']['askPrice'][0]
if 卖一价 <= 10.01:
    订单号 = 交易对象.order_stock(
        账户对象,
        '000001.SZ',
        xtconstant.STOCK_BUY,
        100,
        xtconstant.FIX_PRICE,
        卖一价)
    print('订单号:', 订单号)
# 一直忘说了,Python的注释是行首加#号
'''
也可以这样用大段注释,三个引号,
Python会认为这是字符串,直接跳过
注释是给人看的,代码是给编译器读的
注释的作用是给别人解释你的代码,给自己做的笔记
代码越写越多,逻辑越来越复杂,
回头再来修改和复用的时候,多半会忘了这段代码的作用
有个段子讲,代码写完当天只有自己和上帝知道什么意思
第二天就只有上帝知道了
'''

这里是以卖一价为准,主要是为了确保吃单成交,如果用买一价报单,就要挂单等待成交,不方便之后演示。

函数还有两个参数,strategy_name和order_remark,主要用于策略中识别订单来源,这里简化了先不用,第三个参数“委托类型”,股票普通交易只有STOCK_BUY和STOCK_SELL两种,两融、期货和ETF还有很多种,这里用不到。第四参数就是“委托数量”,股票是100的整倍数,也就是一手。第五个参数“报价类型”,这里用指定价xtconstant.FIX_PRICE,也就是我们取到的卖一价下单,也可以是自定一个价格,不要超出价格笼子就行。

上面的代码执行后,不一定会输出订单号,因为价格没到,所以要加上循环判断,一直等到价格到了,就执行,当然也可用订阅数据的方式来判断,那个复杂点,后边慢慢讲到。

今天的分享就这里吧,字数挺多了,无心学这些的人也读不到这里,有心学的也要去GPT问问,加深一下理解,对股票量化程序化自动交易感兴趣的朋友可以关注我,有任何相关问题也可以留言讨论或者私信与我交流

前面的相关文章如下:

http://炒股自动化:申请官方API接口,散户也可以icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/136907158炒股自动化:官方API接口,Python程序员炒股利器,散户可用icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/137236078简版:

python炒股自动化(0),申请券商API接口icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/135455065python炒股自动化(1),量化交易接口区别icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/134665080Python炒股自动化(2):获取股票实时数据和历史数据icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/136244006Python炒股自动化(3):分析取回的实时数据和历史数据icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/136347285Python炒股自动化(4):通过接口向交易所发送订单icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/136620466Python炒股自动化(5):通过接口查询订单,查询账户资产icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/136812940①:chatGPT、迅飞星火、通义千问、文心一言等等AI大模型,在之后都会用GPT表示,随便哪个都能协助编程,就普通的默认版本足够,不用付费买高级版本。很多很多人,主要是对编程完全没概念的人,认为GPT可以一劳永逸,完全不用懂编程,想多了,目前还做不到

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

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

相关文章

查询优化-ANY类型子连接提升

瀚高数据库 目录 文档用途 详细信息 文档用途 已知查询树基本结构的基础上&#xff0c;在一定条件下对SQL中的子连接提升&#xff0c; 详细信息 子连接提升流程 SQL: SELECT sname FROM student WHERE sno > ANY (SELECT sno FROM score);图1.1是该SQL对应的查询树&#…

代码随想录算法训练营第三十一天| 455.分发饼干、376.摆动序列、53.最大子序和

系列文章目录 目录 系列文章目录455.分发饼干贪心算法大饼干喂胃口大的&#xff08;先遍历胃口&#xff09;胃口大的先吃大饼干(先遍历饼干&#xff09;小饼干先喂胃口小的&#xff08;先遍历胃口&#xff09;胃口小的先吃小饼干&#xff08;先遍历饼干&#xff09; 376. 摆动序…

为什么在学校很难真正学好嵌入式?

10几年前,我是读电气工程专业,学了很多东西,结构,电机、绘图,plc等等.. 其实,都没什么鸟用,出来还是像个废物。 后面我自学转了单片机开发,说句难听点,自己买个开发板都比在学校学得深。 可能是这个专业的问题,主攻不是嵌入式方向,老师用汇编点个流水灯,这门课就…

第四百五十三回

文章目录 1. 问题描述2. 优化方法2.1 缩小范围2.2 替代方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取AppBar的高度"相关的内容&#xff0c;本章回中将介绍关于MediaQuery的优化.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 问题描述 我们在…

编程新手必看,python中条件控制语句学习(13)

介绍&#xff1a; Python3中的条件控制主要通过if、elif和else关键字来实现&#xff0c;它们用于根据条件执行特定的代码块。 if语句&#xff1a;这是最基本的条件控制结构。如果满足某个条件&#xff08;条件为True&#xff09;&#xff0c;则执行相应的代码块。在Python中&am…

Java学习42-Java 流(Stream)、文件(File)和IO - FileReader\FileWriter的使用

IO流 IO流的概述&#xff0c;分类等 Java程序中&#xff0c;对于数据的输入输出以stream方式进行&#xff0c;可以看作是一种数据的流动。 IO流中的IO是Input和Output的缩写&#xff0c;是非常实用的技术&#xff0c;用于处理设备之间的数据传输。读写文件&#xff0c;网络通…

Linux下批量的批量操作

批量删除docker 镜像 docker images | grep ent-form-web |awk ‘{print $3}’ | xargs docker rmi docker images: 列出所有的docker 镜像 docker images | grep ent-form-web : 选取出结果带 ent-form-web的信息 docker images | grep ent-form-web |awk ‘{print $3}’ 选取…

黑白图像彩色化

黑白图像彩色化 黑白图像彩色化&#xff0c;调用训练好的模型&#xff0c;将图片加上彩色&#xff0c;只需要OPENCV&#xff0c;支持C/PYTHON

【Python函数和类3/6】函数的返回值

目录 知识回顾 目标 函数的返回值 Tips 练习 ​编辑return的其它特性 任意类型的返回值 返回多个值 return的位置 小结 局部变量 局部变量的作用域 全局变量 全局变量的作用域 同名变量 pi的作用域 总结 知识回顾 在上篇博客中&#xff0c;我们学习给函数设置参…

基于 S2-LP 实现 802.15.4g 帧格式的数据透传

1. 引言 S2-LP 硬件上支持 802.15.4g 的帧格式&#xff0c;但是现有的 SDK 包并没有基于该帧格式的示例工程&#xff0c;因此本篇文章将介绍如何实现基于 802.15.4g 帧格式的数据透传。 2. 802.15.4g 帧格式 在开始之前&#xff0c;需要对 802.15.4g 帧格式有一个初步的了解…

VS中使用QT的UI提升类时,找不到头文件的情况

1、情况简述 在使用VS时&#xff0c;会发现与QCreator存在一些差异。最主要的就是要设置很多东西&#xff0c;如果不配置的话&#xff0c;就会遇到一些问题。下面我分享下我调试过程中遇到的一个问题。使用Qdesigner的UI提升类时&#xff0c;找不到头文件的情况&#xff1a; …

Flutter - 环境配置提示 cmdline-tools component is missing

问题&#xff1a; flutter doctor运行命令 flutter doctor 报错&#xff1a; Android toolchain - develop for Android devices (Android SDK version 30.0.2) ✗ cmdline-tools component is missing Run path/to/sdkmanager --install "cmdline-tools;lates…

ChatGPT国内镜像站大全(全都是能白嫖的)

今天在知乎看到一个问题&#xff1a;“平民不参与内测的话没有账号还有机会使用ChatGPT吗&#xff1f;” 从去年GPT大火到现在&#xff0c;关于GPT的消息铺天盖地&#xff0c;真要有心想要去用&#xff0c;途径很多&#xff0c;别的不说&#xff0c;国内GPT的镜像站到处都是&a…

OpenHarmony4.0分布式任务调度浅析

1 概述 OpenHarmony 分布式任务调度是一种基于分布式软总线、分布式数据管理、分布式 Profile 等技术特性的任务调度方式。它通过构建一种统一的分布式服务管理机制&#xff0c;包括服务发现、同步、注册和调用等环节&#xff0c;实现了对跨设备的应用进行远程启动、远程调用、…

ES13:类的新增特性、最外层的await、at...

1-类的新增特性 类私有属性和方法&#xff1a;# class Person{// 不需要传参、一开始就需要初始化的&#xff0c;就可以在类的最外面直接声明这个成员state{a:1,b:2}constructor(name,age){this.namename;this.ageage;}}在属性和方法前加#表示私有 #obj{} #prest(){}静态成员…

DP例题详解(二)最短编辑距离和编辑距离

902. 最短编辑距离 - AcWing题库 #include<bits/stdc.h>using namespace std;const int N1010;int n,m; char a[N],b[N]; int f[N][N];int main() {cin>>n>>a1;cin>>m>>b1;for(int i0;i<m;i)f[0][i]i;for(int i0;i<n;i)f[i][0]i;//先初始化…

Leetcode算法训练日记 | day20

一、合并二叉树 1.题目 Leetcode&#xff1a;第 617 题 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新…

linux中rpm包与deb包的区别及使用

文章目录 1. rpm与deb的区别2. deb软件包的格式和使用2.1 deb软件包命令遵行如下约定2.2 dpkg命令2.3 apt-命令 3. Unix和Linux的区别Reference 1. rpm与deb的区别 有的系统只支持使用rpm包安装&#xff0c;有的只支持deb包安装&#xff0c;混乱安装会导致系统问题。 关于rpm和…

绿联 安装火狐浏览器(Firefox),支持访问路由器

绿联 安装火狐浏览器&#xff08;Firefox&#xff09;&#xff0c;支持访问路由器 1、镜像 linuxserver/firefox:latest 前置条件&#xff1a;动态公网IP。 已知问题&#xff1a; 直接输入中文时&#xff0c;不能完整输入&#xff0c;也可能输入法无法切换到中文&#xff0c;可…

【LeetCode刷题笔记】LeetCode 1365.有多少小于当前数字的数字

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 更多算法知识专栏&#xff1a;算法分析&#x1f525; 给大家跳段街舞感谢…