如何用python计算某支股票持有90天的收益率

2024-05-19 13:41

1. 如何用python计算某支股票持有90天的收益率

首先你要先获得这支股票90天的数据,可以存在一个arry中。然后计算收益率 r = (arry[89]-arry[0])/arry[0],如果要计算任意连续90天的话只要循环就可以了。许多人更喜欢去做短线,因为短线刺激,无法承受长线持股待涨的煎熬,可是假如不会做短线,则可能会导致亏得更快。做T的秘籍大家一定很想知道,今天就给大家讲讲。我准备了好处给大家,机构精选的牛股大盘点!希望大家不要错过--速领!今日机构牛股名单新鲜出炉!一、股票做T是什么意思现在市场上,A股的交易市场模式是T+1,意思就是今天买的股票,只有明天才能卖出。而股票做T,当天买入的股票在当天卖出,这就是股票进行T+0的交易操作,投资人在可交易的一天通过股票的涨幅和跌停有了股票差价,在股票大幅下跌时赶紧买入,涨得差不多之后再将买入的部分卖出,就是用这种方法赚钱的。假如说,在昨天我手里还有1000股的xx股票,市价10元/股。今天一大早发现该股居然跌到了9.5元/股,然后趁机买入了1000股。结果到了下午时,这只股票的价格就突然间大幅上涨到一股10.5元,我就急忙地以10.5/股的价格售出1000股,然后获取(10.5-9.5)×1000=1000元的差价,这就是做T。但是,不是每种股票做T都合适!正常来说,那些日内振幅空间较大的股票,它们是适合去做T的,比如说,每日能有5%的振幅空间。想知道某只股票适不适合的,点开这里去看一下吧,专业的人员会为你估计挑选出最适合你的T股票!【免费】测一测你的股票到底好不好?二、股票做T怎么操作怎么才能够把股票做到T?正常情况下分为两种方式,分别为正T和倒T。正T即先买后卖,投资手里,手里面赚有这款股票,在当天股票开盘的时候下跌到了最低点时,投资者买入1000股,等到股票变高的时候在高点,将这1000股彻底卖出,持有的总股票数还是跟以前一样,T+0的效果这样就能够达到了,又能够享有中间赚取的差价。而倒T即先卖后买。投资者通过严密计算得出,股票存在下降风险,因此在高位点先卖出手中的一部分股票,接着等股价回落后再去买进,总量仍旧有办法保持不变,然而,收益是会产生的。比方投资者,他占有该股2000股,而10元/股是当天早上的市场价,觉得持有的股票在短时间内就会有所调整,,于是卖出手中的1500股,等股票跌到一股只需要9.5元时,这只股票差不多就已经能让他们感到满意了,再买入1500股,这就赚取了(10-9.5)×1500=750元的差价。这时有人就问了,那要如何知道买入的时候正好是低点,卖出的时候正好是高点?其实有一款买卖点捕捉神器,它能够判断股票的变化趋势,绝对能让你每次都抓住重点,点开链接就能立刻领取到了:【智能AI助攻】一键获取买卖机会应答时间:2021-09-23,最新业务变化以文中链接内展示的数据为准,请点击查看

如何用python计算某支股票持有90天的收益率

2. 怎么用python panda 算股票市场收益率

1.收集数据,开盘价,收盘价,交易量
2.用pandas处理数据,处理缺失值
3.用股票收益率的公式带入
说白了,pandas只是个好用的工具,方法都是一样的,只是效率问题
有多少人工,就有多少智能

3. 收益率怎么算?

第四期:收益是怎么计算的,我余额宝的收益去哪了?

收益率怎么算?

4. 求问怎么用python求夏普比率和最大回撤

