精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

研報復現:技術分析算法、框架與實戰

發布于 2025-8-22 07:34
瀏覽
0收藏

《破解“看圖”之謎:技術分析算法、框架與實戰》是中泰證券于2021年8月發布的一份金融工程報告,旨在以科學方法系統化、自動化地識別技術圖形,并驗證其在實際市場中的有效性。

研報簡讀

一、研究背景與意義

技術分析長期被視為主觀性強、缺乏統一標準的分析方法。報告指出,其不被廣泛接受的主要原因有二:一是缺乏固定算法,導致不同分析者對同一圖表解讀不一;二是多數文獻未系統論證技術分析適用的市場環境與實踐效果。為此,報告借鑒Andrew W Lo等學者在2000年提出的方法,構建了一套科學、可重復的技術分析框架。

二、算法原理:核回歸與極值點識別

報告采用核回歸(Nadaraya-Watson估計) 對價格序列進行平滑處理,以消除噪聲并準確提取極值點。通過高斯核函數和交叉驗證法選擇最優帶寬,確保平滑效果既不過度也不不足。極值點通過導數符號變化識別,進而根據其排列與高低關系定義各類技術形態(如頭肩底、雙頂、三角形等)。

三、形態定義與識別

報告系統定義了幾類常見技術形態(頭肩頂/底、發散形態、三角形、矩形、雙頂/底),并通過五個連續極值點的相對位置和幅度關系進行數學刻畫。識別過程包括:平滑價格序列 → 求導找極值 → 按定義匹配形態。

四、實證分析:頭肩底形態的有效性

報告重點驗證了“頭肩底(IHS)”形態在行業指數和寬基指數上的表現(2010–2021年數據),發現:

  • 在指數層面,多數行業在形態出現后10日內獲得正收益,勝率普遍超過50%,部分行業(如化工、汽車、電氣設備)勝率可達70%以上。
  • 結合均線條件(如MA5>MA20) 可進一步提升勝率。
  • 在個股層面,頭肩底形態表現不穩定,勝率分布接近隨機(以50%為中位數),提示技術分析在個股擇時中需謹慎使用。

五、結論與風險提示

技術分析在指數擇時中具有顯著價值,尤其在中期(10日)展望中表現穩健;但在個股層面效果有限,需結合其他分析方法。報告強調,所有結論基于歷史數據統計,存在滯后性、模型局限性和市場環境變化風險,投資者應謹慎參考。

總結

該報告通過算法化、系統化的方法,為技術分析提供了科學的實證基礎,打破了其“主觀藝術”的傳統印象,尤其在指數投資中展現出實用價值,為量化投資與技術分析的結合提供了重要參考。

代碼復現

論文介紹:《Foundations of Technical Analysis》

Andrew W Lo、Harry Mamaysky和王江提出了一種系統化和自動化的方法,使用非參數核回歸方法來進行模式識別,并將該方法應用于1962年至 1996 年的美股數據,以評估技術分析的有效性。通過將股票收益的無條件經驗分布與條件分布(給定特定的技術指標,例如:頭肩底形態、雙底形態)作比較,發現在 31 年的樣本期 間內,部分技術指標確實提供了有用的信息,具有實用價值。 與基本面分析不同,技術分析一直以來飽受爭議。

然而一些學術研究表明,技術分析能從市場價格中提取 有用的信息。例如,Lo and MacKinlay (1988, 1999)證實了每周的美股指數并非隨機游走,過去的價格可以在某種 程度上預測未來收益。技術分析和傳統金融工程的一個重要區別在于,技術分析主要通過觀察圖表進行,而量化金融則依賴于相對完善的數值法。因此,技術分析利用幾何工具和形態識別,而量化金融運用數學分析和概率統計。

隨著近年來金融工程、計算機技術和數值算法等領域的突破,金融工程可以逐步取代不那么嚴謹的技術分析。技術分析雖飽受質疑卻仍能占據一席之地,歸功于其視覺分析模式更貼近直觀認知,而且在過去,要進行技術分析,首先要認識到價格過程是非線性的,且包含一定的規律和模式。為了定量地捕捉這種規 律,我們首先假定價格過程尚未有嚴格的算法取代傳統的技術分析,如今,成熟的統計算法能夠取代傳統的幾何畫圖,讓技術分析繼續以 更新、更嚴謹的方式服務投資者,同時金融工程領域在分析范式上也得到了豐富。

