基于协整理论的配对交易

  • 前导知识
    • 协整
    • 协整与相关
  • 配对交易
    • 策略思想
    • 策略实现

前导知识

协整

在实际生活中,大多数经济金融时间序列通常是非平稳的,如果用这些非平稳时间序列来建立回归模型,那么就会产生虚假回归,即所谓的“伪回归”.“伪回归”指的是变量之间本来不存在相关关系,但是将他们进行回归却得到相关关系的现象.如果采用传统回归方法对彼此不相关的非平稳变量进行回归,那么tt检验会倾向显著,R2R^2值也会比较大,由此得出变量相关的伪回归结果.那么该如何消除“伪回归”呢? 为了避免变量信息的损失,通常的思路是进行协整分析.协整分析是通过构造各个非平稳变量的线性组合,以此来消除非平稳性.这样既保留了变量的信息,又建立了变量间的关系.多个非平稳变量之间的线性组合是平稳的即称为协整.

协整的定义如下

定义 设kk个序列x1t,x2t,…,xktx_{1t},x_{2t},\dots,x_{kt},Xt=(x1t,x2t,…,xkt)TX_t=(x_{1t},x_{2t},\dots,x_{kt})^T,如果每个序列都是dd阶单整序列, 即xit∼I(d)x_{it}\sim I(d),并且存在非零向量β=(β1,β2,…,βk)T\beta=(\beta_1,\beta_2,\dots,\beta_k)^T,使得βTXt\beta^TX_t为(d−b)(d-b)阶单整序列,则称XtX_t的各分量是 、 阶协整的,记为Xt∼CI(d,b)X_t\sim CI(d,b). 其中, ≥ 2, 称为协整向量

协整关系的检验

Johansen 检验是基于回归系数的协整检验,它不需要事先确定哪些变量为解释变量或者被解释变量,所以它可以用来解决存在多个协整关系的情况. Johansen 检验是以 VAR 模型为基础的检验回归系数的方法,其基本思想是求特征根和特征向量的问题. 这里不展开详细介绍,有兴趣的读者可以自行查阅相关资料.

协整与相关

值得注意的是,协整并不代表相关。两个变量之间的相关性很强,但是协整性却可能很弱。所以当我们在筛选股票的时候,不是计算股票之间的相关性,而是计算协整。

配对交易

策略思想

我们通常认为股票价格是有趋势的,所以也就自然而然的认为股票价格是不平稳的,这在实际中很普遍,所以如果能找到存在协整关系的两只股票,我们就可以构建配对交易策略获利。

配对交易的思想是:两只存在协整关系的股票,两者的股价走势会存在偏离的情况,但是最终都会趋于一致。配对交易就是利用这种价格偏移进行获利。设XtX_t,YtY_t表示两只股票的价格序列,当两只股票的价差(Xt−YtX_t-Y_t)过高时,买入前者,卖出后者;当价差过低时,买入后者,卖出前者;当价差回归均值附近时,反向操作平仓处理。

策略的风险及存在的问题

  • 价差不回归的风险:当市场结构发生重大变化,用过去历史回归出来的价差会存在不回归的重大风险
  • 中国股票市场目前做空受到限制,所以策略中的部分收益是无法获得的
  • 回归系数需要不断地平衡
  • 下面的策略实现中,没有考虑到交易成本和其他成本

策略实现

在这里直接挑选了两只股票来进行配对交易,在实际环节中,应该先找到两只存在协整关系的股票,然后再构建配对交易策略。

导入所需的包:

%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib as mpl
plt.style.use('seaborn')
mpl.rcParams['font.family'] = 'serif'
import warnings; warnings.simplefilter('ignore')

import pandas as pd
import numpy as np
import tushare as ts

获取标的代码为:601666.SH和601001.SH的历史日线数据:

pair = ['601666.SH','601001.SH']
df1 = ts.pro_bar(ts_code=pair[0],adj='qfq',start_date='2020-01-01',end_date='2021-07-07')
df2 = ts.pro_bar(ts_code=pair[1],adj='qfq',start_date='2020-01-01',end_date='2021-07-07')
#将两表合并为一张表,这里要特别注意的是需要一一对应,如果股票存在暂停上市等,要特别注意是否一一对应
df = pd.concat([df1[['trade_date','close']],df2['close']],axis=1)
df.columns = ['date',pair[0],pair[1]]
df.set_index('date',inplace=True) #索引设置为日期
df = df.iloc[::-1,]  #按照时间顺序从小到大排序
df.plot()

