python股票k
1. 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线图到这里并没有结束,后边我们会考虑加入均线、成交量等元素,感兴趣的同学欢迎关注哦!
2. python 设计一个名为Stock的类来表示一个公司的股票
class Stock():
def __init__(self):
self.__no = ""
self.__name = ""
self.previousClosingPrice = 0
self.currentPrice = 0
def creatStock(self,stockInfo):
self.__no = stockInfo[0]
self.__name = stockInfo[1]
self.previousClosingPrice = stockInfo[2]
self.currentPrice = stockInfo[3]
def getStockName(self):
return(self.__name)
def getStockNo(self):
return(self.__no)
def setPreviousClosingPrice(self,price):
self.previousClosingPrice = price
def getPreviousClosingPrice(self):
return(self.previousClosingPrice)
def setCurrentPrice(self,price):
self.currentPrice = price
def getCurrentPrice(self):
return(self.currentPrice)
def getChangePercent(self):
return((self.currentPrice - self.previousClosingPrice)/self.currentPrice)
stock = Stock()
stock.creatStock(["601318","中国平安",63.21,64.39])
print(stock.getStockNo())
print(stock.getStockName())
print(stock.getCurrentPrice())
print(stock.getPreviousClosingPrice())
3. 如何用Python和机器学习炒股赚钱
相信很多人都想过让人工智能来帮你赚钱,但到底该如何做呢?瑞士日内瓦的一位金融数据顾问 Gaëtan Rickter 近日发表文章介绍了他利用 Python 和机器学习来帮助炒股的经验,其最终成果的收益率跑赢了长期处于牛市的标准普尔 500 指数。虽然这篇文章并没有将他的方法完全彻底公开,但已公开的内容或许能给我们带来如何用人工智能炒股的启迪。
我终于跑赢了标准普尔 500 指数 10 个百分点!听起来可能不是很多,但是当我们处理的是大量流动性很高的资本时,对冲基金的利润就相当可观。更激进的做法还能得到更高的回报。
这一切都始于我阅读了 Gur Huberman 的一篇题为《Contagious Speculation and a Cure for Cancer: A Non-Event that Made Stock Prices Soar》的论文。该研究描述了一件发生在 1998 年的涉及到一家上市公司 EntreMed(当时股票代码是 ENMD)的事件:
“星期天《纽约时报》上发表的一篇关于癌症治疗新药开发潜力的文章导致 EntreMed 的股价从周五收盘时的 12.063 飙升至 85,在周一收盘时接近 52。在接下来的三周,它的收盘价都在 30 以上。这股投资热情也让其它生物科技股得到了溢价。但是,这个癌症研究方面的可能突破在至少五个月前就已经被 Nature 期刊和各种流行的报纸报道过了,其中甚至包括《泰晤士报》!因此,仅仅是热情的公众关注就能引发股价的持续上涨,即便实际上并没有出现真正的新信息。”
在研究者给出的许多有见地的观察中,其中有一个总结很突出:
“(股价)运动可能会集中于有一些共同之处的股票上,但这些共同之处不一定要是经济基础。”
我就想,能不能基于通常所用的指标之外的其它指标来划分股票。我开始在数据库里面挖掘,几周之后我发现了一个,其包含了一个分数,描述了股票和元素周期表中的元素之间的“已知和隐藏关系”的强度。
我有计算基因组学的背景,这让我想起了基因和它们的细胞信号网络之间的关系是如何地不为人所知。但是,当我们分析数据时,我们又会开始看到我们之前可能无法预测的新关系和相关性。
如果你使用机器学习,就可能在具有已知和隐藏关系的上市公司的寄生、共生和共情关系之上抢占先机,这是很有趣而且可以盈利的。最后,一个人的盈利能力似乎完全关乎他在生成这些类别的数据时想出特征标签(即概念(concept))的强大组合的能力。
我在这类模型上的下一次迭代应该会包含一个用于自动生成特征组合或独特列表的单独算法。也许会基于近乎实时的事件,这可能会影响那些具有只有配备了无监督学习算法的人类才能预测的隐藏关系的股票组。
4. 股票池如何用python构建
股票池用python构建的方法是:使用第三方平台,目前可以使用的是聚宽,对比一下聚宽、优矿、大宽网(已经倒闭了),都大同小异,选哪个都一样。
虽然这些平台都大同小异,但是代码可不能简单复制粘贴,因为底层函数库是不一样的,有可能在别的平台根本用不了某个函数,并且简单复制到自己电脑中的python的话百分之百用不了。
代码的思路是,每个月底进行调仓,选出市值最小的股票交易,去掉ST/*ST/停牌/涨停的股票,然后选择最小市值的10只,基准是创业板综指,看看结果。
python构建数据获取方法是:
这里使用为了接下来的操作需要将一定历史范围的股票数据下载下来,这里下载起始时间为20160101,截至时间为运行代码的时间范围的历史日线数据。
这里以tushare为例, tushare获取历史数据有两种方式。
第一种是以迭代历史交易日的方式获取所有历史数据,假设获取三年的历史数据,一年一般220个交易日左右,那么3年需要请求660多次左右,如果以这种方式的话,就下载数据的时间只需要1分钟多点的样子。
第二种是以迭代所有股票代码的方式获取所有历史数据,股票数量有大概3800多个,需要请求3800多次,但是在积分有限的情况下一分钟最多请求500次,也就意味着仅下载数据的时间至少需要大概8分钟时间。
理论上,你获取的历史范围超过17.3年,那么使用第一种方式才比第二种方式快。
5. 怎样用python处理股票
用Python处理股票需要获取股票数据,以国内股票数据为例,可以安装Python的第三方库:tushare;一个国内股票数据获取包。可以在网络中搜索“Python tushare”来查询相关资料,或者在tushare的官网上查询说明文档。
6. 怎么用python计算股票
作为一个python新手,在学习中遇到很多问题,要善于运用各种方法。今天,在学习中,碰到了如何通过收盘价计算股票的涨跌幅。
第一种:
读取数据并建立函数:
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import spline
from pylab import *
import pandas as pd
from pandas import Series
a=pd.read_csv('d:///1.csv',sep=',')#文件位置
t=a['close']
def f(t):
s=[]
for i in range(1,len(t)):
if i==1:
continue
else:
s.append((t[i]-t[i-1])/t[i]*100)
print s
plot(s)
plt.show()
f(t)
第二种:
利用pandas里面的方法:
import pandas as pd
a=pd.read_csv('d:///1.csv')
rets = a['close'].pct_change() * 100
print rets
第三种:
close=a['close']
rets=close/close.shift(1)-1
print rets
总结:python是一种非常好的编程语言,一般而言,我们可以运用构建相关函数来实现自己的思想,但是,众所周知,python中里面的有很多科学计算包,里面有很多方法可以快速解决计算的需要,如上面提到的pandas中的pct_change()。因此在平时的使用中应当学会寻找更好的方法,提高运算速度。
7. 如何用Python炒股
如果想直接执行python程序的话可以写一个.bat新建一个记事本,然后写一段下面的代码,最后存成.bat文件,以后直接执行这段代码就可以了。其实也可以直接执行.py文件c:\program files\python file.py