㈠ 怎么用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()。因此在平时的使用中应当学会寻找更好的方法,提高运算速度。
㈡ 如何利用Python预测股票价格
预测股票价格没有意义。
单支股票价格,多股组合,大盘这些都可以使用神经网络来学习,02年就做过了,涨跌预测平均能达到54%到57%的准确率,但是只能定性,无法定量,因此,在扣除印花税之后无利可图。
纯粹使用股票交易数据来预测并保证总体获利不是程序能办到的,人也办不到。
目前世界上最先进的炒股机器也只能利用网络时差那微不可计的零点几秒在欧洲与美国证券间倒来倒去,那套系统研发费用数千万,硬件(主要是独立光缆)费用以亿计。
㈢ 如何用python 取所有股票一段时间历史数据
各种股票软件,例如通达信、同花顺、大智慧,都可以实时查看股票价格和走势,做一些简单的选股和定量分析,但是如果你想做更复杂的分析,例如回归分析、关联分析等就有点捉襟见肘,所以最好能够获取股票历史及实时数据并存储到数据库,然后再通过其他工具,例如SPSS、SAS、EXCEL或者其他高级编程语言连接数据库获取股票数据进行定量分析,这样就能实现更多目的了。
㈣ 有A股的分时交易数据API接口吗
获取的方法主要用到了两个python第三方模块,一个jquote_api,用这个api来获取全市场的A股代码和一些简单的数据,另外一个是easyquotation,这个api负责获取实时的行情数据。具体的操作需要用到的源码如下分析:
1、通过jquote_api拿到A股全市场的代码;
2、通过easyquotation获取一揽子股票的实时行情;
3、需要注意的是查询股票数据接口是一次性推送过来的,必须要遍历去提取你要的股票代码的数据
㈤ 如何使用Python获取股票分时成交数据
可以使用爬虫来爬取数据,在写个处理逻辑进行数据的整理。你可以详细说明下你的需求,要爬取的网站等等。
希望我的回答对你有帮助
㈥ 用Python中的蒙特卡洛模拟两支股票组成的投资组合的价格趋势分析
蒙特卡洛模拟是一种模拟把真实系统中的概率过程用计算机程序来模拟的方法。对于投资组合的价格趋势分析,可以使用Python中的蒙特卡洛模拟。首先,回顾投资组合的价格趋势。投资组合中的股票价格的趋势是受多种因素影响的,可分为经济、政治和技术因素,其中经济因素最重要。因此,蒙特卡洛模拟可以模拟这些因素对投资组合价格趋势的影响,并通过计算机绘制投资组合价格趋势的曲线。
Python中的蒙特卡洛模拟首先需要计算投资组合中各股票价格的每一期的收益率,其次,计算出投资组合的收益率;随后,计算预测投资组合的期权价格,并将所有的期权价格叠加起来,从而绘制投资组合的价格曲线。最后,在投资组合的价格曲线的基础上,可以分析投资组合在不同时期的价格走势,并进行投资组合结构的调整,从而获得最优投资组合。
㈦ 如何用python获取股票数据
在Python的QSTK中,是通过s_datapath变量,定义相应股票数据所在的文件夹。一般可以通过QSDATA这个环境变量来设置对应的数据文件夹。具体的股票数据来源,例如沪深、港股等市场,你可以使用免费的WDZ程序输出相应日线、5分钟数据到s_datapath变量所指定的文件夹中。然后可使用Python的QSTK中,qstkutil.DataAccess进行数据访问。
㈧ python 设计一个名为Stock的类来表示一个公司的股票
是的,设计一个名为 Stock的类表示股票,该类包括:
1、一个名为symbol的字符串数据域表示股票代码:
2、一个名为name的字符串数据域表示股票名称;
3、一个名为previousPrice的double型数据域,用来存储股票的前一 日收盘价:
4、一个名为currentPrice的double型数据域,用来存储股票的当前价格:
5、创建一个给定特定代码和名称的股票构造方法:
6、一个名为getChangePercentO方法,返回从前的日价格到当前价格变化的百分比。
实现这个类,编写个测试程序,创建一个Stock 对象,它的股票代码是600000,股票名称是“浦发银行”,前一日收盘价是 25.5元,当前的最新价是28.6元,显示市值变化的百分比。
拓展资料
设计一个Stock类和DividendStock类
编写了一个表示拥有股票情况的Stock类,这里给出了一个简化版,去掉了对参数的合法性的检查等细节,现在需要创建一个可以发放分红的股票。红利的多少和持有股票的数量成正比,不是所有的股票都是会有分红的,所以不能直接在Stock类上直接增加这个功能,而是应该在Stock类的基础上,继承一个DividendStock类。并在这个子类中增加分红的属性和行为。
(1)一个用于记录分红的字段dividents
(2)重写父类的getProfit方法(在父类的getProfit方法的基础上还要加上分红的)
父类的getProfit+股票的总的分红(也就是字段dividents的值)
(3)增加计算分红的方法,方法中的参数表示每股的红利,可以理解为成员变量dividents赋值: 股票的总的分红=每股的红利*总股数
public void payDividend(double amountPerShare)
编写一个测试的程序,创建一个名为”Oracle”的分红股票,先后以单价32元购买200股,以单价40元购买350股。每股的分红2.8元。这支股票的当前价格是每股50元。
㈨ 问一个Python分析股票价格的问题......
你先把价格按日期排序之后变成一个list的话,比如:
price=[70,74, 73, 72, 71,75]
你可以这么办:
operations=[]
isLong=False
for i in range(len(price)-1):
if(not isLong):
if(price[i]<price[i+1]):
print "Go long on day " + str(i)
operations.append(-1);
isLong=True;
else:
operations.append(0);
else:
if(price[i]>price[i+1]):
print "Go short on day " + str(i)
operations.append(1);
isLong=False;
else:
operations.append(0);
if(isLong):
print "Go short on day " + str(len(price)-1)
operations.append(1)
else:
operations.append(0)
ProfitPerShare=0
for i in range(len(price)):
ProfitPerShare+=price[i]*operations[i]
print "Summary profit per share: "+str(ProfitPerShare)
这里面就是说,如果你是空仓,那么如果明天比今天高就买,否则明天买就比今天买更划算;如果你不空仓,那么如果明天比今天价低你就要清仓,否则明天卖就会更划算。然后用一个叫operations的list来记录你每天的操作,-1表示买,0表示没有,1表示卖,所以最后可以计算每股获得的收入price[i]*operations[i]的总和。
㈩ 如何选取过去每个月股票的市值 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)