Exemple #1
0
 def conponent_profit(self):
     close = pd.DataFrame()["close"]
     returns = ffn.get('aapl,msft,c,gs,ge',
                       start='2010-01-01').to_returns(close).dropna()
     returns.calc_mean_var_weights().as_format('.2%')
     # 1. 方法
     Tesla['Return'] = (Tesla['Close'] -
                        Tesla['Close'].shift(1)) / Tesla['Close'].shift(1)
     Tesla = Tesla.dropna()
     # 2. 方法
     GM['Return'] = ffn.to_returns(GM['Close'])
     # 3. 方法
     Ford['Return'] = Ford['Close'].pct_change(1)
     Ford = Ford.dropna()
     # 年化率
     simpleret = ffn.to_returns(close)
     # 复利化
     simpleret = ffn.to_log_returns(close)
     annue = (1 + simpleret).cumprod()[-1]**(245 / 311) - 1
     # 方差
     simpleret.std()
Exemple #2
0
zt.prDF('df_usr',df_usr)

print('\n#3.2 tq_usrDatXed')      
df2,k=ztq.tq_usrDatXed(qx,df_usr)
zt.prDF('df2',df2)
#
print('\n#3.3 ret')      
print('ret:',k,'%')

print('\n#3.4 tq_usrDatXedFill')      
df=ztq.tq_usrDatXedFill(qx,df2)
zt.prDF('df',df)

#==============
#4 ret xed
ret=ffn.to_log_returns(df[xlst]).dropna()
zt.prDF('\n#4.1,ret#1',ret)
#
ret=ffn.to_returns(df[xlst]).dropna()
zt.prDF('\n#4.2,ret#2',ret)
#
ret[xlst]=ret[xlst].astype('float')
zt.prDF('\n#4.3,ret#3',ret)

#5 ret.hist
print('\n#5 ret.hist')
ax = ret.hist(figsize=(16,8))

#6
print('\n# ret.corr()')
ret=ret.corr().as_format('.2f')
    elif period == 'month':
        return ((1 + returns).cumprod()[-1]**(12 / len(returns)) - 1)
    elif period == 'quarter':
        return ((1 + returns).cumprod()[-1]**(4 / len(returns)) - 1)
    elif period == 'year':
        return ((1 + returns).cumprod()[-1]**(1 / len(returns)) - 1)
    else:
        raise Exception("Wrong period")


import numpy as np
comporet = np.log(close / lagclose)
comporet.name = 'comporet'
comporet.head()

ffnComporet = ffn.to_log_returns(close)
ffnComporet.head()

comporet2 = np.log(close / close.shift(2))
comporet2.name = 'comporet2'
comporet2.head()

comporet2 = comporet2.dropna()
comporet2.head()

sumcomporet = comporet + comporet.shift(1)
sumcomporet.head()

import matplotlib.pyplot as plt
plt.plot(simpleret)
plt.title('台積電收盤價的單期收益率')
Exemple #4
0
    close_xianbank['close'].shift(2)) / close_xianbank['close'].shift(2)
# 同样用pct_change()更简单
# dailyreturn_xianbank_2 = close_xianbank['close'].pct_change(periods = 2)

# 利用ffn模块计算单期简单收益率
# pip install ffn
import ffn
ffn_dailyreturn_xianbank = ffn.to_returns(close_xianbank['close'])

# 计算对数收益 / 连续复利收益率
logreturn_xianbank = np.log(close_xianbank['close'] /
                            close_xianbank['close'].shift(1))
logreturn_xianbank_2 = np.log(close_xianbank['close'] /
                              close_xianbank['close'].shift(2))
# 或者
ffn_logreturn_xianbank = ffn.to_log_returns(close_xianbank['close'])

# 计算年化简单收益率,假设一年有245个交易日
annualize_dailyreturn_xianbank = (1 + dailyreturn_xianbank).cumprod()[-1]**(
    245 / 311) - 1

# 收益率曲线绘图
dailyreturn_xianbank.plot()
# 累积收益率曲线
# cumprod(), 0代表列的计算,1代表行的计算
((1 + dailyreturn_xianbank).cumprod(0) - 1).plot()

# 观察方差比较两只股票风险的大小
dailyreturn_xianbank_without_nan = close_xianbank['close'].pct_change().dropna(
)
dailyreturn_xibuzhengquan_without_nan = close_xibuzhengquan[