新发经济

快讯

python股票数据分析,利用python进行股票数据分析

时间:2021-12-16 23:26

  1:用Python 进行股票分析 有什么好的入门书籍或者课程吗

  用这个分析,分析对的概率很低,取样是过去的数据,但是每只股票不同时期的主力庄家是不同人,基本面筹码面情况完全不同,怎么可能分析对

  2:python怎么分析所有股票

  在 Python的STK中,是通过 s_datapath 变量,定义相应股票数据所在的文件夹。一般可以通过 SDATA 这个环境变量来设置对应的数据文件夹。
具体的股票数据来源,例如沪深、港股等市场,你可以使用免费的WDZ程序输出相应日线分钟数据到 s_datapath 变量所指定的文件夹中。然后可使用 Python的STK中,qstkutil.DataAccess进行数据访问。

  3:用Python 进行股票分析 有什么好的入门书籍或者课程吗

  个人觉得这问题问的不太对,说句不好的话,你是来搞编程的还是做股票的。

  当然,如果题主只是用来搜集资料,看数据的话那还是可以操作一波的,至于python要怎么入门,个人下面会推荐一些入门级的书籍,通过这些书籍,相信楼主今后会有一个清晰的了解(我们以一个完全不会编程的的新手来看待)。

  《Learn Python The Hard Way》,也就是我们所说的笨办法学python,这绝对是新手入门的第一选择,里面话题简练,是一本以练习为导向的教材。有浅入深,而且易懂。

  《Python学习手册》这也是本入门书籍,不过会偏理论化些,里面有很多关于学习Python的一些前提知识。建议新手可以读一下,粗略了解一些即可。

  《利用 Python 进行数据分析》,这本应该就是题主要深刻研究的书籍了,如果真想要用其炒股,这本就是必备的了。在里面你可以真正学习到怎么用Python编程进行数据分析。

  其它的像什么,《Python源码剖析》,《集体智慧编程》,《Python核心编程(第二版)》等题主都可以适当的选择参读下,相信都会对题主有所帮助。

  最后,还是要重复上面的话题,炒股不是工程学科,它有太多的变数,对于现在的智能编程来说,它还没有办法及时的反映那些变数,所以,只能当做一种参考,千万不可过渡依赖。

  结语:pyhton相对来说是一种比较高端的学科,需要有很强的逻辑能力。所以入门是非常困难的,如果真的要学习,是需要很大的毅力去坚持下去的,而且不短时间就能入门了,要有所心理准备。

  4:怎样用 Python 写一个股票自动交易的程序

  概率炒股法:
下面方法买涨不买跌,同时避免被套,缺点,手续费比较高,但完全可以吃完整个牛市,熊市不会被套。
用python获取股票价格,如tushare,如果发现股票当天涨幅在大盘之上(2点30到2点50判断),买入持有一天,下跌当天就别买,你可以用概率论方法,根据资金同时持有5支,10支或20支,这样不怕停盘影响,理论上可以跑赢大盘。好处:避免人为冲动,缺点手续费高
还有一种是操作etf,如大盘50etf,etf300,中小板etf,创业板etf,当天2.30分判断那个etf上涨就买入那支,买入涨幅最大的,不上涨什么都不买,持有一天,第二天上午判断一下,如果下跌超过2%卖掉。好处:不会踩地雷,缺点:涨随大盘,我比较推荐这个方法,外围的风险比较小。
具体的python程序我有,比上面复杂,有止赢止损位,资金管理,监视管理,我用在实盘当中,自动化下单也已解决。
我觉得程序的成败不在一日之功,在于长期稳定赚钱,如运行十年,过多的数据分析也无意义,因为预测未来永远是一个概率问题,不是百分之百确定的,如果你的程序能在长时间多次数上战胜市场,你的程序就能趋向大数定理。
否则一时的回撤会让你停止程序自动执行,而无法趋向大数定理中的稳定概率。
如果有一个程序能百分之99确定,那么基本上肯定是分析了内幕交易数据,和徐x一样,每次重仓一支股,这种手法应该是得到了内幕,也就不需要什么程序来交易了。
巴菲特的交易模式实质上也是内幕交易的一种,因为他靠的是外在分析,实地考查,估计这是寻找内幕的手段,现在做大了,这种效果就不灵了,收益也下降了,美国经济也下滑了,所以巴菲特的未来是必定是暗淡的,因为内幕交易的池子有限,资金量大了不好操作。
想想如果巴菲特生在苏联,印度,日本等等其他国家,他可能在街头要饭,美国二战后经济环境加倾向内幕造就了他,而不是炒股技术有多神。所以巴菲特不屑于程序化交易。
巴菲特及不少美国式的股神实际上是幸存者偏差造成的,你想想苏联的股神在那里为什么一个都没有(“沉默的数据”、“死人不会说话”)
我觉得未来真正能成股神必定是程序,不是人,因为一个好的程序策略可以用一辈子,实现长期稳定增长,当然前提是社会经济环境稳定,不会出现类似苏联的动乱,也不会出现日本式的恶性通胀(对货币m2有点担心)。
太多的股票让股民每天沉浸在选股的游戏中,选股造就了券商的行情软件,实际上很多数据都是没有用的,所有的关键是按操作方法永远执行下去才能趋向稳定概率,否则今天换一种明天换一种方法,今天按kdj,明天按macd,后天按boll,大后天按ddx,大大后天按自编指标,多条件选股,最后钱都交手续费或止损不及时被套牢了。这时券商收佣金的目的也就达到了,每年券商收的佣金比股市分红要高。不管行情如何,只要多请几个股评员,总有方向说对的,玩个概率游戏让大家频繁交易,券商的收入只会增不会降。所以千万别信股评,玩的是概率游戏,如同预测硬币的正反,请十个股评师必定有个能预测三次正确的神股评。你信这个神股评,后面可能是三次都不准,呵呵。所以券商和行情软件总会在收盘或午休时弹出各种消息或评价,说实在的这种东西没有一分钱的价值。可能早就写好了上涨的说法是模块a,下跌的说法是模板b,平市的说法是模板c,只是填上当天数据即可,都是八股文,都是马后炮,一样的事件上午说成是上涨理由,下午说成是下跌理由。
程序的策略经过测试后的关键在于稳定执行,长期稳定执行,长期长期稳定稳定执行执行,重要的事说三遍。
人性无法战胜的弱点是执行力,小学生都懂的天天向上,每日进步,世间有几人能做到而稳定几十年执行更是难上加难,如同背英语单词一样,理论上一天背一百个,一百天就可以一万词,但十年,二十年过去了,你可能还是三千词以下。
用程序的目的就是百分之百执行到位,没有折扣,真正战胜人性的弱点,和t+1没有关系。
另外通过一定方法降低手续费也可以使你的资金活得更久,如把上面的日模型改为周或月模型。

  5:Python 如何爬股票数据

  找个网站,找个python网抓视频教程,对着做就行了。用excel更简单,直接网抓到excel表格里。

  6:如何用python 爬虫抓取金融数据

  获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一。鉴于此,我拾起了Python这把利器,开启了网络爬虫之路。

  本篇使用的版本为python3.5,意在抓取证券之星上当天所有A股数据。程序主要分为三个部分:网页源码的获取、所需内容的提取、所得结果的整理。

  一、网页源码的获取

  很多人喜欢用python爬虫的原因之一就是它容易上手。只需以下几行代码既可抓取大部分网页的源码。

  import urllib.request
 

  虽说抓一页的源码容易,不过在一个网站内大量抓取网页源码却经常遭到服务器拦截,顿时感觉世界充满了恶意。于是我开始研习突破反爬虫限制的功法。

  1.伪装流浪器报头

  很多服务器通过浏览器发给它的报头来确认是否是人类用户,所以我们可以通过模仿浏览器的行为构造请求报头给服务器发送请求。服务器会识别其中的一些参数来识别你是否是人类用户,很多网站都会识别User-Agent这个参数,所以请求头最好带上。有一些警觉性比较高的网站可能还会通过其他参数识别,比如通过Accept-Language来辨别你是否是人类用户,一些有防盗链功能的网站还得带上referer这个参数等等。

  2.随机生成UA

  证券之星只需带User-Agent这个参数就可以抓取页面信息了,不过连续抓取几页就被服务器阻止了。于是我决定每次抓取数据时模拟不同的浏览器发送请求,而服务器通过User-Agent来识别不同浏览器,所以每次爬取页面可以通过随机生成不同的UA构造报头去请求服务器,

  3.减慢爬取速度

  虽然模拟了不同浏览器爬取数据,但发现有的时间段可以爬取上百页的数据,有时候却只能爬取十来页,看来服务器还会根据你的访问的频率来识别你是人类用户还是网络爬虫。所以我每抓取一页都让它随机休息几秒,加入此句代码后,每个时间段都能爬取大量股票数据了。

  4.使用代理IP

  天有不测风云,程序在公司时顺利测试成功,回寝室后发现又只能抓取几页就被服务器阻止了。惊慌失措的我赶紧询问度娘,获知服务器可以识别你的IP,并记录此IP访问的次数,可以使用高匿的代理IP,并在抓取的过程中不断的更换,让服务器无法找出谁是真凶。此功还未修成,欲知后事如何,请听下回分解。

  5.其他突破反爬虫限制的方法

  很多服务器在接受浏览器请求时会发送一个cookie文件给浏览器,然后通过cookie来跟踪你的访问过程,为了不让服务器识别出你是爬虫,建议最好带上cookie一起去爬取数据;如果遇上要模拟登陆的网站,为了不让自己的账号被拉黑,可以申请大量的账号,然后再爬入,此处涉及模拟登陆、验证码识别等知识,暂时不再深究...总之,对于网站主人来说,有些爬虫确实是令人讨厌的,所以会想出很多方法限制爬虫的进入,所以我们在强行进入之后也得注意些礼仪,别把人家的网站给拖垮了。

  二、所需内容的提取

  获取网页源码后,我们就可以从中提取我们所需要的数据了。从源码中获取所需信息的方法有很多,使用正则表达式就是比较经典的方法之一。我们先来看所采集网页源码的部分内容。

  为了减少干扰,我先用正则表达式从整个页面源码中匹配出以上的主体部分,然后从主体部分中匹配出每只股票的信息。代码如下。

  