两只股票价格走势如图所示:

构建回归模型:

回归模型的表达式为:y=a+bxy=a+bx,其中bb表示下面的slope表示斜率,aa表示截距项intercept

slope,intercept = np.polyfit(df[pair[0]],df[pair[1]],1).round(2)

构建价差以及标准化:

绝对的价差在后续构建头寸的时候不是很方便,将价差进行z-score标准化,然后当均值回归0附近即平仓,如果均值大于或者小于给定的阈值,就多头或者空头。

slope,intercept = np.polyfit(df[pair[0]],df[pair[1]],1).round(2)
df['spread'] = df[pair[1]] - (slope * df[pair[0]] + intercept)
df['spread_zscore'] = (df['spread'] - df['spread'].mean()) / df['spread'].std()
df['spread_zscore'].plot(figsize=(10,6),title='spread_zscore')
plt.axhline(0.8,color='r')
plt.axhline(0.0,color='y')
plt.axhline(-0.05,color='y')
plt.axhline(-0.8,color='r')

标准化后的价差序列如下图所示:(设定了阈值为0.8和0.05)

构建配对交易策略头寸:

只要构建了一只股票的头寸,那么另一只反向即可

df['position_1'] = np.where(df['spread_zscore'] > 0.8, 1, np.nan)
df['position_1'] = np.where(df['spread_zscore'] < -0.8, -1, df['position_1'])
df['position_1'] = np.where(abs(df['spread_zscore']) < 0.05, 0, df['position_1'])
df['position_1'] = df['position_1'].fillna(method='ffill')
df['position_2'] = -df['position_1']

构建收益:

df['return1'] = np.log(df[pair[0]] / df[pair[0]].shift(1))
df['return2'] = np.log(df[pair[1]] / df[pair[1]].shift(1))
df['strategy'] = 0.5*(df['position_1'].shift(1)*df['return1']) + 0.5*(df['position_2'].shift(1)*df['return2'])
df[['return1','return2','strategy']].cumsum().apply(np.exp).plot(figsize=(10,6))

策略收益及基准收益如下:

从收益图可以看出,同单独持有一只股票相比,虽然策略收益率没有那么高,但是策略的最大回撤较小,这里是随意选取的两只股票,只用于策略的演示。

免责声明
在任何情况下,本文中的信息或所表述的意见并不构成对任何人的投资建议,这里只为了策略的演示。
在任何情况下,本人不对任何人因使用本文中的任何内容所引致的任何损失负任何责任,投资者自主作出 投资决策并自行承担投资风险,任何形式的分享证券投资收益或者分担证券投资损失的书面或口头承诺均为无效。