本程序为Ernest Chen所著Quantitative Trading中文版书中42页中例子,书中主要介绍了如何使用Excel和matlab来实现夏普比率与计算最大回撤和最大回撤时间的方法,python作为一种开源语言,能够实现matlab的相同功能,并能写交易程序,因此采用python实现了书中功能,作为练手
#计算夏普率与回撤与回撤时间
#第一次完成于2016/5/24
import pandas as pd
import numpy as np
import math 
import matplotlib.pyplot as plt
#读取sheet1中的内容,存放在data中,数据类型为DataFrame
data = pd.ExcelFile('example3_4.xls')
data = data.parse('Sheet2')
#计算日收益率(G3-G2)/G2
data['return']=(data['Adj Close'].shift(-1)-data['Adj Close'])/data['Adj Close']
#计算超额回报率
data['exReturn']=data['return']-0.04/252
#计算夏普比率
sharperatio=math.sqrt(252)*data['exReturn'].mean()/data['exReturn'].std()
print('该策略的夏普率为: ', sharperatio)
data['Adj Close'].plot()
#计算累积收益率cumret=(1+return).cumsum
data['cumret']=np.cumprod(1+data['exReturn'])-1
fig = plt.figure()
data['cumret'].plot()
#计算累积最大收益率,最大回撤,累积最长回撤时间
Max_cumret=np.zeros(len(data))
retracement=np.zeros(len(data))
Re_date=np.zeros(len(data))


for i in range(len(data)):
#计算累积最大收益率
if i==0:
Max_cumret[0]=data['cumret'][0]
retracement[0]=(1+Max_cumret[0])/(1+data['cumret'][0])-1
else:
#计算累积最大收益率
Max_cumret[i]=max(Max_cumret[i-1],data['cumret'][i])
#计算策略回撤
retracement[i]=float((1+Max_cumret[i])/(1+data['cumret'][i])-1)
#计算最大回撤时间
if retracement[i]==0:
Re_date[i]=0
else:
Re_date[i]=Re_date[i-1]+1
#计算最最大回撤幅度
retracement=np.nan_to_num(retracement)
Max_re=retracement.max()
#计算最大回撤时间
Max_reDate=Re_date.max()

5. 如何用python实现Markowitz投资组合优化

0.导入需要的包import pandas as pd
import numpy as np
import statsmodels.api as sm #统计运算
import scipy.stats as scs #科学计算
import matplotlib.pyplot as plt #绘图

1.选取几只感兴趣的股票
000413 东旭光电,000063 中兴通讯,002007 华兰生物,000001 平安银行,000002 万科A
并比较一下数据(2015-01-01至2015-12-31)
In[1]:
stock_set = ['000413.XSHE','000063.XSHE','002007.XSHE','000001.XSHE','000002.XSHE']
noa = len(stock_set)
df = get_price(stock_set, start_date = '2015-01-01', end_date ='2015-12-31', 'daily', ['close'])
data = df['close']
#规范化后时序数据
(data/data.ix[0]*100).plot(figsize = (8,5))
Out[1]:

2.计算不同证券的均值、协方差
每年252个交易日,用每日收益得到年化收益。计算投资资产的协方差是构建资产组合过程的核心部分。运用pandas内置方法生产协方差矩阵。
In [2]:
returns = np.log(data / data.shift(1))
returns.mean()*252
Out[2]:

000413.XSHE    0.184516
000063.XSHE    0.176790
002007.XSHE    0.309077
000001.XSHE   -0.102059
000002.XSHE    0.547441

In [3]:
returns.cov()*252
Out[3]:

3.给不同资产随机分配初始权重
由于A股不允许建立空头头寸,所有的权重系数均在0-1之间
In [4]:
weights = np.random.random(noa)
weights /= np.sum(weights)
weights
Out[4]:

array([ 0.37505798,  0.21652754,  0.31590981,  0.06087709,  0.03162758])

4.计算预期组合年化收益、组合方差和组合标准差
In [5]:
np.sum(returns.mean()*weights)*252
Out[5]:

0.21622558669017816

In [6]:
np.dot(weights.T, np.dot(returns.cov()*252,weights))
Out[6]:

0.23595133640121463

In [7]:
np.sqrt(np.dot(weights.T, np.dot(returns.cov()* 252,weights)))
Out[7]:

0.4857482232609962