形態識別算法

核估計方法

假定價格過程Pt有如下表達形式:

研報復現:技術分析算法、框架與實戰-AI.x社區

其中Xt是狀態變量,m(Xt)是任意固定但位置的非線性函數,

研報復現:技術分析算法、框架與實戰-AI.x社區

為白噪聲。

為了識別模式,我們令狀態變量等于時間Xt = t,此時,需要用一個光滑函數

研報復現:技術分析算法、框架與實戰-AI.x社區

。近似價格過程為了與核回歸估計文獻中的符號保持一致,我們仍將狀態變量記為Xt。

研報復現:技術分析算法、框架與實戰-AI.x社區

還需要一個形態識別的算法,以自動識別指數指標。一旦有了算法,就可以應用于不同時段的資產價格,從而評估不同技術指標的有效性。

平滑估計量

研報復現:技術分析算法、框架與實戰-AI.x社區

其中離x較近的Xt對應的Pt擁有較大的權重

研報復現:技術分析算法、框架與實戰-AI.x社區

。對于距離的選擇,太寬會導致估計量過于平滑而無法顯示出

研報復現:技術分析算法、框架與實戰-AI.x社區

真正的特性,太窄又會導致估計量的波動較大,無法排除噪聲的影響。因此需要通過選擇合適的權重

研報復現:技術分析算法、框架與實戰-AI.x社區

來平衡以上兩點。

核回歸

研報復現:技術分析算法、框架與實戰-AI.x社區

形態識別算法

1、頭肩形態(頭肩頂和頭肩底)

研報復現:技術分析算法、框架與實戰-AI.x社區

2、發散形態(頂部發散和底部發散)

研報復現:技術分析算法、框架與實戰-AI.x社區

3、三角形

研報復現:技術分析算法、框架與實戰-AI.x社區

4、矩形

研報復現:技術分析算法、框架與實戰-AI.x社區

形態識別測試

中國寶安

data1 = get_price('000009.XSHE', start_date='2021-01-21', end_date='2021-12-31',
                 fields=['open', 'close', 'low', 'high'], panel=False)
patterns_record1 = rolling_patterns2pool(data1['close'],n=35)
plot_patterns_chart(data1,patterns_record1,True,False)
plt.title('中國寶安')
plot_patterns_chart(data1,patterns_record1,True,True);

研報復現:技術分析算法、框架與實戰-AI.x社區

江淮汽車

data2 = get_price('600418.XSHG', start_date='2021-01-21', end_date='2021-12-31',
                 fields=['open', 'close', 'low', 'high'], panel=False)
patterns_record2 = rolling_patterns2pool(data1['close'],n=35)
plot_patterns_chart(data1,patterns_record2,True,False)
plt.title('江淮汽車')
plot_patterns_chart(data1,patterns_record2,True,True);

研報復現:技術分析算法、框架與實戰-AI.x社區

滬深300

hs300 = get_price('000300.XSHG', start_date='2014-01-01', end_date='2021-12-31',
                 fields=['open', 'close', 'low', 'high'], panel=False)
# 這里周期周期較長 加入reset_window設置字典更新頻率
patterns_record3 = rolling_patterns2pool(hs300['close'],n=35,reset_window=120)
plot_patterns_chart(hs300,patterns_record3,True,False)
plt.title('滬深300')
plot_patterns_chart(hs300,patterns_record3,True,True);

研報復現:技術分析算法、框架與實戰-AI.x社區

研報復現:技術分析算法、框架與實戰-AI.x社區

研報復現:技術分析算法、框架與實戰-AI.x社區

研報復現:技術分析算法、框架與實戰-AI.x社區

申萬一級行業形態識別情況

def patterns_res2json(dic: Dict) -> str:
    """將結果轉為json
    Args:
        dic (Dict): 結果字典
    Returns:
        str
    """
    def json_serial(obj):
        """JSON serializer for objects not serializable by default json code"""
        if isinstance(obj, np.datetime64):
            return pd.to_datetime(obj).strftime('%Y-%m-%d')
        if isinstance(obj, np.ndarray):
            return list(map(lambda x: pd.to_datetime(x).strftime('%Y-%m-%d'), obj.tolist()))
    return json.dumps(dic, default=json_serial, ensure_ascii=False)
