<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 基于期權定價的分級基金交易策略 > 來源:https://uqer.io/community/share/548a6af2f9f06c31c3950ca7 版本:1.0 作者:李丞 聯系:cheng.li@datayes.com ## 1. 分級基金中的期權結構 分級基金是中國金融市場化下創新的產物,多數是以AB端分級,A端獲取相對保守收益,B端獲取杠桿收益的結構。通俗的講,在分級基金結構中,大多數情況下,B端優先承受市場風險損失,換取A端“借”給它錢投資的融資優勢。 現在市場上大多數的指數型分級基金采取的收益分配模式為:A端獲取固定的約定收益率,多半為一年期定存+x%;B端獲取剩余的母基金凈資產。這樣的分級基金可以看做A端是一個固定利率債券,B端是一個看漲期權,其中的期權賣方恰恰是A端。在這里我們不會詳細探討這一類型的結構,關于這一類型分級基金的期權分析可以參考[1]。 這里我們會看一個有趣的產品,在這個產品中,A、B端都是期權形式的[1]。這個產品就是國投瑞銀瑞和滬深300分級證券投資基金。在它的招募說明書中,有這樣的表述: > (年閥值為10%)在任一運作周年內,如果瑞和 300 份額的基金份額凈值大于 1.000 元,則在每份瑞和小康份額與每份瑞和遠見份額各自獲得 1.000 元凈值的基礎上,本基金將以年閥值為基準,將瑞和 300 份額的基金份額凈值超出 1.000 元的部分劃分成年閥值以內和年閥值以外的兩個部分,與此相對應,對于每一對瑞和小康份額與瑞和遠見份額的份額組合所包含的年閥值以內的部分,由一份瑞和小康份額與一份瑞和遠見份額按 8∶2 的比例分成;對于每一對瑞和小康份額與瑞和遠見份額的份額組合所包含的年閥值以外的部分,由一份瑞和小康份額與一份瑞和遠見份額按 2∶8 的比例分成。 在我們下面的分析中你可以看到,這個是典型的期權結構,并且可以拆分成簡單的看漲看跌期權的和。 ## 2. 瑞和300期權結構分析 收益的結構最容易以一張圖的形式表示出來: ```py from matplotlib import pyplot def AReturn(base): if base < 1.0: return base elif base >=1 and base < 1.1: return 1.6 * base - 0.6 else: return 0.4 * base + 0.72 def BReturn(base): if base < 1.0: return base elif base >=1 and base < 1.1: return 0.4 * base + 0.6 else: return 1.6* base - 0.72 xspace = np.linspace(0.95, 1.3, 20) aSeries = [AReturn(x) for x in xspace] bSeries = [BReturn(x) for x in xspace] pyplot.figure(figsize=(12,8)) pyplot.plot(xspace, xspace, '-k') pyplot.plot(xspace, aSeries, 'xk') pyplot.plot(xspace, bSeries, '--k') pyplot.xlim((0.95,1.3)) pyplot.legend(['NAV', 'A', 'B'], loc = 'best', fontsize = 16) <matplotlib.legend.Legend at 0x4ad7390> ``` ![](https://box.kancloud.cn/2016-07-30_579cbdb60e728.png) 收益的描述也可以用下式描述,其中 NAV 為母基金凈值: ![](https://box.kancloud.cn/2016-07-30_579cbdb621930.jpg) B的收益也有類似的式子: ![](https://box.kancloud.cn/2016-07-30_579cbdb635c78.jpg) 實際上我們可以把它寫成更明顯的形式,展示它們的內在期權實質: ![](https://box.kancloud.cn/2016-07-30_579cbdb64943d.jpg) 可以看到,這兩個子基金的價值都是三個期權的組合,只是權重不同: + 行權價為1.0的看跌期權 + 行權價為1.0的看漲期權 + 行權價為1.1的看漲期權 對于這些期權,我們可以假設標的即為母基金凈值,期限為當前日期到下一個折算日(即為每年的10月12日,遇到節假日的話,向前調整至上一營業日),無風險利率使用3個月Shibor做簡單的近似: ```py # 導入需要的模塊 from CAL.PyCAL import * # 讀入外部行情數據 data = pd.read_excel(r'gtry_dat_300.xlsx','Sheet1') riskFree = data['Shibor 3M'] / 100.0 maturity = data['Maturity'] spot = data['161207.OFCN'] ATarget = data['150008.XSHE'] BTarget = data['150009.XSHE'] def AOptionPrice(vol, riskFree, maturity, spot): price1 = BSMPrice(-1, 1.0, spot, riskFree, 0.0, vol[0], maturity, rawOutput = True) price2 = BSMPrice(1, 1.0, spot, riskFree, 0.0, vol[0], maturity, rawOutput = True) price3 = BSMPrice(1, 1.1, spot, riskFree, 0.0, vol[0], maturity, rawOutput = True) return 1.0 - price1[0] + price2[0] * 1.6 - price3[0] * 1.2 def BOptionPrice(vol, riskFree, maturity, spot): price1 = BSMPrice(-1, 1.0, spot, riskFree, 0.0, vol[0], maturity, rawOutput = True) price2 = BSMPrice(1, 1.0, spot, riskFree, 0.0, vol[0], maturity, rawOutput = True) price3 = BSMPrice(1, 1.1, spot, riskFree, 0.0, vol[0], maturity, rawOutput = True) return 1.0 - price1[0] + price2[0] * 0.4 + price3[0] * 1.2 aTheoreticalPrice = AOptionPrice([0.15], riskFree, maturity, spot) bTheoreticalPrice = BOptionPrice([0.15], riskFree, maturity, spot) ``` 我們分別看一下,AB端基金理論價格和實際收盤價之間的關系(上面的計算中假設波動率為15%):可以看到,基本上理論價格和真實價格的變動是完全通向的,但是存在價差,A長期折價,B長期溢價。這個價差隨著到期折算日的接近,收斂至0。這個是與期權的性質是完全一致的。 ```py data['A (Theoretical)'] = aTheoreticalPrice data['B (Theoretical)'] = bTheoreticalPrice pyplot.figure(figsize = (16,10)) ax1 = pyplot.subplot('211') data.plot('endDate', ['150008.XSHE','A (Theoretical)'], style = ['-.k', '-k']) ax1.legend(['A', 'A (Theoretical)'], loc = 'best') ax2 = pyplot.subplot('212') data.plot('endDate', ['150009.XSHE','B (Theoretical)'], style = ['-.k', '-k']) ax2.legend(['B', 'B (Theoretical)'], loc = 'best') <matplotlib.legend.Legend at 0x5c64210> ``` ![](https://box.kancloud.cn/2016-07-30_579cbdb65eab4.png) ## 3. 瑞和300的期權投資策略 根據上面的分析,似乎讀者可以得到這樣的一個印象:A端長期比較便宜,應該直接持有A端,真的是這樣嗎?這里面實際上有以下的問題: + A端由于收益算法的原因,屬于類固定收益產品,并且它在標的價格高企時,凸性為負; + B端屬于杠桿類型,在標的股價高企時,凸性為正; + 市場可能會對凸性的不同,對于AB端分別進行折溢價調整; + 15%是一個魔幻數(Magic Number),真實市場波動率水平顯然不應該是一個常值。 這里我們將涉及一個策略,試著解釋最后一個問題。期權有一種估計期權的方法,稱為“隱含波動率”。我們可以把類似的想法引入我們這個產品當中,每天收盤的時候,我們可以觀察到A端和B端的價格(或者說兩個期權組合的價格)。這時候,可以使用優化的方法,找到一個波動率水平使得理論價格在某種標準下與實際價格差異最小。我們把這個波動率水平稱之為瑞和300的“隱含波動率”。 有了這個隱含波動率水平,我們可以再計算理論價格,這時候計算而得的理論價格,我們可以認為是“真實”市場估計下的理論期權價值。用這個價格作為評估的標準,比較A端與B端那個更加便宜,從而決定購買哪個產品。下面的策略中,我們即使用上面介紹的辦法,每天調倉,根據估價的高低,分別購買A端(B端),同時賣出B端(A端)。這個策略只在二級市場中進行交易: ```py def processDate(record): riskFree = record['Shibor 3M'] / 100.0 maturity = record['Maturity'] spot = record['161207.OFCN'] ATarget = record['150008.XSHE'] BTarget = record['150009.XSHE'] def errorFunction(vol): price1 = AOptionPrice(vol, riskFree, maturity, spot) price2 = BOptionPrice(vol, riskFree, maturity, spot) return (price1 - ATarget)**2 + (price2 - BTarget)**2 out, fx, its, imode, smode = optimize.fmin_slsqp(errorFunction, [0.15], bounds = [(0.01, 0.25)], epsilon = 1e-6, iter = 10000, disp = False, full_output = True, acc = 1e-16) price1 = AOptionPrice(out, riskFree, maturity, spot) price2 = BOptionPrice(out, riskFree, maturity, spot) return price1 - ATarget, price2 - BTarget ``` ```py import datetime as dt from scipy import optimize callDate = [dt.datetime(2010,10,12), dt.datetime(2011,10,12), dt.datetime(2012,10,11), dt.datetime(2013,10,10), dt.datetime(2014,10,10)] class deque: def __init__(self, maxlen): self.maxlen = maxlen self.cont = [] def append(self,vec): self.cont.append(vec) if len(self.cont)>100: self.cont = self.cont[len(self.cont) - 100:] def __item__(self, i): return self.cont[i] def average(self): sum = 0.0 for i in xrange(len(self.cont)): sum += self.cont[i] return sum / float(len(self.cont)) class Account: def __init__(self, cash): self.aAmount = 0 self.bAmount = 0 self.cash = cash def order(self, amount, fundType, price): if fundType.upper() == 'A': self.aAmount += amount self.cash -= amount * price elif fundType.upper() == 'B': self.bAmount += amount self.cash -= amount * price def currentValue(self, aQuote, bQuote): return self.aAmount * aQuote + self.bAmount * bQuote + self.cash def BackTesting(data, window = 5, startAmount = 100000, tradeVol = 2000): account = Account(startAmount) aWindow = deque(maxlen = window) bWindow = deque(maxlen = window) performance = [startAmount] aVol = [0] bVol = [0] cash = [startAmount] for i in xrange(1, len(data)): previousDay = data.loc[i-1] aUnderEstimated, bUnderEstimated = processDate(previousDay) aWindow.append(aUnderEstimated) bWindow.append(bUnderEstimated) aAverage = aWindow.average() bAverage = bWindow.average() today = data.loc[i] aPrice = today['150008.XSHE'] bPrice = today['150009.XSHE'] if i >= window: # 如果分級A端相對于B端更便宜 if aUnderEstimated - aAverage > bUnderEstimated - bAverage: if account.cash > tradeVol: account.order(tradeVol, 'A', aPrice) if account.bAmount >0: account.order(-tradeVol, 'B', bPrice) # 如果分級B端相對于A端更便宜 elif aUnderEstimated - aAverage < bUnderEstimated - bAverage: if account.cash > tradeVol: account.order(tradeVol, 'B', bPrice) if account.aAmount >0: account.order(-tradeVol, 'A', aPrice) for calDate in callDate: if today['endDate'] == calDate: account.order(-account.aAmount, 'A', aPrice) account.order(-account.bAmount, 'B', bPrice) performance.append(account.currentValue(aPrice, bPrice)) aVol.append(account.aAmount) bVol.append(account.bAmount) cash.append(account.cash) originalReturn = list(data['161207.OFCN'].values) start = originalReturn[0] originalReturn[0] = 1.0 dates = data['endDate'] scalar = 1.0 count = 0 for i in xrange(1, len(originalReturn)): if count < len(callDate) and dates[i-1] == callDate[count]: start = originalReturn[i] originalReturn[i] = originalReturn[i-1] count += 1 else: scalar = originalReturn[i] / start start = originalReturn[i] originalReturn[i] = originalReturn[i-1] * scalar scalar = float(performance[0]) performance = [p / scalar for p in performance] return pd.DataFrame({'Performance':performance, '150008.XSHE': aVol, '150009.XSHE': bVol, 'Cash': cash, '161207.OFCN': data['161207.OFCN'].values, 'Benchmark Return':originalReturn } ,index = data.endDate) ``` ```py bt = BackTesting(data, tradeVol = 20000) bt.plot(y = ['Benchmark Return', 'Performance'], figsize = (16,8), style = ['-k', '-.k']) pyplot.legend( ['HS300', 'Strategy'], loc = 'best') <matplotlib.legend.Legend at 0x4a70a10> ``` ![](https://box.kancloud.cn/2016-07-30_579cbdb68045d.png) 由上圖可知,這樣的策略是比較典型的指數增強型策略。本質上瑞和300母基金是滬深300指數的復制,該策略是捕捉A端、B端中的阿爾法因素,增強指數的表現。 ## 4. 我們是否能夠比“猴子”做的更好? 作為和該策略的比較,我們可以使用一個隨機投資的做法。讓我們看看,和“猴子”(Monky Random Choice Strategy)比,我們是否能夠做的更好? ```py def BackTesting2(data, window = 5, startAmount = 100000, tradeVol = 2000): account = Account(startAmount) performance = [startAmount] aVol = [0] bVol = [0] cash = [startAmount] s = MersenneTwister19937UniformRsg() for i in xrange(1, len(data)): previousDay = data.loc[i-1] aUnderEstimated, bUnderEstimated = processDate(previousDay) today = data.loc[i] aPrice = today['150008.XSHE'] bPrice = today['150009.XSHE'] if i >= window: # 如果隨機數>0.5 if s.nextSequence()[0] > 0.5: if account.cash > tradeVol: account.order(tradeVol, 'A', aPrice) if account.bAmount >0: account.order(-tradeVol, 'B', bPrice) # 如果隨機數<0.5 elif s.nextSequence()[0] < 0.5: if account.cash > tradeVol: account.order(tradeVol, 'B', bPrice) if account.aAmount >0: account.order(-tradeVol, 'A', aPrice) for calDate in callDate: if today['endDate'] == calDate: account.order(-account.aAmount, 'A', aPrice) account.order(-account.bAmount, 'B', bPrice) performance.append(account.currentValue(aPrice, bPrice)) aVol.append(account.aAmount) bVol.append(account.bAmount) cash.append(account.cash) originalReturn = list(data['161207.OFCN'].values) start = originalReturn[0] originalReturn[0] = 1.0 dates = data['endDate'] scalar = 1.0 count = 0 for i in xrange(1, len(originalReturn)): if count < len(callDate) and dates[i-1] == callDate[count]: start = originalReturn[i] originalReturn[i] = originalReturn[i-1] count += 1 else: scalar = originalReturn[i] / start start = originalReturn[i] originalReturn[i] = originalReturn[i-1] * scalar scalar = float(performance[0]) performance = [p / scalar for p in performance] return pd.DataFrame({'Performance':performance, '150008.XSHE': aVol, '150009.XSHE': bVol, 'Cash': cash, '161207.OFCN': data['161207.OFCN'].values, 'Benchmark Return':originalReturn } ,index = data.endDate) ``` ```py bt1 = BackTesting(data, tradeVol = 20000) bt2 = BackTesting2(data, tradeVol = 20000) bt1['Monky'] = bt2['Performance'] bt1.plot(y = ['Benchmark Return', 'Monky', 'Performance'], figsize = (16,8), style = ['-k', '--k', '-.k']) pyplot.legend( ['HS300', 'Monky', 'Strategy'], loc = 'best') <matplotlib.legend.Legend at 0x5c979d0> ``` ![](https://box.kancloud.cn/2016-07-30_579cbdb69bfb8.png) 結果令人滿意,我們的期權投資比隨機選擇的結果好的多。我們看到如果隨機投資,“猴子”式的選擇并不能顯著的擊敗標的母基金。但是我們的期權投資策略還是可以保持的持續性的跑贏指數以及隨機選擇。 ## 5. 歷史波動率作為輸入參數 這里我們給了一個使用歷史波動率計算折溢價水平,與之前使用的隱含波動率方法進行比較。這里使用的歷史波動率水平是20天年化收益標準差。結果上,我們無法顯著區別這兩種波動率算法在表現上面的區別。但是他們都可以顯著的擊敗標的母基金。 ```py def processDate2(record): riskFree = record['Shibor 3M'] / 100.0 maturity = record['Maturity'] spot = record['161207.OFCN'] ATarget = record['150008.XSHE'] BTarget = record['150009.XSHE'] volatility = record['volatility'] vol = [volatility] price1 = AOptionPrice(vol, riskFree, maturity, spot) price2 = BOptionPrice(vol, riskFree, maturity, spot) return price1 - ATarget, price2 - BTarget def BackTesting3(data, window = 5, startAmount = 100000, tradeVol = 2000): account = Account(startAmount) aWindow = deque(maxlen = window) bWindow = deque(maxlen = window) performance = [startAmount] aVol = [0] bVol = [0] cash = [startAmount] for i in xrange(1, len(data)): previousDay = data.loc[i-1] aUnderEstimated, bUnderEstimated = processDate2(previousDay) aWindow.append(aUnderEstimated) bWindow.append(bUnderEstimated) aAverage = aWindow.average() bAverage = bWindow.average() today = data.loc[i] aPrice = today['150008.XSHE'] bPrice = today['150009.XSHE'] if i >= window: # 如果分級A端相對于B端更便宜 if aUnderEstimated - aAverage > bUnderEstimated - bAverage: if account.cash > tradeVol: account.order(tradeVol, 'A', aPrice) if account.bAmount >0: account.order(-tradeVol, 'B', bPrice) # 如果分級B端相對于A端更便宜 elif aUnderEstimated - aAverage < bUnderEstimated - bAverage: if account.cash > tradeVol: account.order(tradeVol, 'B', bPrice) if account.aAmount >0: account.order(-tradeVol, 'A', aPrice) for calDate in callDate: if today['endDate'] == calDate: account.order(-account.aAmount, 'A', aPrice) account.order(-account.bAmount, 'B', bPrice) performance.append(account.currentValue(aPrice, bPrice)) aVol.append(account.aAmount) bVol.append(account.bAmount) cash.append(account.cash) originalReturn = list(data['161207.OFCN'].values) start = originalReturn[0] originalReturn[0] = 1.0 dates = data['endDate'] scalar = 1.0 count = 0 for i in xrange(1, len(originalReturn)): if count < len(callDate) and dates[i-1] == callDate[count]: start = originalReturn[i] originalReturn[i] = originalReturn[i-1] count += 1 else: scalar = originalReturn[i] / start start = originalReturn[i] originalReturn[i] = originalReturn[i-1] * scalar scalar = float(performance[0]) performance = [p / scalar for p in performance] return pd.DataFrame({'Performance':performance, '150008.XSHE': aVol, '150009.XSHE': bVol, 'Cash': cash, '161207.OFCN': data['161207.OFCN'].values, 'Benchmark Return':originalReturn } ,index = data.endDate) ``` ```py bt3 = BackTesting3(data, tradeVol = 20000) bt1['Historical (Vol)'] = bt3['Performance'] bt1.plot(y = ['Benchmark Return', 'Historical (Vol)', 'Performance'], figsize = (16,8), style = ['-k', '--k', '-.k']) pyplot.legend( ['HS300', 'Historical Vol', 'Implied Vol'], loc = 'best') <matplotlib.legend.Legend at 0x6073850> ``` ![](https://box.kancloud.cn/2016-07-30_579cbdb6bab8d.png) ## 6. 風險收益分析 下面我們按照每個自然年評估策略的績效(注意,這里2009年的時間比較短,所以并沒有對它進行評估)。可以看到在5個自然年中,有兩年策略的收益率為負的;但是與之相對的,相對于母基金的基準收益,超額收益始終為正的。最高的超額收益發生在2013年為18.06%,最低為為2012年6.54%。 ```py value = bt1[['Performance', 'Benchmark Return']] value['endDate'] = value.index.values returnRes = [0] tmp = np.log(value['Performance'][1:].values/ value['Performance'][:-1].values) returnRes.extend(tmp) value['Per. Return'] = returnRes returnRes = [0] tmp = np.log(value['Benchmark Return'][1:].values/ value['Benchmark Return'][:-1].values) returnRes.extend(tmp) value['Benchmark Return'] = returnRes year2010 = value[(value['endDate'] > Date(2010,1,1).toTimestamp()) & (value['endDate'] <= Date(2010,12,31).toTimestamp())] year2011 = value[(value['endDate'] > Date(2011,1,1).toTimestamp()) & (value['endDate'] <= Date(2011,12,31).toTimestamp())] year2012 = value[(value['endDate'] > Date(2012,1,1).toTimestamp()) & (value['endDate'] <= Date(2012,12,31).toTimestamp())] year2013 = value[(value['endDate'] > Date(2013,1,1).toTimestamp()) & (value['endDate'] <= Date(2013,12,31).toTimestamp())] year2014 = value[(value['endDate'] > Date(2014,1,1).toTimestamp()) & (value['endDate'] <= Date(2014,12,31).toTimestamp())] days = 252 def perRes(yearRes): yearRes['Excess Return'] = yearRes['Per. Return'] - yearRes['Benchmark Return'] mean = yearRes.mean() * days * 100 std = yearRes.std() * np.sqrt(days) * 100 return mean['Per. Return'], mean['Excess Return'], std['Per. Return'] res2010 = perRes(year2010) res2011 = perRes(year2011) res2012 = perRes(year2012) res2013 = perRes(year2013) res2014 = perRes(year2014) perRet = [] exceRet= [] perStd = [] for res in [res2010, res2011, res2012, res2013, res2014]: perRet.append(res[0]) exceRet.append(res[1]) perStd.append(res[2]) resTable = pd.DataFrame({'Strategy (Return %)':perRet, 'Excess (Return %)':exceRet, 'Strategy (Volatility %)':perStd }, index = ['2010', '2011', '2012', '2013', '2014']) resTable.index.name = 'Year' resTable.plot(kind = 'bar', figsize = (14,8), legend = True) <matplotlib.axes.AxesSubplot at 0x97a3050> ``` ![](https://box.kancloud.cn/2016-07-30_579cbdb6dbc3b.png) ```py resTable ``` | | Excess (Return %) | Strategy (Return %) | Strategy (Volatility %) | | --- | --- | | Year | | | | | 2010 | 8.481646 | -6.327046 | 19.742343 | | 2011 | 12.891790 | -16.194009 | 17.954727 | | 2012 | 6.545174 | 14.197018 | 17.604919 | | 2013 | 18.062832 | 8.099492 | 18.518870 | | 2014 | 16.344165 | 49.163501 | 19.841940 | ``` 5 rows × 3 columns ``` ## 7. 瑞和300期權投資策略的優勢與缺陷 優勢: + 非常容易在實際中操作,只在二級市場買賣,不涉及申購贖回等復雜操作; + 不需要配對交易,可以放大交易量 + 指數增強,正確捕獲阿爾法; + 策略參數少,只有一個時間窗口參數,很大程度上規避了過擬合問題。 劣勢: + 未使用對沖,無法降低原始指數的回撤以及波動率; + 放棄了在到點折算日套利的機會。 + 以上的缺陷都是未來我們需要進一步研究的地方。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看