例題 – 錢如故 http://www.weightcontrolpatches.com 最有價值的基金投資和股票投資理財?shù)呢斀?jīng)網(wǎng)站! Tue, 11 Oct 2022 10:46:50 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.4.16 http://www.weightcontrolpatches.com/wp-content/uploads/2021/03/2021030407115910.jpg 例題 – 錢如故 http://www.weightcontrolpatches.com 32 32 平均收益率計算例題及答案,平均收益率計算例題及答案解析? http://www.weightcontrolpatches.com/31038.html http://www.weightcontrolpatches.com/31038.html#respond Tue, 08 Nov 2022 03:56:27 +0000 http://www.weightcontrolpatches.com/?p=31038 平均收益率計算例題及答案,平均收益率計算例題及答案解析?

本周三上課講到了投資組合收益率的計算,課本上的例題把收益率計算涉及到的數(shù)據(jù)都給全了,同學(xué)們做了一個帶概率的加權(quán)平均收益率計算。從課堂反應(yīng)來看,似乎同學(xué)們都能明白例題的計算過程;從課堂提問情況來看,似乎同學(xué)們又沒明白計算過程背后的數(shù)據(jù)信息。我在課后便針對收益率問題,做了一個梳理,查閱了好幾個教材,發(fā)現(xiàn)該主題的例題幾乎如出一轍,不同的僅為參數(shù)的調(diào)整。

為了換個思路來學(xué)習(xí)這個知識點(diǎn),算是自我再學(xué)習(xí),也是算我給學(xué)生們的答疑解惑。因剛好處在一周的因疫情居家隔離期間,消磨時間,我設(shè)計了一個案例:從中國股市中任意選取4支股票(實(shí)際上,我編寫的python程序可以處理N多支股票的組合),用1年的日交易收盤價(可以是N年的數(shù)據(jù))來計算確定股票投資組合的收益率及風(fēng)險。

介紹該案例的目的是讓我的學(xué)生們懂得實(shí)務(wù)中的收益率是怎么計算出來的,風(fēng)險是怎么度量的,數(shù)據(jù)是如何取得的,數(shù)據(jù)是如何處理的……,最終,這么大、這么復(fù)雜的數(shù)據(jù)是怎么通過python程序計算的……

本文先介紹收益率,下一篇文章將介紹風(fēng)險。

時間無限,生命有限,強(qiáng)烈建議您趕緊使用計算機(jī)程序來幫您進(jìn)行財務(wù)計算和推演,手算真的不足以支撐您的欲壑!

正文起:

對普通投資者來說,資產(chǎn)收益率體現(xiàn)了該資產(chǎn)的投資機(jī)會,并且與其投資規(guī)模無關(guān);資產(chǎn)收益率序列比價格序列有更好的統(tǒng)計性質(zhì)。為認(rèn)知清楚收益率的本質(zhì),有必要先搞清下面幾個概念。

一、單項(xiàng)資產(chǎn)收益率

1、單期簡單收益率

如果從第t-1 天到第t天(一個周期)持有某項(xiàng)資產(chǎn),則該項(xiàng)資產(chǎn)的簡單收益率為:

則:

2、多期簡單收益率

如果從第t-k天到第t天,在這k天持有某項(xiàng)資產(chǎn)(k個周期),則該項(xiàng)資產(chǎn)的k期簡單收益率為:

則:

又:

即:

故:

即:單項(xiàng)資產(chǎn)持有k期的簡單收益率等于它所包含的k個簡單收益率的乘積減去1。

3、持有K期的年化收益率為:

二、投資組合收益率

投資組合收益率是投資組合中各單項(xiàng)資產(chǎn)收益率的加權(quán)平均數(shù)。權(quán)重為投資金額的占比。

所以:

即:

三、計算程序