def pretreatment_events(factor: pd.DataFrame, returns: pd.DataFrame, before: int, after: int) -> pd.DataFrame:
    """預處理事件,將其拉到同一時間
    Args:
        factor (pd.DataFrame): MuliIndex level0-date level1-asset
        returns (pd.DataFrame): index-datetime columns-asset 
        before (int): 事件前N日
        after (int): 事件后N日
    Returns:
        pd.DataFrame: [description]
    """
    all_returns = []
    for timestamp, df in factor.groupby(level='date'):
        equities = df.index.get_level_values('asset')
        try:
            day_zero_index = returns.index.get_loc(timestamp)
        except KeyError:
            continue
        starting_index = max(day_zero_index - before, 0)
        ending_index = min(day_zero_index + after + 1,
                           len(returns.index))
        equities_slice = set(equities)
        series = returns.loc[returns.index[starting_index:ending_index],
                             equities_slice]
        series.index = range(starting_index - day_zero_index,
                             ending_index - day_zero_index)
        all_returns.append(series)
    return pd.concat(all_returns, axis=1)
def get_event_cumreturns(pretreatment_events: pd.DataFrame) -> pd.DataFrame:
    """以事件當日為基準的累計收益計算
    Args:
        pretreatment_events (pd.DataFrame): index-事件前后日 columns-asset
    Returns:
        pd.DataFrame
    """
    df = pd.DataFrame(index=pretreatment_events.index,
                      columns=pretreatment_events.columns)
    df.loc[:0] = pretreatment_events.loc[:0] / pretreatment_events.loc[0] - 1
    df.loc[1:] = pretreatment_events.loc[0:] / pretreatment_events.loc[0] - 1
    return df
def get_industry_price(codes: Union[str, List], start: str, end: str) -> pd.DataFrame:
    """獲取行業指數日度數據. 限制獲取條數Limit=4000
    Args:
        codes (Union[str,List]): 行業指數代碼
        start (str): 起始日
        end (str): 結束日
    Returns:
        pd.DataFrame: 日度數據
    """
    def query_func(code: str, start: str, end: str) -> pd.Series:
        return finance.run_query(query(finance.SW1_DAILY_PRICE).filter(finance.SW1_DAILY_PRICE.code == code,
                                                                       finance.SW1_DAILY_PRICE.date >= start,
                                                                       finance.SW1_DAILY_PRICE.date <= end))
    if isinstance(codes, str):
        codes = [codes]
    return pd.concat((query_func(code, start, end) for code in codes))
def calc_events_ret(ser: pd.Series, pricing: pd.DataFrame, before: int = 3, end: int = 10, group: bool = True) -> Union[pd.Series, pd.DataFrame]:
    """ 計算形態識別前累計收益率情況
    Args:
        ser (pd.Series): _description_
        pricing (pd.DataFrame): 價格數據 index-date columns-指數
        before (int, optional): 識別前N日. Defaults to 3.
        end (int, optional): 識別后N日. Defaults to 10.
        group (bool, optional): 是否分組. Defaults to True.
    Returns:
        Union[pd.Series, pd.DataFrame]
    """
    events = pretreatment_events(ser, pricing, before,  end)
    rets = get_event_cumreturns(events)
    if group:
        return rets.mean(axis=1)
    else:
        return rets
def get_win_rate(df: pd.DataFrame) -> pd.DataFrame:
    """計算勝率
    Args:
        df (pd.DataFrame): index-days columns 
    Returns:
        pd.DataFrame
    """
    return df.apply(lambda x: np.sum(np.where(x > 0, 1, 0)) / x.count(), axis=1)
def get_pl(df:pd.DataFrame)->pd.DataFrame:
    """計算盈虧比
    Returns:
        pd.DataFrame
    """
    return df.apply(lambda x:x[x>0].mean() / x[x<0].mean(),axis=1)