5.用蒙特卡洛模拟产生大量随机组合
进行到此,我们最想知道的是给定的一个股票池(证券组合)如何找到风险和收益平衡的位置。
下面通过一次蒙特卡洛模拟,产生大量随机的权重向量,并记录随机组合的预期收益和方差。
In [8]:
port_returns = []
port_variance = []
for p in range(4000):
  weights = np.random.random(noa)
  weights /=np.sum(weights)
  port_returns.append(np.sum(returns.mean()*252*weights))
  port_variance.append(np.sqrt(np.dot(weights.T, np.dot(returns.cov()*252, weights))))
port_returns = np.array(port_returns)
port_variance = np.array(port_variance)
#无风险利率设定为4%
risk_free = 0.04
plt.figure(figsize = (8,4))
plt.scatter(port_variance, port_returns, c=(port_returns-risk_free)/port_variance, marker = 'o')
plt.grid(True)
plt.xlabel('excepted volatility')
plt.ylabel('expected return')
plt.colorbar(label = 'Sharpe ratio')
Out[8]:

6.投资组合优化1——sharpe最大
建立statistics函数来记录重要的投资组合统计数据(收益,方差和夏普比)
通过对约束最优问题的求解,得到最优解。其中约束是权重总和为1。
In [9]:
def statistics(weights):
   weights = np.array(weights)
   port_returns = np.sum(returns.mean()*weights)*252
   port_variance = np.sqrt(np.dot(weights.T, np.dot(returns.cov()*252,weights)))
   return np.array([port_returns, port_variance, port_returns/port_variance])
#最优化投资组合的推导是一个约束最优化问题
import scipy.optimize as sco
#最小化夏普指数的负值
def min_sharpe(weights):
  return -statistics(weights)[2]
#约束是所有参数(权重)的总和为1。这可以用minimize函数的约定表达如下
cons = ({'type':'eq', 'fun':lambda x: np.sum(x)-1})
#我们还将参数值(权重)限制在0和1之间。这些值以多个元组组成的一个元组形式提供给最小化函数
bnds = tuple((0,1) for x in range(noa))
#优化函数调用中忽略的唯一输入是起始参数列表(对权重的初始猜测)。我们简单的使用平均分布。
opts = sco.minimize(min_sharpe, noa*[1./noa,], method = 'SLSQP', bounds = bnds, constraints = cons)
opts
Out[9]:
status: 0
success: True
njev: 4
nfev: 28
fun: -1.1623048291871221
x: array([ -3.60840218e-16,   2.24626781e-16,   1.63619563e-01,        -2.27085639e-16,   8.36380437e-01])
message: 'Optimization terminated successfully.'
jac: array([  1.81575805e-01,   5.40387481e-01,   8.18073750e-05,         1.03137662e+00,  -1.60038471e-05,   0.00000000e+00])
nit: 4

得到的最优组合权重向量为:
In [10]:
opts['x'].round(3)
Out[10]:
array([-0.   ,  0.   ,  0.164, -0.   ,  0.836])

sharpe最大的组合3个统计数据分别为:
In [11]:
#预期收益率、预期波动率、最优夏普指数
statistics(opts['x']).round(3)
Out[11]:

array([ 0.508,  0.437,  1.162])

7.投资组合优化2——方差最小
接下来,我们通过方差最小来选出最优投资组合。
In [12]:
#但是我们定义一个函数对 方差进行最小化
def min_variance(weights):
   return statistics(weights)[1]
optv = sco.minimize(min_variance, noa*[1./noa,],method = 'SLSQP', bounds = bnds, constraints = cons)
optv
Out[12]:
status: 0
success: True
njev: 7
nfev: 50
fun: 0.38542969450547221
x: array([  1.14787640e-01,   3.28089742e-17,   2.09584008e-01,         3.53487044e-01,   3.22141307e-01])
message: 'Optimization terminated successfully.'
jac: array([ 0.3851725 ,  0.43591119,  0.3861807 ,  0.3849672 ,  0.38553924,  0.        ])
nit: 7

