量化交易学习分享-交易框架和获取股票信息

1.整体交易的框架

1.1获取交易数据

整个交易系统首先需要获取股票价格以及各种信息,例如股票开盘价,最高价,最低价,收盘价等信息。
目前获取股票信息的方式有三种:1. 通过类似期货的CTP接口的模式获取;2.通过券商获取tick数据;3.爬虫获取
上述三种方式前两种一般是收费的,第二种如果开了股票账户,是可以通过券商获取接口,但是也是收费,比如东方caifu啥的,所以对于新手上路还是先从爬虫获取,后面会详细介绍如何获取

1.2 数据预处理

当获取了股票价格等信息后,需要对数据先做预处理,做成我们算法需要的数据格式

#1.3 算法(交易策略)

数据预处理之后就是核心了,算法(交易策略),交易策略最主要就是低买高卖,那我们怎么知道什么时候是低买呢,什么时候是高卖呢? 这里讲一个最简单例子,比如你根据20日均线,当 当前股票价格低于20日均线的8%的时候你就买(cur_tick<ma200.92,buy); 当 当前股票价格高于20日均线的8%的时候你就卖(cur_tick<ma201.08,sell)

1.4 下单

就是通过券商提供的接口,登录你的账户,下单买或者卖

1.5 其它(回测与优化)

当我们写了一个交易策略,我们肯定不能直接将其作为你交易的依据,肯定先要拿历史数据验证你这个交易策略的盈利能力,也就是回测。回测过程中可以再优化你的参数,参数需要具有鲁棒性,比如第10天是10%的收益,但是在其它时间收益可能就亏了,这种效果就比较差
交易系统框架
子系统介绍

2.获取股票信息

我们国家目前有上海证券交易所和深圳证券交易所,股票代码后加SH,是上海的简称,也就是上交所上市的股票;股票代码后面加SZ,是深圳的简称,表示在深交所上市的股票。
上交所上市的股票有:上交所主板60开头的股票和科创板688开头的股票
深交所上市的股票有:深交所主板00开头的股票和创业板上市的股票
这里爬虫的网址是腾讯提供的一个接口:爬取网址,获取的数据如下面的原始数据,想要获取不同的股票
找到对应股票代码,注意是上交所还是深交所 通过更改sh600519即可
一般爬虫频率不要太高,建议3s一次,避免被封;如果真的要做交易,建议通过券商提供的接口获取tick数据
通过下面代码可以获取茅台的股票信息,mt_info是一个tuple字符串,不可修改的常量

import requests
from sys import prefix
from time import sleep
from dateutil import parser
from datetime import datetime ,time, timedelta

def getTick(symbol):
    # sh shanghai 上海的股票代号开头为6 
    # sz shenzhen 在深圳上市的交易市场
    prefix = 'sh' if symbol[0]=='6' else 'sz'
    page = requests.get("http://qt.gtimg.cn/q="+prefix+symbol)
    stock_info = page.text
    mt_info = stock_info.split("~") 

    open = float(mt_info[5]) #开盘价
    high = float(mt_info[33]) #最高价
    low = float(mt_info[34])  #最低价
    close = float(mt_info[3]) #收盘价
    
    trade_datetime = parser.parse(mt_info[30])
    tick = (close, trade_datetime)
    return tick
while True:
    #以贵州茅台为例
    last_tick = getTick('600519')
    print(last_tick)
    # wait for 3 second 
    sleep(3)

上面的信息主要关注的是开盘价,最高价,最低价,收盘价,但是mt_info 包含的远不止于此,下面以其中一帧数据举例:
原始数据:

'v_sh600519="1~贵州茅台~600519~1350.00~1360.00~1350.00~71847~36081~35765~1350.00~41
~1349.99~6~1349.90~8~1349.88~3~1349.80~10~1351.01~2~1352.00~16~1352.79~1~1353.00~5
~1353.16~10~~20221031155901~-10.00~-0.74~1382.01~1333.00~1350.00/71847/9758303071~
71847~975830~0.57~28.46~~1382.01~1333.00~3.60~16958.67~16958.67~8.20~1496.00~
1224.00~0.73~34~1358.21~28.65~32.33~~~0.94~975830.3071~0.0000~0~ ~GP-A~-33.44~-
10.08~1.61~28.83~25.21~2195.29~1333.00~-21.44~-27.54~-28.89~1256197800~1256197800~33.33~-30.53~1256197800
~~~-25.18~-0.26~";\n'

含义解释:

'v_sh600519="1~贵州茅台~(2 股票代码)600519~(3 今开)1350.00~(4 昨收)1360.00~(5 收盘)1350.00~(6 成交量)71847~(7 )
36081~(8)35765~(9 买一价格)1350.00~(10 买一成交量)41~(11 买二价格)1349.99~(12 买二成交量)6~(13 买三价格)1349.90
~(14 买三成交量)8~(15 买四价格)1349.88~(16 买四成交量)3~(17 买五价格)1349.80~(18 买五成交量)10~(19 卖一价格)1351.01
~(20 卖一成交量)2~(21 卖二价格)1352.00~(22 卖二成交量)16~(23 卖三价格)1352.79~(24 卖三成交量)1~(25 卖四价格)1353.00
~(26 卖四成交量)5~(27 卖五价格)1353.16~(28 卖五成交量)10~~(29,30 日期以及当前时间)20221031155901~(31涨跌)-10.00
~(32涨幅)-0.74~(33 最高)1382.01~(34 最低)1333.00~()1350.00/71847/9758303071~71847
~975830~(换手率)0.57~28.46~~1382.01~1333.00~3.60~16958.67~16958.67~8.20~1496.00~1224.00~0.73~34
~1358.21~28.65~32.33~~~0.94~975830.3071~0.0000~0~ ~GP-A~-33.44~-10.08~1.61~28.83~25.21
~2195.29~1333.00~-21.44~-27.54~-28.89~1256197800~1256197800~33.33~-30.53~1256197800~~~-25.18~-0.26~";\n'

上面是我对比原始数据与股票信息界面对比找到的解释,如有错误,欢迎指正,上述的不全的信息,也希望大家积极评论补充

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值