上一篇说了股票量化交易接口的关键,申请券商官方API接口,文章链接放在文末了,需要的可以看一下。接口最基本的三项:获取数据、执行交易、查询账户,有了这三项,其它的都可以想办法在本地实现。
个人账户可申请,入金门槛低,接入文档完善,技术支持好的,经过我们筛选后,只有一家符合,会编程有基础,可以关注一下,之前和之后的文章也都是以此为基础演示。
另外需要强调一下,我们不卖课,不收徒,不代写策略,这些资源可以帮你引荐对接,我们没有这些业务。程序交易需要基础的编程能力,这个官方接口是可以给散户用的,但是如果不会编程,申请到了接口也不知道怎么用。
这些内容是给新手看的,有心学习的话,总能学会的,只要理解了一些基础概念,就可以借助现在的AI大模型,写出复杂的交易策略,之后的内容会尽可能让不懂编程的人,直接面向股票自动化实战学习编程
想要实现程序交易,首先要获取数据,根据取到的数据来判断,是否达到某个条件,然后执行交易。比如某支股票低于某个价格,就执行买入;高于某个价格就执行卖出。这就要获取实时数据,我们以平安银行为例,代码“000001.SZ”。
- 实时数据=xtdata.get_full_tick(['000001.SZ'])
程序的编写要按照一定标准来写,当然你也可以随意写,但是之后维护和修改更新会很困难,如果没有标准,程序之间的交互也会混乱,接口的调用标准之一,就是要按照“代码.市场”来表示标的,你的程序要告诉服务器,想要获取的是哪支股票的数据。
取回的数据赋值给变量“实时数据”,这个变量名是你自己定义的,也要有一定的规范,不然随着代码量的增加,等维护修改的时候你会哭的,Python从3.X版本是支持中文变量名的,如果不写大型软件,不需要多人协作的软件,就用中文吧,太省心了
xtdata是API接口中的行情模块,get_full_tick是这个模块中获取实时数据的函数,这个函数只有一个参数,参数是Python中的列表格式,所以这行代码的意思,用xtdata模块中的get_full_tick函数,获取股票代码为000001.SZ的实时数据,获取的数据赋值给变量“实时数据”。获取的数据是Python中的字典格式。
“变量”是一个非常重要的概念,这一点一定要搞明白,可以这么说,理解了什么是变量,怎么用变量,你编程就入门了。可以把变量想象成一个收纳盒,收纳盒一般是分门别类的放东西,盒子里你可以放记事本,账本,锤子钳子等等。这个盒子可以随时拿出来用,也可以是空盒子,把其它东西放进去。通常使用变量之前,需要先声明变量名和变量的数据类型,Python中变量的使用非常简便,不需要显式声明和定义,直接赋值就行,类型也可以在使用中根据内容自动确定,比如:
x = 10
x = '我是字符串'
但是尽量不要这样,很容易出问题,这里的x是变量名,10是给x赋的值,第一行的意思是声明变量x,定义数据类型为整数,并赋值为10。也就是一个名字叫x的收纳盒,这个盒子里是放整数的,现在放进去一个数字10。第二行这个变量的数据类型就成字符串类型了,Python中双引号单引号都行,两两成对就行。常用的数据类型有以下几种:
- a = 10 #整数int
- b = 10.1 #浮点数(小数)float
- c = '程序交易接口API' #字符串str
- d = True #布尔(真或假)bool
- e = ['程序', '交易', '接口', 'API'] #列表list
- print(e[0]) #输出“量化”
- f = {'name':'程序交易接口', 'from':'券商官方API'} #字典dict
- print(f['name'])#输出“程序交易接口”
还有其它的,暂时用不到,用到了再说,上边说的“实时数据”这个变量,返回的是字典类型的数据:
- 实时数据 = xtdata.get_full_tick(['000001.SZ'])
- print(实时数据)
- #输出后整理显示如下:
- {'000001.SZ':
- {'timetag': '20240401 14:00:57',
- 'lastPrice': 10.62,
- 'open': 10.52,
- 'high': 10.64,
- 'low': 10.51,
- 'lastClose': 10.52,
- 'amount': 980113800,
- 'volume': 926110,
- 'pvolume': 92611036,
- 'stockStatus': 0,
- 'openInt': 13,
- 'settlementPrice': 0,
- 'lastSettlementPrice': 0,
- 'askPrice': [10.63, 10.64, 10.65, 10.66, 10.67],
- 'bidPrice': [10.62, 10.61, 10.6, 10.59, 10.58],
- 'askVol': [17342, 20136, 27551, 15036, 7327],
- 'bidVol': [10001, 4742, 5997, 8000, 9456]
字典类型的数据是一个集合,有索引,无序,可变。一个键名对应一个键值,输出数据中,'000001.SZ'就是键名,冒号后面的就是它的键值,这个键值是一层嵌套的字典,嵌套的字典中,'askPrice'几个键又是一层嵌套的列表格式,上面说了如何输出字典和列表的输出方式,这种嵌套的其实也一样,就是通过链式访问对应的键就可以:
- print(实时数据['000001.SZ']['open'])#输出10.52
- print(实时数据['000001.SZ']['askPrice'][0]) #输出10.63
现在取到了实时数据,也知道这个变量怎么调用,下一节我们学一下根据这个实时数据,来判断是否执行买入或卖出,感觉这篇内容挺多了,字数再多就没耐心看完了。
上一篇文章的链接如下:
好了,今天的分享就到这里,对股票量化程序化自动交易感兴趣的朋友可以关注我,有任何相关问题也可以留言讨论或者私信与我交流
热门跟贴