方差最小的最优组合权重向量及组合的统计数据分别为:
In [13]:
optv['x'].round(3)
Out[13]:
array([ 0.115,  0.   ,  0.21 ,  0.353,  0.322])

In [14]:
#得到的预期收益率、波动率和夏普指数
statistics(optv['x']).round(3)
Out[14]:
array([ 0.226,  0.385,  0.587])

8.组合的有效前沿
有效前沿有既定的目标收益率下方差最小的投资组合构成。
在最优化时采用两个约束,1.给定目标收益率,2.投资组合权重和为1。
In [15]:
def min_variance(weights):
   return statistics(weights)[1]
#在不同目标收益率水平(target_returns)循环时,最小化的一个约束条件会变化。
target_returns = np.linspace(0.0,0.5,50)
target_variance = []
for tar in target_returns:
  cons = ({'type':'eq','fun':lambda x:statistics(x)[0]-tar},{'type':'eq','fun':lambda x:np.sum(x)-1})
  res = sco.minimize(min_variance, noa*[1./noa,],method = 'SLSQP', bounds = bnds, constraints = cons)
  target_variance.append(res['fun'])
target_variance = np.array(target_variance)

下面是最优化结果的展示。
叉号:构成的曲线是有效前沿(目标收益率下最优的投资组合)
红星:sharpe最大的投资组合
黄星:方差最小的投资组合
In [16]:
plt.figure(figsize = (8,4))
#圆圈:蒙特卡洛随机产生的组合分布
plt.scatter(port_variance, port_returns, c = port_returns/port_variance,marker = 'o')
#叉号:有效前沿
plt.scatter(target_variance,target_returns, c = target_returns/target_variance, marker = 'x')
#红星:标记最高sharpe组合
plt.plot(statistics(opts['x'])[1], statistics(opts['x'])[0], 'r*', markersize = 15.0)
#黄星:标记最小方差组合
plt.plot(statistics(optv['x'])[1], statistics(optv['x'])[0], 'y*', markersize = 15.0)
plt.grid(True)
plt.xlabel('expected volatility')
plt.ylabel('expected return')
plt.colorbar(label = 'Sharpe ratio')

如何用python实现Markowitz投资组合优化

6. python怎么累加变量

t=0for i in range(1,10):    t+=1else:    print t代码中t就是累加

7. 如何计算 预算累计达成率 当日实际达成率 累计实际达成率 ?

如果是成本费用指标:预算达成率=预算/实际;如果是利润指标:预算达成率=实际/预算。
以不变价格(即基期价格)计算末期GNP,得出的增长率是实际经济增长率。在量度经济增长时,一般都采用实际经济增长率。经济增长率也称经济增长速度,它是反映一定时期经济发展水平变化程度的动态指标,也是反映一个国家经济是否具有活力的基本指标。

扩展资料:
基本成长率:指企业如果按照过去盈利能力(最近一年EBIT),运用适度的财务杠杆(债务D/权益E),其所掌握的资源(总资产=权益资本+债务资本)所能实现的企业增长率。
g = (1-股利支付率)[ROA+D/E(ROA-1年期贷款利息率)]。
其中:ROA=扣除非经常性损益后的EBIT/调整的年末总资产;股利支付率=近期分配的现金股利/近期可供分配的利润;D=年末短期借款+1年内到期长期债务+长期借款+应付债券;E=调整的年末净资产。
参考资料来源:百度百科-达成率

如何计算 预算累计达成率 当日实际达成率 累计实际达成率 ?

8. 怎么用python写excel中的收益率

先引入xlwt模块
接着,使用workbook方法,创建一个新的工作簿
添加一个sheet呀,参数overwrite就是说可不可以重复写入值,就是当单元格已经非空,你还要写入
接着,我们写入一个英文,没问题
但是要写入中文,fuck了,讨厌红色字体
我们来编码一下吧,ok,就是需要编码以后才能写入
最后别忘记保存啊,不然你是竹篮打水一场空
最后的效果图啦。。。。。