Ⅰ 怎么用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()。因此在平时的使用中应当学会寻找更好的方法,提高运算速度。
Ⅱ 怎样用 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没有关系。
另外通过一定方法降低手续费也可以使你的资金活得更久,如把上面的日模型改为周或月模型。
Ⅲ 如何用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))的强大组合的能力。
我在这类模型上的下一次迭代应该会包含一个用于自动生成特征组合或独特列表的单独算法。也许会基于近乎实时的事件,这可能会影响那些具有只有配备了无监督学习算法的人类才能预测的隐藏关系的股票组。
Ⅳ python 怎么下单炒股票
前期的数据抓取和分析可能python都写好了,所以差这交易指令接口最后一步。版对于股票的散户,正规权的法子是华宝,国信,兴业这样愿意给接口的券商,但貌似开户费很高才给这权利,而且只有lts,ctp这样的c++接口,没python版就需要你自己封装。
Ⅳ 怎样用 Python 写一个股票自动交易的程序
方法一来
前期的数据抓自取和分析可能python都写好了,所以差这交易指令接口最后一步。对于股票的散户,正规的法子是华宝,国信,兴业这样愿意给接口的券商,但貌似开户费很高才给这权利,而且只有lts,ctp这样的c++接口,没python版就需要你自己封装。
方法二
是wind这样的软件也有直接的接口,支持部分券商,但也贵,几万一年是要的。
方法三
鼠标键盘模拟法,很复杂的,就是模拟键盘鼠标去操作一些软件,比如券商版交易软件和大智慧之类的。
方法四
就是找到这些软件的关于交易指令的底层代码并更改,不过T+1的规则下,预测准确率的重要性高于交易的及时性,花功夫做数据分析就好,交易就人工完成吧
Ⅵ python的量化代码怎么用到股市中
(1) #按照市值从小到大的顺序活得N支股票的代码;
(2) #分别对这一百只股票进行100支股票操版作;
(3) #获取权从2016.05.01到2016.11.17的涨跌幅数据;
(4) #选取记录大于40个的数据,去除次新股;
(5) #将文件名名为“股票代码.csv”。
Ⅶ 怎样用python处理股票
用Python处理股票需要获取股票数据,以国内股票数据为例,可以安装Python的第三方库回:tushare;一个国内股答票数据获取包。可以在网络中搜索“Python tushare”来查询相关资料,或者在tushare的官网上查询说明文档。
Ⅷ 怎样用 Python 写一个股票自动买卖的程序
方法一来
前期的数据源抓取和分析可能python都写好了,所以差这交易指令接口最后一步。对于股票的散户,正规的法子是华宝,国信,兴业这样愿意给接口的券商,但貌似开户费很高才给这权利,而且只有lts,ctp这样的c++接口,没python版就需要你自己封装。
方法二
是wind这样的软件也有直接的接口,支持部分券商,但也贵,几万一年是要的。
方法三
鼠标键盘模拟法,很复杂的,就是模拟键盘鼠标去操作一些软件,比如券商版交易软件和大智慧之类的。
方法四
就是找到这些软件的关于交易指令的底层代码并更改,不过T+1的规则下,预测准确率的重要性高于交易的及时性,花功夫做数据分析就好,交易就人工完成吧
Ⅸ 如何用Python炒股
如果想直接执行python程序的话可以写一个.bat新建一个记事本,然后写一段下面的代码,专最后存属成.bat文件,以后直接执行这段代码就可以了。其实也可以直接执行.py文件c:\program files\python file.py
Ⅹ 怎么学习python量化交易
下面教你八步写个量化交易策略——单股票均线策略
1 确定策略内容与框架
若昨日收盘价高出过去20日平均价今天开盘买入股票
若昨日收盘价低于过去20日平均价今天开盘卖出股票
只操作一只股票,很简单对吧,但怎么用代码说给计算机听呢?
想想人是怎么操作的,应该包括这样两个部分
既然是单股票策略,事先决定好交易哪一个股票。
每天看看昨日收盘价是否高出过去20日平均价,是的话开盘就买入,不是开盘就卖出。每天都这么做,循环下去。
对应代码也是这两个部分
definitialize(context):
用来写最开始要做什么的地方
defhandle_data(context,data):
用来写每天循环要做什么的地方
2 初始化
我们要写设置要交易的股票的代码,比如 兔宝宝(002043)
definitialize(context):
g.security='002043.XSHE'#存入兔宝宝的股票代码
3 获取收盘价与均价
首先,获取昨日股票的收盘价
#用法:变量=data[股票代码].close
last_price=data[g.security].close#取得最近日收盘价,命名为last_price
然后,获取近二十日股票收盘价的平均价
#用法:变量=data[股票代码].mavg(天数,‘close’)
#获取近二十日股票收盘价的平均价,命名为average_price
average_price=data[g.security].mavg(20,'close')
4 判断是否买卖
数据都获取完,该做买卖判断了
#如果昨日收盘价高出二十日平均价,则买入,否则卖出
iflast_price>average_price:
买入
eliflast_price<average_price:
卖出
问题来了,现在该写买卖下单了,但是拿多少钱去买我们还没有告诉计算机,所以每天还要获取账户里现金量。
#用法:变量=context.portfolio.cash
cash=context.portfolio.cash#取得当前的现金量,命名为cash
5 买入卖出
#用法:order_value(要买入股票股票的股票代码,要多少钱去买)
order_value(g.security,cash)#用当前所有资金买入股票
#用法:order_target(要买卖股票的股票代码,目标持仓金额)
order_target(g.security,0)#将股票仓位调整到0,即全卖出
6 策略代码写完,进行回测
把买入卖出的代码写好,策略就写完了,如下
definitialize(context):#初始化
g.security='002043.XSHE'#股票名:兔宝宝
defhandle_data(context,data):#每日循环
last_price=data[g.security].close#取得最近日收盘价
#取得过去二十天的平均价格
average_price=data[g.security].mavg(20,'close')
cash=context.portfolio.cash#取得当前的现金
#如果昨日收盘价高出二十日平均价,则买入,否则卖出。
iflast_price>average_price:
order_value(g.security,cash)#用当前所有资金买入股票
eliflast_price<average_price:
order_target(g.security,0)#将股票仓位调整到0,即全卖出
现在,在策略回测界面右上部,设置回测时间从20140101到20160601,设置初始资金100000,设置回测频率,然后点击运行回测。
7 建立模拟交易,使策略和行情实时连接自动运行
策略写好,回测完成,点击回测结果界面(如上图)右上部红色模拟交易按钮,新建模拟交易如下图。 写好交易名称,设置初始资金,数据频率,此处是每天,设置好后点提交。
8 开启微信通知,接收交易信号
点击聚宽导航栏我的交易,可以看到创建的模拟交易,如下图。 点击右边的微信通知开关,将OFF调到ON,按照指示扫描二维码,绑定微信,就能微信接收交易信号了。