量化交易学习分享

贵客云 2022-11-20 11:18 阅读 9

1.整体交易的框架

1.1 整个交易系统首先需要获取股票价格以及各种信息,例如股票开盘价,最高价,最低价,收盘价等信息。

目前获取股票信息的方式有三种:1. 通过类似期货的CTP接口的模式获取;2.通过券商获取tick数据;3.爬虫获取

上述三种方式前两种一般是收费的,第二种如果开了股票账户,是可以通过券商获取接口,但是也是收费,比如东方caifu啥的,所以对于新手上路还是先从爬虫获取,后面会详细介绍如何获取

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

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

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

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


交易系统框架
子系统介绍

2.获取股票信息

我们国家目前有上海证券交易所和深圳证券交易所,股票代码后加SH,是上海的简称,也就是上交所上市的股票;股票代码后面加SZ,是深圳的简称,表示在深交所上市的股票。

上交所上市的股票有:上交所主板60开头的股票和科创板688开头的股票

深交所上市的股票有:深交所主板00开头的股票和创业板上市的股票

这里爬虫的网址是腾讯提供的一个接口:爬虫接口,获取的数据如下面的原始数据,想要获取不同的股票

找到对应股票代码,注意是上交所还是深交所 通过更改sh600519即可 qt.gtimg.cn/q=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'

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

分类: 财经/投资理财 关键词: 量化交易
原文 编辑 投诉 置顶 分享
推荐
快讯
剧透网 展会网 乡村游
营销软件 行业信息


营销 网络营销 自媒体营销 产品推广 营销策划 媒体投放 电商营销 广告联盟 科技 大数据 人工智能 智能硬件 工业互联网 物联网
财经 跨境电商 投资理财 量化交易 价值投资 招商加盟 食品招商 餐饮加盟