body=re.findall(pattern,str(content)) #匹配<tbody和</tbody>之间的所有代码pattern=re.compile(>(.*?)<)
stock_page=re.findall(pattern,body[0]) #匹配>和<之间的所有信息
 

  其中compile方法为编译匹配模式,findall方法用此匹配模式去匹配出所需信息,并以列表的方式返回。正则表达式的语法还挺多的,下面我只罗列所用到符号的含义。

  语法 说明

  . 匹配任意除换行符“\n”外的字符

  * 匹配前一个字符0次或无限次

   匹配前一个字符0次或一次

  \s 空白字符:[<空格>\t\r\n\f\v]

  \S 非空白字符:[^\s]

  [...] 字符集,对应的位置可以是字符集中任意字符

  (...) 被括起来的表达式将作为分组,里面一般为我们所需提取的内容

  正则表达式的语法挺多的,也许有大牛只要一句正则表达式就可提取我想提取的内容。在提取股票主体部分代码时发现有人用xpath表达式提取显得更简洁一些,看来页面解析也有很长的一段路要走。

  三、所得结果的整理

  通过非贪婪模式(.*?)匹配>和<之间的所有数据,会匹配出一些空白字符出来,所以我们采用如下代码把空白字符移除。

  stock_last=stock_total[:] #stock_total:匹配出的股票数据for data in stock_total: #stock_last:整理后的股票数据
if data==:
stock_last.remove()
 

  最后,我们可以打印几列数据看下效果,代码如下

  print(代码,\t,简称, ,\t,最新价,\t,涨跌幅,\t,涨跌额,\t,5分钟涨幅)for i in range(0,len(stock_last),13): #网页总共有13列数据
print(stock_last[i],\t,stock_last[i+1], ,\t,stock_last[i+2], ,\t,stock_last[i+3], ,\t,stock_last[i+4], ,\t,stock_last[i+5])