所有评论(192)

  1. rocket china说道:

    This message is used to verify that this feed (feedId:72520883767019520) belongs to me (userId:72517247633753088). Join me in enjoying the next generation information browser https://follow.is.

  2. I’m really impressed with your writing skills and also with the
    layout on your weblog. Is this a paid theme or did you modify it yourself?
    Anyway keep up the excelolent quality writing, it’s rarte to see a greeat blog like tbis one these days. https://hot-fruits-Glassi.Blogspot.com/2025/08/hot-fruitsslot.html

  3. This blkog was… how do I say it? Relevant!! Finally I have found something
    which helped me. Thank you! https://bezraboten.com/employer/tonebet-casino/

  4. IndianIgniz说道:

    india pharmacy: indian pharmacy – online medicine

  5. DavidDeaky说道:

    AeroMedsRx: AeroMedsRx – best price for viagra 100mg

  6. ZacharyWhosy说道:

    http://aeromedsrx.com/# generic sildenafil

  7. TristanSwamb说道:

    kamagra [url=http://bluewavemeds.com/#]kamagra oral jelly[/url] BlueWaveMeds

  8. KennethNeuro说道:

    sildenafil over the counter: buy Viagra over the counter – AeroMedsRx

  9. DavidDeaky说道:

    BlueWaveMeds: kamagra – trusted Kamagra supplier in the US

  10. ZacharyWhosy说道:

    https://bluewavemeds.com/# fast delivery Kamagra pills

  11. TristanSwamb说道:

    AeroMedsRx [url=https://aeromedsrx.xyz/#]Viagra online price[/url] AeroMedsRx

  12. DavidDeaky说道:

    AeroMedsRx: Cheap generic Viagra online – Viagra Tablet price

  13. TristanSwamb说道:

    Tadalafil Tablet [url=https://everameds.com/#]EveraMeds[/url] EveraMeds

  14. DavidDeaky说道:

    Tadalafil Tablet: EveraMeds – Cialis 20mg price

  15. ZacharyWhosy说道:

    http://aeromedsrx.com/# Viagra Tablet price

  16. KennethNeuro说道:

    AeroMedsRx: over the counter sildenafil – sildenafil over the counter

  17. TristanSwamb说道:

    EveraMeds [url=http://everameds.com/#]Cialis 20mg price[/url] cialis for sale

  18. ZacharyWhosy说道:

    https://bluewavemeds.com/# buy Kamagra online

  19. TristanSwamb说道:

    AeroMedsRx [url=https://aeromedsrx.xyz/#]AeroMedsRx[/url] buy Viagra over the counter

  20. DavidDeaky说道:

    fast delivery Kamagra pills: online pharmacy for Kamagra – BlueWaveMeds

  21. KennethNeuro说道:

    Viagra Tablet price: sildenafil over the counter – Viagra online price

  22. TristanSwamb说道:

    Generic Tadalafil 20mg price [url=https://everameds.com/#]EveraMeds[/url] Cialis 20mg price in USA

  23. ZacharyWhosy说道:

    http://aeromedsrx.com/# AeroMedsRx

  24. ZacharyWhosy说道:

    https://bluewavemeds.xyz/# buy Kamagra online

  25. DavidDeaky说道:

    buy cialis pill: Cialis 20mg price in USA – cialis generic

  26. TristanSwamb说道:

    EveraMeds [url=https://everameds.com/#]EveraMeds[/url] Tadalafil price

  27. DavidDeaky说道:

    online pharmacy for Kamagra: fast delivery Kamagra pills – trusted Kamagra supplier in the US

  28. KennethNeuro说道:

    Blue Wave Meds: order Kamagra discreetly – BlueWaveMeds

  29. DavidDeaky说道:

    fast delivery Kamagra pills: BlueWaveMeds – buy Kamagra online

  30. DavidDeaky说道:

    EveraMeds: EveraMeds – EveraMeds

  31. KennethNeuro说道:

    online pharmacy for Kamagra: BlueWaveMeds – trusted Kamagra supplier in the US

  32. TristanSwamb说道:

    EveraMeds [url=http://everameds.com/#]Cheap Cialis[/url] Tadalafil Tablet

  33. ZacharyWhosy说道:

    https://bluewavemeds.xyz/# buy Kamagra online

  34. DavidDeaky说道:

    Viagra online price: AeroMedsRx – AeroMedsRx

  35. DavidDeaky说道:

    buy Viagra online: Viagra Tablet price – AeroMedsRx

  36. TristanSwamb说道:

    Cialis 20mg price in USA [url=https://everameds.com/#]cialis for sale[/url] Buy Tadalafil 10mg

  37. DavidDeaky说道:

    Cialis 20mg price in USA: EveraMeds – cheapest cialis

  38. KennethNeuro说道:

    trusted Kamagra supplier in the US: BlueWaveMeds – trusted Kamagra supplier in the US

  39. TristanSwamb说道:

    BlueWaveMeds [url=https://bluewavemeds.com/#]order Kamagra discreetly[/url] kamagra

  40. ZacharyWhosy说道:

    https://bluewavemeds.com/# trusted Kamagra supplier in the US

  41. DavidDeaky说道:

    kamagra: BlueWaveMeds – online pharmacy for Kamagra

  42. TristanSwamb说道:

    Cheap Cialis [url=https://everameds.com/#]EveraMeds[/url] EveraMeds

  43. DavidDeaky说道:

    AeroMedsRx: AeroMedsRx – Generic Viagra for sale

  44. TristanSwamb说道:

    AeroMedsRx [url=https://aeromedsrx.com/#]AeroMedsRx[/url] Sildenafil 100mg price

  45. ZacharyWhosy说道:

    http://aeromedsrx.com/# AeroMedsRx

  46. DavidDeaky说道:

    order Kamagra discreetly: kamagra oral jelly – fast delivery Kamagra pills

  47. TristanSwamb说道:

    EveraMeds [url=http://everameds.com/#]EveraMeds[/url] EveraMeds

  48. ZacharyWhosy说道:

    https://aeromedsrx.xyz/# AeroMedsRx

  49. TristanSwamb说道:

    EveraMeds [url=https://everameds.com/#]Cheap Cialis[/url] EveraMeds

  50. DavidDeaky说道:

    buy Kamagra online: kamagra oral jelly – online pharmacy for Kamagra

  51. KennethNeuro说道:

    online pharmacy for Kamagra: kamagra – BlueWaveMeds

  52. ZacharyWhosy说道:

    http://everameds.com/# EveraMeds

  53. TristanSwamb说道:

    Blue Wave Meds [url=https://bluewavemeds.com/#]buy Kamagra online[/url] fast delivery Kamagra pills

  54. DavidDeaky说道:

    kamagra: BlueWaveMeds – kamagra

  55. ZacharyWhosy说道:

    https://bluewavemeds.com/# kamagra oral jelly

  56. Richarddioli说道:

    the canadian drugstore https://mhfapharm.com/# cheap canadian pharmacy online

  57. RobertPople说道:

    canadian pharmacies online: canada pharmacy world – canadian pharmacy in canada

  58. Forestwef说道:

    IsoIndiaPharm [url=http://isoindiapharm.com/#]IsoIndiaPharm[/url] best india pharmacy

  59. HunterBruro说道:

    IsoIndiaPharm: Iso Pharm – IsoIndiaPharm

  60. RobertPople说道:

    MhfaPharm: MhfaPharm – canadian pharmacies

  61. Richarddioli说道:

    best mail order pharmacy canada http://uvapharm.com/# reputable mexican pharmacy

  62. Forestwef说道:

    Iso Pharm [url=https://isoindiapharm.com/#]best online pharmacy india[/url] IsoIndiaPharm

  63. Richarddioli说道:

    pharmacy com canada https://uvapharm.xyz/# UvaPharm

  64. RobertPople说道:

    Iso Pharm: indian pharmacy paypal – IsoIndiaPharm

  65. RobertPople说道:

    Uva Pharm: UvaPharm – Uva Pharm

  66. Richarddioli说道:

    canadian drugstore online https://uvapharm.com/# Uva Pharm

  67. HunterBruro说道:

    canadian pharmacy prices: legitimate canadian pharmacy – MhfaPharm

  68. RobertPople说道:

    UvaPharm: Uva Pharm – Uva Pharm

  69. Richarddioli说道:

    reddit canadian pharmacy https://mhfapharm.xyz/# MhfaPharm

  70. RobertPople说道:

    tijuana pharmacy online: Uva Pharm – UvaPharm

  71. Richarddioli说道:

    canadian drugs pharmacy http://mhfapharm.com/# MHFA Pharm

  72. Forestwef说道:

    UvaPharm [url=https://uvapharm.xyz/#]UvaPharm[/url] UvaPharm

  73. Richarddioli说道:

    canadian drugstore online http://mhfapharm.com/# MhfaPharm

  74. Richarddioli说道:

    canada pharmacy online https://isoindiapharm.xyz/# Iso Pharm

  75. Richarddioli说道:

    canadian pharmacy 24h com http://uvapharm.com/# farmacia pharmacy mexico

  76. Forestwef说道:

    mexico pharmacy [url=http://uvapharm.com/#]UvaPharm[/url] mexican meds

  77. Richarddioli说道:

    onlinecanadianpharmacy https://mhfapharm.com/# pharmacy canadian

  78. RobertPople说道:

    IsoIndiaPharm: IsoIndiaPharm – india online pharmacy

  79. DouglasEvepe说道:

    UclaMetformin: drug cost metformin – Ucla Metformin

  80. PatrickGrous说道:

    п»їlegitimate online pharmacies india http://uclametformin.com/# UclaMetformin

  81. Davidalege说道:

    cost propecia without prescription [url=http://bswfinasteride.com/#]BSW Finasteride[/url] buying generic propecia without dr prescription

  82. CharlesProgs说道:

    UclaMetformin: UclaMetformin – metformin 25g

  83. PatrickGrous说道:

    india online pharmacy https://bswfinasteride.com/# BSW Finasteride

  84. CharlesProgs说道:

    PmaIvermectin: ivermectin structure – how long after taking ivermectin can i drink alcohol

  85. Davidalege说道:

    PMA Ivermectin [url=https://pmaivermectin.com/#]PMA Ivermectin[/url] PMA Ivermectin

  86. DouglasEvepe说道:

    PMA Ivermectin: PMA Ivermectin – PmaIvermectin

  87. CharlesProgs说道:

    buying cheap propecia without a prescription: BSW Finasteride – order cheap propecia pill

  88. DouglasEvepe说道:

    buy cytotec online: SocalAbortionPill – SocalAbortionPill

  89. PatrickGrous说道:

    mail order pharmacy india http://pmaivermectin.com/# PMA Ivermectin

  90. CharlesProgs说道:

    BswFinasteride: cost of propecia pills – buy generic propecia without insurance

  91. Davidalege说道:

    BswFinasteride [url=http://bswfinasteride.com/#]BSW Finasteride[/url] BswFinasteride

  92. PatrickGrous说道:

    indian pharmacy online http://bswfinasteride.com/# buy propecia without a prescription

  93. CharlesProgs说道:

    buy propecia without prescription: BswFinasteride – BswFinasteride

  94. DouglasEvepe说道:

    BswFinasteride: BswFinasteride – BSW Finasteride

  95. PatrickGrous说道:

    best online pharmacy india http://uclametformin.com/# UclaMetformin

  96. CharlesProgs说道:

    buy abortion pills: Socal Abortion Pill – Misoprostol 200 mg buy online

  97. PatrickGrous说道:

    indianpharmacy com https://bswfinasteride.xyz/# BswFinasteride

  98. DouglasEvepe说道:

    metformin india: where to buy metformin 500 mg – UclaMetformin

  99. Davidalege说道:

    can you buy metformin [url=https://uclametformin.com/#]best price metformin 1 000mg[/url] Ucla Metformin

  100. PatrickGrous说道:

    indian pharmacy online https://pmaivermectin.xyz/# PMA Ivermectin

  101. CharlesProgs说道:

    PmaIvermectin: PmaIvermectin – ivermectin discovery

  102. DouglasEvepe说道:

    PmaIvermectin: ivermectin discovery – PMA Ivermectin

  103. JoshuaFop说道:

    canadian online pharmacies legitimate http://dmucialis.com/# Generic Cialis price

  104. Cialisdueta说道:

    Neo Kamagra: NeoKamagra – NeoKamagra

  105. Ramonked说道:

    kamagra [url=https://neokamagra.com/#]NeoKamagra[/url] NeoKamagra

  106. JoshuaFop说道:

    reputable online canadian pharmacy https://muscpharm.xyz/# online pharmacy reviews

  107. Cialisdueta说道:

    Dmu Cialis: cheapest cialis – buy cialis pill

  108. JoshuaFop说道:

    accutane mexican pharmacy https://dmucialis.xyz/# Dmu Cialis

  109. Cialisdueta说道:

    NeoKamagra: NeoKamagra – NeoKamagra

  110. Ramonked说道:

    Neo Kamagra [url=https://neokamagra.com/#]Neo Kamagra[/url] Neo Kamagra

  111. Dmuaceks说道:

    NeoKamagra: buy Kamagra – Neo Kamagra

  112. JoshuaFop说道:

    mexican drugstore online http://dmucialis.com/# Tadalafil price

  113. Cialisdueta说道:

    Neo Kamagra: Neo Kamagra – NeoKamagra

  114. Ramonked说道:

    Neo Kamagra [url=http://neokamagra.com/#]NeoKamagra[/url] Kamagra 100mg price

  115. JoshuaFop说道:

    prescriptions canada https://muscpharm.com/# Musc Pharm

  116. Cialisdueta说道:

    NeoKamagra: Neo Kamagra – Neo Kamagra

  117. Dmuaceks说道:

    Generic Tadalafil 20mg price: Tadalafil price – DmuCialis

  118. Ramonked说道:

    DmuCialis [url=https://dmucialis.xyz/#]Dmu Cialis[/url] Cialis without a doctor prescription

  119. JoshuaFop说道:

    list of reputable canadian pharmacies http://dmucialis.com/# Dmu Cialis

  120. Ramonked说道:

    DmuCialis [url=https://dmucialis.xyz/#]Dmu Cialis[/url] Dmu Cialis

  121. JoshuaFop说道:

    cheap canadian cialis https://dmucialis.com/# DmuCialis

  122. Cialisdueta说道:

    NeoKamagra: Neo Kamagra – super kamagra

  123. JoshuaFop说道:

    us online pharmacy https://dmucialis.com/# Dmu Cialis

  124. Ramonked说道:

    Neo Kamagra [url=https://neokamagra.xyz/#]NeoKamagra[/url] NeoKamagra

  125. JoshuaFop说道:

    discount mail order pharmacy http://neokamagra.com/# Neo Kamagra

  126. Cialisdueta说道:

    Cheap Cialis: Cialis 20mg price in USA – Buy Tadalafil 20mg

  127. Ramonked说道:

    MuscPharm [url=https://muscpharm.com/#]Musc Pharm[/url] MuscPharm

  128. JoshuaFop说道:

    canadian world pharmacy https://dmucialis.com/# DmuCialis

  129. Cialisdueta说道:

    list of safe online pharmacies: MuscPharm – canada drug store

  130. Ramonked说道:

    compare prescription drug prices [url=https://muscpharm.xyz/#]MuscPharm[/url] MuscPharm

  131. Cialisdueta说道:

    canadian drug companies: MuscPharm – online pharmacy no perscription

  132. JoshuaFop说道:

    onlinepharmaciescanada com https://muscpharm.xyz/# MuscPharm

  133. Cialisdueta说道:

    Musc Pharm: MuscPharm – mexican pharmacy list

  134. Dmuaceks说道:

    Neo Kamagra: Neo Kamagra – NeoKamagra

  135. JoshuaFop说道:

    top rated canadian online pharmacy http://dmucialis.com/# DmuCialis

  136. Cialisdueta说道:

    buy kamagra online usa: Neo Kamagra – Neo Kamagra

  137. Dmuaceks说道:

    Neo Kamagra: NeoKamagra – cheap kamagra

  138. JoshuaFop说道:

    buy prescription drugs without doctor https://muscpharm.xyz/# Musc Pharm

  139. Dmuaceks说道:

    DmuCialis: Dmu Cialis – Dmu Cialis

  140. JamesEvisy说道:

    Cor Pharmacy: Cor Pharmacy – pharmacy canadian

  141. Stevefed说道:

    mexican pharmacy online reviews https://corpharmacy.com/# top 10 pharmacy websites

  142. JamesEvisy说道:

    EdPillsAfib: Ed Pills Afib – Ed Pills Afib

  143. Stevefed说道:

    list of safe online pharmacies https://corpharmacy.com/# online pharmacy birth control pills

  144. WilliamTop说道:

    international online pharmacy [url=https://corpharmacy.com/#]CorPharmacy[/url] CorPharmacy

  145. JamesEvisy说道:

    online otc pharmacy: all med pharmacy – Cor Pharmacy

  146. Stevefed说道:

    canadian drugs without any prescriptions https://viagranewark.com/# Buy Viagra online cheap

  147. JamesEvisy说道:

    CorPharmacy: CorPharmacy – Cor Pharmacy

  148. Stevefed说道:

    mail order pharmacy list http://edpillsafib.com/# EdPillsAfib

  149. DanielSot说道:

    Viagra generic over the counter: ViagraNewark – Buy generic 100mg Viagra online

  150. WilliamTop说道:

    online ed pills [url=https://edpillsafib.com/#]low cost ed medication[/url] EdPillsAfib

  151. JamesEvisy说道:

    cheap ed treatment: ed online pharmacy – EdPillsAfib

  152. Stevefed说道:

    canadian pharmacy world reviews http://viagranewark.com/# ViagraNewark

  153. DanielSot说道:

    Viagra Newark: Viagra Newark – Viagra Newark

  154. WilliamTop说道:

    us pharmacy [url=https://corpharmacy.com/#]Cor Pharmacy[/url] CorPharmacy

  155. JamesEvisy说道:

    Generic Viagra online: cheap viagra – generic sildenafil

  156. Stevefed说道:

    canadian meds without a script https://viagranewark.com/# Viagra Newark

  157. DanielSot说道:

    ViagraNewark: Viagra Newark – Viagra Newark

  158. WilliamTop说道:

    ViagraNewark [url=https://viagranewark.com/#]ViagraNewark[/url] ViagraNewark