def plot_events_ret(ser: pd.Series, title: str = '', ax=None):
    """繪制事件收益率圖
    Args:
        ser (pd.Series): 收益率序列
        ax (_type_, optional):Defaults to None.
    Returns:
        ax
    """
    if ax is None:
        fig, ax = plt.figure(figsize=(18, 4))
    line_ax = ser.plot(ax=ax, marker='o', title=title)
    line_ax.yaxis.set_major_formatter(
        mpl.ticker.FuncFormatter(lambda x, pos: '%.2f%%' % (x * 100)))
    line_ax.set_xlabel('天')
    line_ax.set_ylabel('平均收益率')
    ax.axvline(0, ls='--', color='black')
    return ax

# 獲取申萬一級行業列表
indstries_frame = get_industries(name='sw_l1', date=None)
industry_price = get_industry_price(indstries_frame.index.tolist(),'2014-01-01','2022-02-18')
# 數據儲存
industry_price.to_csv('sw_lv1.csv')

# 讀取申萬一級行業數據
industry_price = pd.read_csv('sw_lv1.csv', index_col=[
                             'name', 'date'], parse_dates=True).drop(columns='Unnamed: 0')
industry_price.head()

# time 2:14:46
## 形態識別數量受窗口期 及 更新字典的窗口 大小影響
dic = {}  # 儲存形態識別結果
for name,df in tqdm(industry_price.groupby(level='name')):


    if len(df) > 120:
        dic[name] = rolling_patterns2pool(df.loc[name,'close'],35,reset_window = 120)._asdict()

# 將結果儲存為json
res_json =patterns_res2json(dic)
# 數據儲存
with open('res_json.json','w',encoding='utf-8') as file:
    json.dump(res_json,file)

# 讀取 形態識別后的文件
with open('res_json.json','r',encoding='utf-8') as file:
    res_json = json.load(file)

# 獲取交易日歷
trade_calendar = get_trade_days('2013-06-01','2022-02-21')
idx = pd.to_datetime(trade_calendar)

row_data = []  # 獲取形態識別時的時點
res_dic = json.loads(res_json)  # json轉為字典
for code,res1 in res_dic.items():
    for pattern_name,point_tuple in res1['patterns'].items():


        for p1,p2 in point_tuple:


            watch_date = idx.get_loc(p2) + 3 # 模擬三天后識別形態
            row_data.append([code,pattern_name,idx[watch_date]])
# 轉為frame格式
stats_df = pd.DataFrame(row_data,columns=['指數','形態','時間'])
stats_df['value'] = 1
factor_df = pd.pivot_table(stats_df,index=['時間','指數'],columns=['形態'],values='value')
factor_df = factor_df.sort_index()
factor_df.index.names = ['date','asset']
pricing = pd.pivot_table(industry_price.reset_index(),
                         index='date', columns='name', values='close')

形態識別后,前后平均收益情況

# TODO:收益減去指數自身 評價其超額情況 否則無法真實評價
group_ret = factor_df.groupby(level=0, axis=1).apply(
    lambda x: calc_events_ret(x.dropna(), pricing))
size = group_ret.shape[1]
fig, axes = plt.subplots(size, figsize=(18, 4 * size))
axes = axes.flatten()
for ax, (name, ser) in zip(axes, group_ret.items()):
    plot_events_ret(ser, name, ax)
plt.subplots_adjust(hspace=0.4)

研報復現:技術分析算法、框架與實戰-AI.x社區

# 計算勝率
evet_ret = factor_df.groupby(level=0, axis=1).apply(
    lambda x: calc_events_ret(x.dropna(), pricing, group=False))
grouped = evet_ret.groupby(level=[0, 1], axis=1)
# 計算勝率
win_ratio = grouped.apply(get_win_rate).loc[[3, 5, 10]].T.swaplevel().sort_index()
# 計算盈虧比
pl_df = grouped.apply(get_pl).loc[[3, 5, 10]].T.swaplevel().sort_index()
win_ratio.columns = pd.MultiIndex.from_tuples([('勝率',3),('勝率',5),('勝率',10)])
pl_df.columns = pd.MultiIndex.from_tuples([('盈虧比',3),('盈虧比',5),('盈虧比',10)])
pattern_count = factor_df.groupby(level=1).sum().stack()
stats = pd.concat((win_ratio,pl_df),axis=1)
stats[('識別次數','All')] = pattern_count

研報復現:技術分析算法、框架與實戰-AI.x社區圖片