# -*- coding: utf-8 -*-"""Created on Thu Sep 29 17:08:53 2022@author: zgrweixin ID: """import warningsimport pandas as pdimport numpy as npimport tushare as tsimport matplotlib.pyplot as pltpro=ts.pro_api()# 股票投資組合:盛和資源,北方稀土,廣晟有色,五礦稀土 tickers='600392.SH, 600111.SH, 600259.SH, 000831.SZ' # 投資權(quán)重 weight=pd.DataFrame([{'000831.SZ':0.3,'600111.SH':0.3,'600259.SH':0.15,'600392.SH':0.25}]) # 1年的交易數(shù)據(jù) data=pro.daily(ts_code=tickers , start_date='20200101', end_date='20201231')# 查看是否有空值:沒有空值data.info()# 對收盤價進(jìn)行透視close_pivot=data.pivot_table(values="close",index='trade_date',columns='ts_code')close_pivot.info()# 對返回值進(jìn)行檢查def _check_returns(returns):# Check NaNs excluding leading NaNsif np.any(np.isnan(returns.mask(returns.ffill().isnull(), 0))): warnings.warn("Some returns are NaN. Please check your price data.", UserWarning )if np.any(np.isinf(returns)): warnings.warn("Some returns are infinite. Please check your price data.", UserWarning )# 根據(jù)價格計算日收率def returns_from_prices(prices, log_returns=False):""" Calculate the returns given prices. :param prices: adjusted (daily) closing prices of the asset, each row is a date and each column is a ticker/id. :type prices: pd.DataFrame :param log_returns: whether to compute using log returns :type log_returns: bool, defaults to False :return: (daily) returns :rtype: pd.DataFrame """if log_returns: returns=np.log(1 + prices.pct_change()).dropna(how="all")else: returns=prices.pct_change().dropna(how="all")return returns# 根據(jù)價格計算各單項(xiàng)資產(chǎn)年收益率def mean_historical_return( prices, returns_data=False, compounding=True, frequency=252, log_returns=False):""" Calculate annualised mean (daily) historical return from input (daily) asset prices. Use ``compounding`` to toggle between the default geometric mean (CAGR) and the arithmetic mean. :param prices: adjusted closing prices of the asset, each row is a date and each column is a ticker/id. :type prices: pd.DataFrame :param returns_data: if true, the first argument is returns instead of prices. These **should not** be log returns. :type returns_data: bool, defaults to False. :param compounding: computes geometric mean returns if True, arithmetic otherwise, optional. :type compounding: bool, defaults to True :param frequency: number of time periods in a year, defaults to 252 (the number of trading days in a year) :type frequency: int, optional :param log_returns: whether to compute using log returns :type log_returns: bool, defaults to False :return: annualised mean (daily) return for each asset :rtype: pd.Series """if not isinstance(prices, pd.DataFrame): warnings.warn("prices are not in a dataframe", RuntimeWarning) prices=pd.DataFrame(prices)if returns_data: returns=priceselse: returns=returns_from_prices(prices, log_returns) _check_returns(returns)if compounding:return (1 + returns).prod() ** (frequency / returns.count()) - 1else:return returns.mean() * frequency# 返回單項(xiàng)資產(chǎn)日收益率(根據(jù)收盤價計算)returns_assets_daily=returns_from_prices(close_pivot, log_returns=False)# 日收益率曲線(日收益可視化)returns_assets_daily.plot(subplots=True,figsize=(8,6))# 日收益率直方圖returns_assets_daily.hist(bins=20)# 日收益率極差、四分位差、方差、標(biāo)準(zhǔn)差和離散系數(shù)ret_des=returns_assets_daily.describe().Tret_des['var_coef']=ret_des['std']/ret_des['mean']ret_des=ret_des.T# 計算投資組合的收益率def _objective_value(w, obj):""" Helper method to return either the value of the objective function or the objective function as a cvxpy object depending on whether w is a cvxpy variable or np array. :param w: weights :type w: np.ndarray OR cp.Variable :param obj: objective function expression :type obj: cp.Expression :return: value of the objective function OR objective function expression :rtype: float OR cp.Expression """if isinstance(w, np.ndarray):if np.isscalar(obj):return objelif np.isscalar(obj.value):return obj.valueelse:return obj.value.item()else:return objdef portfolio_return(w, expected_returns, negative=True):""" Calculate the (negative) mean return of a portfolio :param w: asset weights in the portfolio :type w: np.ndarray OR cp.Variable :param expected_returns: expected return of each asset :type expected_returns: np.ndarray :param negative: whether quantity should be made negative (so we can minimise) :type negative: boolean :return: negative mean return :rtype: float """ sign=1 if negative else -1 mu=w @ expected_returnsreturn _objective_value(w, sign * mu)# 返回單項(xiàng)資產(chǎn)年收益率(根據(jù)收盤價計算)returns_assets=mean_historical_return(close_pivot)# 投資組合的年收益率returns_portfolio=portfolio_return(weight,returns_assets)returns_assets['portfolio']=float(np.around(returns_portfolio.values, 6))# 收益率可視化returns_assets.plot(kind='bar',rot=45)plt.title('returns of assets and portfolio')plt.xlabel('tscode')plt.ylabel('annual returns')

