❶ python如何获得股票实时交易数据
使用easyquotation这个库。(不用重复造轮子了)
github地址是:
https://github.com/shidenggui/easyquotation
❷ python的QSTK中,里面股票的历史数据是包含在包里面么,还是通过网络获取
在 Python的QSTK中,是通过 s_datapath 变量,定义相应股票数据所在的文件夹。一般可以通过 QSDATA 这个环境变量来设置对应的数据文件夹。
具体的股票数据来源,例如沪深、港股等市场,你可以使用免费的WDZ程序输出相应日线、5分钟数据到 s_datapath 变量所指定的文件夹中。然后可使用 Python的QSTK中,qstkutil.DataAccess进行数据访问。
❸ 如何用python代码判断一段范围内股票最高点
Copyright © 1999-2020, CSDN.NET, All Rights Reserved
登录
python+聚宽 统计A股市场个股在某时间段的最高价、最低价及其时间 原创
2019-10-12 09:20:50
开拖拉机的大宝
码龄4年
关注
使用工具pycharm + 聚宽数据源,统计A股市场个股在某时间段的最高价、最低价及其时间,并打印excel表格输出
from jqdatasdk import *
import pandas as pd
import logging
import sys
logger = logging.getLogger("logger")
logger.setLevel(logging.INFO)
# 聚宽数据账户名和密码设置
auth('username','password')
#获取A股列表,包括代号,名称,上市退市时间等。
security = get_all_securities(types=[], date=None)
pd2 = get_all_securities(['stock'])
# 获取股票代号
stocks = list(get_all_securities(['stock']).index)
# 获取股票名称
stocknames = pd2['display_name']
start_date = '2015-01-01'
end_date = '2018-12-31'
def get_stocks_high_low(start_date,end_date):
# 新建表,表头列
# 为:"idx","stockcode","stockname","maxvalue","maxtime","lowvalue","lowtime"
result = pd.DataFrame(columns=["idx", "stockcode", "stockname", "maxvalue", "maxtime", "lowvalue", "lowtime"])
for i in range(0,stocks.__len__()-1):
pd01 = get_price(stocks[i], start_date, end_date, frequency='daily',
fields=None, skip_paused=False,fq='pre', count=None)
result=result.append(pd.DataFrame({'idx':[i],'stockcode':[stocks[i]],'stockname':
[stocknames[i]],'maxvalue':[pd01['high'].max()],'maxtime':
[pd01['high'].idxmax()],'lowvalue': [pd01['low'].min()], 'lowtime':
[pd01['low'].idxmin()]}),ignore_index=True)
result.to_csv("stock_max_min.csv",encoding = 'utf-8', index = True)
logger.warning("执行完毕!
❹ 股票池如何用python构建
股票池用python构建的方法是:使用第三方平台,目前可以使用的是聚宽,对比一下聚宽、优矿、大宽网(已经倒闭了),都大同小异,选哪个都一样。
虽然这些平台都大同小异,但是代码可不能简单复制粘贴,因为底层函数库是不一样的,有可能在别的平台根本用不了某个函数,并且简单复制到自己电脑中的python的话百分之百用不了。
代码的思路是,每个月底进行调仓,选出市值最小的股票交易,去掉ST/*ST/停牌/涨停的股票,然后选择最小市值的10只,基准是创业板综指,看看结果。
python构建数据获取方法是:
这里使用为了接下来的操作需要将一定历史范围的股票数据下载下来,这里下载起始时间为20160101,截至时间为运行代码的时间范围的历史日线数据。
这里以tushare为例, tushare获取历史数据有两种方式。
第一种是以迭代历史交易日的方式获取所有历史数据,假设获取三年的历史数据,一年一般220个交易日左右,那么3年需要请求660多次左右,如果以这种方式的话,就下载数据的时间只需要1分钟多点的样子。
第二种是以迭代所有股票代码的方式获取所有历史数据,股票数量有大概3800多个,需要请求3800多次,但是在积分有限的情况下一分钟最多请求500次,也就意味着仅下载数据的时间至少需要大概8分钟时间。
理论上,你获取的历史范围超过17.3年,那么使用第一种方式才比第二种方式快。
❺ 如何选取过去每个月股票的市值 python
类似,可以修改一下
股票涨跌幅数据是量化投资学习的基本数据资料之一,下面以python代码编程为工具,获得所需要的历史数据。主要步骤有:
(1) #按照市值从小到大的顺序活得N支股票的代码;
(2) #分别对这一百只股票进行100支股票操作;
(3) #获取从2016.05.01到2016.11.17的涨跌幅数据;
(4) #选取记录大于40个的数据,去除次新股;
(5) #将文件名名为“股票代码.csv”。
具体代码如下:
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 17 23:04:33 2016
获取股票的历史涨跌幅,并分别存为csv格式
@author: yehxqq151376026
"""
import numpy as np
import pandas as pd
#按照市值从小到大的顺序活得100支股票的代码
df = get_fundamentals(
query(fundamentals.eod_derivative_indicator.market_cap)
.order_by(fundamentals.eod_derivative_indicator.market_cap.asc())
.limit(100),'2016-11-17', '1y'
)
#分别对这一百只股票进行100支股票操作
#获取从2016.05.01到2016.11.17的涨跌幅数据
#选取记录大于40个的数据,去除次新股
#将文件名名为“股票代码.csv”
for stock in range(100):
priceChangeRate = get_price_change_rate(df['market_cap'].columns[stock], '20160501', '20161117')
if priceChangeRate is None:
openDays = 0
else:
openDays = len(priceChangeRate)
if openDays > 40:
tempPrice = priceChangeRate[39:(openDays - 1)]
for rate in range(len(tempPrice)):
tempPrice[rate] = "%.3f" %tempPrice[rate]
fileName = ''
fileName = fileName.join(df['market_cap'].columns[i].split('.')) + '.csv'
fileName
tempPrice.to_csv(fileName)
❻ Python量化教程:不得不学的K线图“代码复制可用”
不管是对量化分析师还是普通的投资者来说,K线图(蜡烛图)都是一种很经典、很重要的工具。在K线图中,它会绘制每天的最高价、最低价、开盘价和收盘价,这对于我们理解股票的趋势以及每天的多空对比很有帮助。
一般来说,我们会从各大券商平台获取K线图,但是这种情况下获得的K线图往往不能灵活调整,也不能适应复杂多变的生产需求。因此我们有必要学习一下如何使用Python绘制K线图。
需要说明的是,这里mpl_finance是原来的matplotlib.finance,但是现在独立出来了(而且好像没什么人维护更新了),我们将会使用它提供的方法来绘制K线图;tushare是用来在线获取股票数据的库;matplotlib.ticker中有个FuncFormatter()方法可以帮助我们调整坐标轴;matplotlib.pylab.date2num可以帮助我们将日期数据进行必要的转化。
我们以上证综指18年9月份以来的行情为例。
我们先使用mpl_finance绘制一下,看看是否一切正常。
可以看到,所有的节假日包括周末,在这里都会显示为空白,这对于我们图形的连续性非常不友好,因此我们要解决掉他们。
可以看到,空白问题完美解决,这里我们解释一下。由于matplotlib会将日期数据理解为 连续数据 ,而连续数据之间的间距是有意义的,所以非交易日即使没有数据,在坐标轴上还是会体现出来。连续多少个非交易日,在坐标轴上就对应了多少个小格子,但这些小格子上方并没有相应的蜡烛图。
明白了它的原理,我们就可以对症下药了。我们可以给横坐标(日期)传入连续的、固定间距的数据,先保证K线图的绘制是连续的;然后生成一个保存有正确日期数据的列表,接下来,我们根据坐标轴上的数据去取对应的正确的日期,并替换为坐标轴上的标签即可。
上边format_date函数就是这个作用。由于前边我们给dates列生成了从0开始的序列连续数据,因此我们可以直接把它当作索引,从真正的日期列表里去取对应的数据。在这里我们要使用matplotlib.ticker.FuncFormattter()方法,它允许我们指定一个格式化坐标轴标签的函数,在这个函数里,我们需要接受坐标轴的值以及位置,并返回自定义的标签。
你学会了吗?
当然,一个完整的K线图到这里并没有结束,后边我们会考虑加入均线、成交量等元素,感兴趣的同学欢迎关注哦!
❼ 如何使用Python获取股票分时成交数据
可以使用爬虫来爬取数据,在写个处理逻辑进行数据的整理。你可以详细说明下你的需求,要爬取的网站等等。
希望我的回答对你有帮助
❽ 有A股的分时交易数据API接口吗
获取的方法主要用到了两个python第三方模块,一个jquote_api,用这个api来获取全市场的A股代码和一些简单的数据,另外一个是easyquotation,这个api负责获取实时的行情数据。具体的操作需要用到的源码如下分析:
1、通过jquote_api拿到A股全市场的代码;
2、通过easyquotation获取一揽子股票的实时行情;
3、需要注意的是查询股票数据接口是一次性推送过来的,必须要遍历去提取你要的股票代码的数据