本文轉載自??靈度智能??,作者:靈度智能

已于2025-8-22 10:32:44修改
收藏
回復
舉報
回復
相關推薦
亚洲国产欧美在线成人app| 久久老女人爱爱| 欧美大片在线看| 欧美一级片黄色| 一二区成人影院电影网| 国产精品免费无遮挡| 亚洲h色精品| 精品99久久久久久| 久久精品影视大全| 欧美xxxxhdvideosex| 91免费在线看| 亚洲最大激情中文字幕| 特级做a爱片免费69| **女人18毛片一区二区| 亚洲精品美女视频| 久久久久久久久久毛片| 国产自产自拍视频在线观看| 国产精品区一区二区三| 国产精品自拍首页| 免费在线不卡视频| 欧美福利专区| 国产一级揄自揄精品视频| 亚洲欧美激情一区二区三区| 亚洲国产尤物| 午夜精品久久久久久久蜜桃app| 日韩经典在线视频| 国产高清免费av| 男人的j进女人的j一区| 97国产在线视频| √天堂中文官网8在线| 国产探花一区二区| 亚洲成人av片在线观看| 亚洲高清视频免费| 成人国产激情| 日韩欧美中文字幕在线观看| 黄色成人在线免费观看| 欧美videos极品另类| 91麻豆.com| 国产乱码精品一区二区三区不卡| 91福利免费视频| 日本最新不卡在线| 国产91热爆ts人妖在线| 日韩成人免费观看| 亚洲午夜久久久久久尤物| 精品国产区一区二区三区在线观看| 北岛玲一区二区| 亚洲精品18| 日韩一区二区高清| 无套内谢丰满少妇中文字幕| 91精品国产色综合久久不卡粉嫩| 欧美性大战久久| 国产精品理论在线观看| 国产乱码精品一区二区三区日韩精品 | 国产精品女同一区二区| 麻豆精品一区二区综合av| 国产成人在线精品| japanese国产在线观看| 日韩精品五月天| 国产精品福利片| 中文字幕精品一区二| 日韩国产欧美在线视频| 国产精品69精品一区二区三区| 天堂中文在线网| 午夜综合激情| 国产精品日韩欧美| 中文字字幕在线中文乱码| 美女脱光内衣内裤视频久久影院| 成人av色在线观看| 国产精品久久久久久久免费| 国产一区在线精品| 97视频热人人精品| 涩涩视频免费看| 92国产精品观看| 欧美一区二区三区四区五区六区| 岛国在线视频免费看| 日本一区二区三区dvd视频在线| 午夜精品一区二区三区四区| 日本在线看片免费人成视1000| 国产精品激情偷乱一区二区∴| 香蕉精品视频在线| 毛片大全在线观看| 黑人精品xxx一区一二区| 一区二区三区在线视频播放| 女人一区二区三区| 成年人视频免费在线观看| 亚洲视频一区在线| 奇米影视亚洲色图| 亚洲成a人片| 欧美日韩国产高清一区二区| 无码人妻少妇色欲av一区二区| 99久久婷婷国产综合精品青牛牛 | 亚洲欧美综合在线观看| 国产欧美中文在线| 欧美大黑帍在线播放| 免费日韩电影| 日韩一区二区精品在线观看| 粉嫩av蜜桃av蜜臀av| 久久久久久久久久久9不雅视频 | 亚洲天堂免费观看| 情侣偷拍对白清晰饥渴难耐| 91久久综合| 国产一区视频在线| 天天干天天爱天天操| 国产精品美女www爽爽爽| 免费网站永久免费观看| 91国拍精品国产粉嫩亚洲一区| 日韩你懂的在线观看| 加勒比一区二区| 欧美日韩综合| 国产精品 欧美在线| 亚洲第一免费视频| 国产精品久线观看视频| 黄色网页免费在线观看| 中文字幕日本一区| 亚洲图片制服诱惑| 日韩欧美激情视频| 国产福利一区在线| 先锋影音网一区| 日韩电影毛片| 欧美成人三级在线| 五月天婷婷丁香网| 国产一区二区精品| 国产精品99久久久久久久| av中文字幕在线| 欧美性猛交xxxx| 国产精品嫩草69影院| 99国产**精品****| 国产精品日韩精品| 国产福利第一视频在线播放| 欧美视频国产精品| 中文乱码人妻一区二区三区视频| 国产一区日韩一区| 91精品入口蜜桃| 国产精品人人爽人人爽| 欧美videos极品另类| 在线观看一区日韩| a级大片在线观看| 亚洲影院一区| 久久精品国产精品国产精品污 | 中文字幕日韩av资源站| 九九热在线免费| 久久99国内| 日韩美女视频中文字幕| 青青久在线视频| 黑人极品videos精品欧美裸| 国产精品一级黄片| 鲁大师成人一区二区三区| 国新精品乱码一区二区三区18| 后进极品白嫩翘臀在线播放| 欧美tickling网站挠脚心| 久久久久亚洲av无码专区| 国产成人综合亚洲网站| 中文字幕中文字幕在线中一区高清| 在线看欧美视频| 亚洲欧美成人一区二区在线电影| 男人天堂av在线播放| av中文字幕不卡| 水蜜桃色314在线观看| 日韩电影免费观| 在线亚洲男人天堂| 中文字幕观看视频| 国产欧美日韩在线看| 一级黄色香蕉视频| 欧美美乳视频| 国产精品爽爽ⅴa在线观看| 国产精品视频二区三区| 色网综合在线观看| 亚洲日本精品视频| 久久久精品网| 亚洲欧美日韩国产yyy| 成人不卡视频| 色婷婷综合成人av| 久久久夜色精品| 国产精品综合一区二区| 欧美福利精品| 日韩电影免费看| 亚洲精品在线三区| www.伊人久久| 久久精品视频免费| 国产成人手机视频| 四虎8848精品成人免费网站| 亚洲一区二区成人| 成人字幕网zmw| 成人在线免费看片| 亚洲精品一区二区三区99| 日本午夜精品理论片a级app发布| 波多野结衣在线一区| 欧美精品第三页| 久久成人综合| 99超碰麻豆| 日韩精品极品| 日韩一区二区久久久| 国产av一区二区三区精品| 欧美日韩一区二区在线 | 日韩激情视频在线| 高潮毛片又色又爽免费 | 欧美一卡在线观看| 欧美日韩国产精品一区二区三区| 成年人网站91| 一区二区三区 欧美| 亚洲日产国产精品| 日韩福利影院| 午夜久久av| 欧美一级bbbbb性bbbb喷潮片| 电影av一区| 亚洲精品国产欧美| 一区二区三区精彩视频| 亚洲成a人v欧美综合天堂下载| 日韩精品无码一区二区三区久久久 | 激情五月播播久久久精品| 国产片侵犯亲女视频播放| 欧美日日夜夜| 亚洲自拍偷拍在线| 中文在线аv在线| 久久精彩免费视频| 日本在线丨区| 精品捆绑美女sm三区| 黄色av网站免费| 一区二区三区国产豹纹内裤在线| 亚洲AV无码片久久精品| 蜜桃视频一区二区| 国产成人久久婷婷精品流白浆| 亚洲欧洲日韩| 四虎永久国产精品| 欧美调教视频| 国产一区二区中文字幕免费看| 久久精品 人人爱| 57pao精品| 欧美人与禽性xxxxx杂性| 国产一区二区三区网站| 在线无限看免费粉色视频| 888av在线视频| 神马国产精品影院av| 九色在线观看视频| 亚洲国产精品福利| 国产片高清在线观看| 91国产福利在线| 欧美成人三级在线观看| 亚洲欧美另类在线| 国产综合精品在线| 99久久99久久综合| 性色av浪潮av| 国产91高潮流白浆在线麻豆| 日韩肉感妇bbwbbwbbw| 亚洲免费网址| 人妻夜夜添夜夜无码av| 性欧美欧美巨大69| 日韩视频在线免费播放| 欧美精品一二| 美女黄毛**国产精品啪啪| 六月丁香久久丫| 国产精品一区二区三区观看| 午夜精品久久久久久毛片| 国产精品扒开腿爽爽爽视频 | 91一区二区在线| 国产精品久久无码| 成人福利视频网站| 乱码一区二区三区| 成人中文字幕在线| 欧美高清性xxxx| 91在线国产福利| 噜噜噜在线视频| 91丝袜呻吟高潮美腿白嫩在线观看| 成人黄色短视频在线观看| 色屁屁草草影院ccyycom| 欧美变态tickling挠脚心| hs视频在线观看| 日韩av中文字幕在线免费观看| 亚洲AV无码一区二区三区少妇| 欧美va亚洲va| 亚洲精品国产精品国| 精品亚洲一区二区三区| 每日更新在线观看av| 国产亚洲a∨片在线观看| 电影在线一区| 欧美激情视频免费观看| 爱情岛亚洲播放路线| 77777亚洲午夜久久多人| 性孕妇free特大另类| 国产精品中文字幕在线| 2020国产精品小视频| 91精品国自产在线观看| 免费萌白酱国产一区二区三区| 日韩高清dvd| 国产精品久久久久久| 青青视频免费在线观看| 亚洲国产片色| 一区二区三区韩国| 国产原创一区二区| 日韩精品人妻中文字幕有码| 91麻豆swag| 欧美另类视频在线观看| 欧美日韩亚洲激情| 一级片在线观看视频| 91精品福利在线一区二区三区| 亚洲av成人无码久久精品老人| 亚洲图中文字幕| 神马午夜伦理不卡 | 巨乳女教师的诱惑| 成人午夜电影小说| 女人被狂躁c到高潮| 欧美国产精品专区| 久久久久久久久久97| 欧美视频免费在线观看| 91精品国产乱码久久久| 亚洲精品一区在线观看| 超碰免费公开在线| 欧美亚洲在线观看| 91丨精品丨国产| 精品欧美日韩在线| 一区久久精品| 潘金莲激情呻吟欲求不满视频| 成人教育av在线| 欧美黄色aaa| 色婷婷久久久综合中文字幕| 国产美女免费看| 亚洲欧美在线x视频| 毛片在线网址| 国产日韩亚洲欧美| 日本欧美高清| 日本三级福利片| 美女视频黄 久久| 中国xxxx性xxxx产国| 中文字幕一区二区三区在线播放| 日韩精品一区三区| 欧美美女网站色| 国内在线精品| 97精品免费视频| 国产美女撒尿一区二区| 亚洲AV无码成人精品一区| 玖玖玖国产精品| 美女黄色一级视频| 亚洲午夜久久久| 国产不卡av在线播放| 亚洲免费小视频| 在线天堂新版最新版在线8| 97国产超碰| 国产精品国产三级国产在线观看 | 日韩av密桃| 欧洲亚洲一区二区| 国产精品草草| av亚洲天堂网| 亚洲三级视频在线观看| 午夜一级黄色片| 亚洲欧洲第一视频| 亚洲成人av观看| 日本不卡免费新一二三区| 一本色道久久综合| 强伦人妻一区二区三区| 日韩欧美一区二区在线| 免费看日韩av| 欧美老女人性生活| 99香蕉久久| 欧美激情亚洲天堂| 国产高清不卡一区二区| 精品视频久久久久| 精品人在线二区三区| 欧洲黄色一区| 精品久久久久久一区二区里番| 国模 一区 二区 三区| www日本在线观看| 亚洲欧美日韩综合aⅴ视频| 午夜精品一二三区| 久久久久久国产免费| eeuss国产一区二区三区四区| 久久成人福利视频| 成年人国产精品| 欧美一二三区视频| 最近2019免费中文字幕视频三| 日本美女久久| 一级二级三级欧美| 成人一区二区三区视频 | 亚洲图片你懂的| av一区二区三| 欧美一级视频在线观看| 中文字幕精品影院| 三年中国国语在线播放免费| 国产精品久久久久久久裸模| 一区二区视频播放| 中文字幕精品一区久久久久| 免费欧美网站| 水蜜桃色314在线观看| 成人免费看黄yyy456| 成人小视频在线播放| 日韩在线观看免费高清| 美女国产精品久久久| 女人另类性混交zo| 国产精品久久久久影院亚瑟| www.97av| 国产精品久久久久高潮| 综合激情网站| 人妻无码中文久久久久专区| 欧美精品日韩综合在线| 黄页网站在线| 欧美12av| 成人av资源在线观看| 中文字幕免费在线观看视频| 深夜福利国产精品| 欧洲亚洲成人| 欧美日韩精品区别|