結(jié)果:

【僅供參考】

授人玫瑰,手留余香。請關(guān)注本公眾號!歡迎轉(zhuǎn)發(fā)!鼓勵分享!

]]>
http://www.weightcontrolpatches.com/31038.html/feed 0
贖回收益率的計算題,贖回收益率計算例題? http://www.weightcontrolpatches.com/30384.html http://www.weightcontrolpatches.com/30384.html#respond Fri, 04 Nov 2022 18:11:27 +0000 http://www.weightcontrolpatches.com/?p=30384 贖回收益率計算題,贖回收益率計算例題?

7月18日公務(wù)員考試每日一練:數(shù)量關(guān)系(題本)

1、甲、乙兩個學(xué)校的在校生人數(shù)之比為5:3,甲學(xué)校如果轉(zhuǎn)入30名學(xué)生,再將85名學(xué)生轉(zhuǎn)到乙學(xué)校,則兩個學(xué)校在校生人數(shù)相同。則此時乙學(xué)校學(xué)生人數(shù)在以下哪個范圍內(nèi)?

A、不到200人

B、在200~240人之間

C、在241~280人之間

D、超過280人

2、以下為4款銀行理財產(chǎn)品:

注:年化收益率按365天計算。產(chǎn)品未到投資期限贖回,不享受收益。

如果希望在1年內(nèi)投資10萬元資金,那么投資哪款產(chǎn)品能獲得最大收益?

A、1號 B、2號 C、3號 D、4號

3、某家電維修公司的職工每人每天最多完成5次修理任務(wù)。維修工小張上個月工作了20天,總計完成修理任務(wù)98次。則他上個月每天完成的修理任務(wù)次數(shù)有多少種不同的可能?

A、190 B、210 C、380 D、400

4、某商品成本為200元,售價為292元,公司根據(jù)市場情況調(diào)整了銷售方案,將售價調(diào)整為268元,預(yù)計日銷量將上漲15%。現(xiàn)欲通過改進(jìn)生產(chǎn)線降低成本,以保持降價前的單日利潤,則單件產(chǎn)品的生產(chǎn)成本至少需要降低

A、4% B、5% C、6% D、8%

5、一輛汽車在高速公路上以60公里 小時的速度勻速行駛,此時司機(jī)開始以固定的加速度進(jìn)行加速,加速后50秒內(nèi),汽車行駛了1公里。則汽車從開始加速,到加速至高速公路的速度上限120公里 小時需要多長時間?

A、100秒 B、125秒 C、150秒 D、180秒

7月18日公務(wù)員考試每日一練:數(shù)量關(guān)系(解析)

]]>
http://www.weightcontrolpatches.com/30384.html/feed 0