楼主: 能者818
1007 22

[量化金融] 回溯测试引擎的正确性 [推广有奖]

  • 0关注
  • 6粉丝

会员

学术权威

78%

还不是VIP/贵宾

-

威望
10
论坛币
10 个
通用积分
39.6240
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
24699 点
帖子
4115
精华
0
在线时间
1 小时
注册时间
2022-2-24
最后登录
2024-12-24

楼主
能者818 在职认证  发表于 2022-5-9 05:53:37 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
英文标题:
《Correctness of Backtest Engines》
---
作者:
Robert L\\\"ow, Stanislaus Maier-Paape, Andreas Platen
---
最新提交年份:
2015
---
英文摘要:
  In recent years several trading platforms appeared which provide a backtest engine to calculate historic performance of self designed trading strategies on underlying candle data. The construction of a correct working backtest engine is, however, a subtle task as shown by Maier-Paape and Platen (cf. arXiv:1412.5558 [q-fin.TR]). Several platforms are struggling on the correctness.   In this work, we discuss the problem how the correctness of backtest engines can be verified. We provide models for candles and for intra-period prices which will be applied to conduct a proof of correctness for a given backtest engine if the here provided tests on specific model candles are successful. Furthermore, we hint to algorithmic considerations in order to allow for a fast implementation of these tests necessary for the proof of correctness.
---
中文摘要:
近年来,出现了一些交易平台,它们提供了一个回溯测试引擎,用于计算自我设计的交易策略在基础数据上的历史表现。然而,正如Maier Paape和Platen(参见arXiv:1412.5558[q-fin.TR])所示,构建一个正确工作的回溯测试引擎是一项微妙的任务。有几个平台在正确性上苦苦挣扎。在这项工作中,我们讨论了如何验证回溯测试引擎的正确性的问题。我们提供蜡烛模型和期内价格模型,如果此处提供的特定模型蜡烛测试成功,这些模型将用于对给定的回溯测试引擎进行正确性证明。此外,为了快速实现这些验证正确性所需的测试,我们还提示了算法方面的注意事项。
---
分类信息:

一级分类:Quantitative Finance        数量金融学
二级分类:Trading and Market Microstructure        交易与市场微观结构
分类描述:Market microstructure, liquidity, exchange and auction design, automated trading, agent-based modeling and market-making
市场微观结构,流动性,交易和拍卖设计,自动化交易,基于代理的建模和做市
--
一级分类:Quantitative Finance        数量金融学
二级分类:Computational Finance        计算金融学
分类描述:Computational methods, including Monte Carlo, PDE, lattice and other numerical methods with applications to financial modeling
计算方法,包括蒙特卡罗,偏微分方程,格子和其他数值方法,并应用于金融建模
--

---
PDF下载:
--> Correctness_of_Backtest_Engines.pdf (241.5 KB)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:正确性 Quantitative Applications Construction correctness

沙发
何人来此 在职认证  发表于 2022-5-9 05:53:44
回测引擎的正确性德国亚琛D-52052亚琛坦普尔格拉本55号亚琛RWTH Lobert L"owInstitut für Mathematik。loew@rw亚琛。德斯坦尼劳斯·梅尔·帕佩塔特·弗尔·马泰马提克研究所,亚琛州亚琛路,坦普尔格拉本55号,D-52052,Germanymaier@instmath.rwth-亚琛。迪安德里亚·普莱坦斯提特·für Mathematik,亚琛RWTH,坦普尔格拉本55号,亚琛D-52052,Germanyplaten@instmath.rwth-亚琛。2015年9月29日摘要近年来出现了一些交易平台,这些平台提供了一个后台测试引擎,可以根据基础数据计算自行设计的交易策略的历史表现。然而,正如Maier Paape和Platen(参见[arXiv:1412.5558,q-fin.TR])所示,构建一个正确工作的回测引擎是一项微妙的任务。有几个平台在为正确性而挣扎。在这项工作中,我们讨论了如何验证回溯测试引擎的正确性的问题。我们提供了蜡烛模型和期内价格模型,如果在特定模型蜡烛上提供的测试成功,这些模型将用于对给定的回溯测试引擎进行正确性证明。此外,我们还提示了算法方面的注意事项,以便快速实现证明正确性所需的这些测试。关键词回溯测试评估、历史模拟、交易系统、蜡烛图、不完美数据、价格模型、正确性测试、回溯测试正确性JEL分类C15、C63、C88、C991。简介交易软件的使用允许编程交易策略,然后自动执行。通常,此任务的软件解决方案还提供了一个回溯测试引擎,该引擎根据历史数据评估用户编写的脚本,并向用户提供性能评估值、位置的输入和输出,以及在过去使用tradingscript时可能发生的进一步数据。

藤椅
kedemingshi 在职认证  发表于 2022-5-9 05:53:47
一般来说,历史数据并不准确,因为特定时间的价格未知。取而代之的是,在所谓的可处理数据或条形数据中,对各个时段的价格进行汇总,其中包括给定时段长度(例如每天一支蜡烛)的最高价格(高)、最低价格(低)、时段开始时的价格(开放)和时段结束时的价格(关闭)。由于缺乏信息,当只有烛光数据可用时,几种订单组合的唯一性将丢失,请参见。g、 [7]以及《帕尔多之书》[10,第6章,“软件限制”一节]或《哈里斯之书》[5,第6章]。在详细介绍我们的回溯测试正确性测试模型之前,值得注意的是,除了上述问题外,回溯测试还有其他不可忽视的局限性,例如,参见Chan[4,第3章]、Pardo[10,第6章]R.L"ow、S.Maier Paape、,和A.Platenand Harris[5,第6章]以及关于交易期权的Izraylevich和Tsudikman的书[6,第5章]。由于回溯测试只是模拟交易系统过去的行为,因此在预测未来方面受到很大限制。然而,将历史数据最大化是一种常见的目标,而优化历史数据是一种常见的策略。这种优化过程可能会很快变得非常耗时。因此,为了有效地对不同参数选择的自动编码系统进行回溯测试,倪和张[8]提出了一种方法,但他们没有解释回溯测试评估本身。计算这种“最佳”参数设置并不能确保未来的最佳参数,甚至可能导致巨大损失。这里经常提到反向测试过度匹配,详细讨论请参见[1,2,3]和[9,第6章]。因此,即使是正确的回溯测试引擎也需要小心使用。

板凳
nandehutu2022 在职认证  发表于 2022-5-9 05:53:50
但它提供了有关交易策略的重要信息。然而,本文的目的并不是为了“正确”地应用回测结果,而是为了首先验证回测是否正确执行。常见软件解决方案经常遇到的一个问题是回溯测试引擎的正确结果的非唯一性。几乎所有人都没有考虑这个问题。此外,即使情况显然是唯一可判定的,一些平台有时也会对其回溯测试引擎进行错误的评估。然而,对于用户来说,拥有可靠、正确的回溯测试评估是非常重要的。因此,Maier Paape和Platen[7]询问,当只有烛光数据可用时,回溯测试引擎应如何决定某些给定的标准订单设置,如限制和停止进入订单,以及典型的周期内停止或目标退出订单。他们可以将这些检查限制在单个蜡烛上,认为任何交易都可以分成几个蜡烛,具有不同的有效订单。对于所讨论的顺序组合,他们提供了决策树,对于给定的蜡烛,根据打开、关闭、高值和低值,可以确定回溯测试引擎的正确行为。他们还引入了决策模式,为由于数据中缺乏信息而无法唯一确定的情况提供确定性规则。然而,由于在不同情况下可能发生的可能性很多,因此很难验证某个交易平台的给定回溯测试引擎是否正确计算了其回溯测试。在本文中,我们因此提供了一种解决这个问题的算法方法。为了检查给定的回溯测试引擎是否按照[7]中的要求运行,有必要设计测试数据。

报纸
nandehutu2022 在职认证  发表于 2022-5-9 05:53:53
这意味着我们正在寻找所谓的“测试蜡烛”。在检查了这些蜡烛的回溯测试评估之后,我们希望能够在合理的假设下得出回溯测试引擎的总体正确性。这项工作分为五个部分。在第2节中,我们将讨论进行考试的预备阶段,并将讨论的问题正式化。第3节的主要成果是“模型蜡烛”概念的发展,它允许在特定情况下证明回溯测试引擎的正确性。在第4节中,将介绍一个周期内价格模型,该模型允许获得所需的条件,以保证所有模型蜡烛的完整性以及回溯测试的所有相应可能结果。我们在第5节中总结了本文。2.问题陈述和初步准备首先,我们想具体说明我们要检查的情况。在第2.1节中,我们给出了做出回溯测试决策所需的一些假设。由于我们可以将回溯测试引擎的正确性问题减少到每种情况下一根蜡烛的正确性测试,因此我们在第2.2节中定义了此类情况的设置。第2.3.2.1节解释了回测引擎的概念。

地板
mingdashike22 在职认证  发表于 2022-5-9 05:53:58
假设在这一点上,我们不会对我们检查的蜡烛做出具体假设。显然,每支蜡烛都令人满意≤ 最小{打开,关闭}≤ 最大值{打开,关闭}≤ 高的由于烛光数据造成的信息不足,必须做出一些一般性假设。假设2.1(见[7,第2.1节]):无期内缺口:我们假设在一个交易期间,期内价格持续上涨市场流动性:所有订单均按要求价格完成,因此不会出现延误当地最坏情况/最佳情况:最坏情况和最佳情况决策由当地决定,也就是说,对交易的收益进行评估,就好像它在蜡烛熄灭时被关闭一样本地决策:回溯测试引擎仅通过考虑有问题的can dle进行决策。之前和未来的蜡烛不会影响所做的决定。备注2.2。对于现实的价格图表和市场来说,其中一些假设是非常不合理的。然而,由于回溯测试引擎手头只有蜡烛数据,这些假设对于决定这些市场情况的可能结果是必要和合理的。为了便于理解所介绍的概念,我们将在整个工作中使用一个示例。例2.3。在蜡烛开始时,我们可能没有未平仓,而是有两个活跃的订单,例如53级的停买进入订单,如果价格达到53,则进入多头仓位;如果价格低于51,则51级的保护性止损订单退出多头仓位(但前提是它事先变大)。给定一个任意的can-dle,backtest引擎现在应该决定执行这些命令中的哪一个,以及蜡烛末端是否有打开的位置。2.2. 设置和期内价格我们可以正式确定哪些订单是有效的,以及蜡烛之前的位置。定义2.4。假设我们有m∈ N级订单。

7
能者818 在职认证  发表于 2022-5-9 05:54:01
<Lm,分别与li∈ R四舍五入,以勾选所有1的资产大小≤ 我≤ m、 让p∈ {-1,0,1}表示在相关蜡烛之前出现的位置状态,其中0代表一个位置,-1空头仓位和1多头仓位。这种m指令和位置类型p的组合称为设置。第3R页。L"ow、S.Maier Paape和A.Plate在下文中,我们只考虑最多允许一次进入执行和一次退出执行的设置。可用的输入订单为限额买入/卖出和s top买入/卖出,即“EnterLongLimit”、“EnterShortLimit”、“EnterLongStop”和“EnterShortStop”。作为退出指令,我们使用止损和利润目标(相关决策树参见[7,第2.2、2.3和2.5节”)。请注意,我们忽略了进入和退出的市场指令,因为它们是微不足道的可决定的。我们不调查给出的结果是否可以推广到允许在mosta进入和a退出时执行的s ETUP,其中1<a∈ N、 但类似的概念可能也适用。此外,我们排除了m=0的平凡情况,在这种情况下,没有顺序是活动的。现在,我们可以将示例2.3形式化。例2.5。我们将L=53级的止损申报单(EnterLongStop)和P=0的该申报单所附的L=51级的保护性止损退市单的组合作为示例设置。仅出于技术原因,蜡烛的期内价格将假定为连续的,如下所示,其中我们表示所有连续函数的集合g:a→ B由C(A,B)和定义+:={x∈ R | x≥ 0}.定义2.6。我们叫f∈ C([a,b],R+)和a,b∈ R和a<b为期内价格函数(IPF)。

8
大多数88 在职认证  发表于 2022-5-9 05:54:04
ByC(f):=f(a),f(b),最大∈[a,b]f(t),薄荷∈[a,b]f(t)∈ (R+)我们表示IPF的相应烛光。这里,a和b被解释为一个时期的开始时间和结束时间,该时期发行至一烛光,f(t)被解释为a在时间t的价格≤ T≤ b、 显然,对于每一个烛光∈ (R+)可以构造一个IFP f,使得C(f)=C.2.3。回溯测试引擎和结果给定一个期内价格函数,我们可以确定其结果。定义2.7。我们将给定设置的IPF结果定义为(entryf,exitf)的组合,其中进入和退出是正确应用给定设置顺序的结果。如果没有进入或退出,则用值表示-分别为1。我们用R(f)表示IPF的结果。正式地说,对于给定的设置,这可以被视为函数:[a,b∈R、 a<bC([a,b],R+)→ (R)+∪ {-1}). (1) 这样,关于给定设置的f的组合烛光数据和结果(CR)可以定义为组合CR(f):=(C(f),R(f))。备注2.8。请注意,结果和CRs的定义取决于IPF,这意味着所有CRs对应于期内价格,这符合假设2.1中的前两个假设。对于给定的设置和烛光数据(打开、关闭、高、低),查找所有可能的结果(进入、退出)可以重新表示为查找im(CR)∩{(开、关、高、低)}×R. 请注意,thi sset可以有多个元素,这意味着该蜡烛的结果不是唯一的。第4页回测引擎的正确性对于给定的固定设置,我们可以将本工作中使用的回测引擎的概念形式化。当我们想要检查蜡烛数据上的回溯测试引擎的行为时,我们可以将蜡烛作为输入数据。回溯测试引擎应该返回一个可能的进入价格,在该价格下,一个位置可能被打开,一个可能的退出价格,在该位置可能被关闭。

9
何人来此 在职认证  发表于 2022-5-9 05:54:07
当然,进入或退出可能不会发生,或者可能没有一个可以唯一确定的价格(参见备注2.8)。因此,backtest引擎还需要一个“backtest决策模式”(简称:backtestmode),这使得进入和退出价格是唯一的。定义2.9。对于BM:={最佳情况,最坏情况,忽略}我们将(R+)×BM中的值解释为烛光数据的组合(打开、关闭、高、低)∈ (R+)和根据假设2.1的backtestmode。对于给定的设置,我们称之为映射:(R+)×BM→ (R)+∪ {-1} )一个回溯测试引擎。结果E(c,M)∈ (R)+∪ {-1} )对于蜡烛c∈ (R+)和回溯测试模式M∈ BMI分别被解释为进入价格和退出价格的组合,其中-1禁止进入/退出。备注2.10。在一个特定的图表上,这里是烛光图,平台的回溯测试引擎决定给定策略的结果。它必须模拟通常在每支蜡烛结束时执行的脚本,并下订单。此外,它还必须跟踪已下订单和未结头寸。当蜡烛前的所有命令(构成设置)已知时,回溯测试引擎必须决定执行这些命令中的哪一个。这里,我们只考虑回测引擎的最后一部分。因此,对于我们来说,回溯测试引擎E只有烛光数据(和设置)作为输入,而(1)中的结果函数R需要IPF,即周期内数据。因此,E必须找到与给定烛光对应的结果,即对于给定的罐D,回溯测试引擎必须找到结果r∈ (R)+∪ {-1} )对于适当的IPF,s.t.r=r(f)和c=c(f)。回测模式规定,如果给定的蜡烛对应多个可能的结果,则必须选择哪个IPF。继续示例2.5,我们将在应用程序中展示这些概念。例2.11。

10
能者818 在职认证  发表于 2022-5-9 05:54:11
使用示例2.5中的设置(在L=53时停止购买输入订单,在L=51时停止损失输入订单,蜡烛前的闪烁位置为on,即p=0)和IPFf:0,π→ R+,t7→ sin(t)+52(见图1(a))我们得到了CR(C(f),R(f))=(开=52,关=53,高=53,低=51,入口=53,出口=51)。在这个例子中,我们可以通过考虑IPFg,看到结果的非唯一性,如果只给出蜡烛:0,π→ R+,t7→ - sin(t)+52(见图1(b)),其结果与f相同,即C(f)=C(g),但结果r(g)=(entryg=53,exitg=-1) 6=R(f)。第5R页。L"ow、S.Maier Paape和A.Platenπf(A)IPF f.πg(b)IPF g.图1:示例2.11中的IPF和生成的蜡烛。这里,g对应于这种蜡烛的最佳情况,f对应于最坏情况,正如我们对f和g的现金价值的蜡烛的系数e一样- entryg=关闭- 53 = 53 - 53 = 0 > -2 = 51 - 53=exitf- 入口。在这一点上,我们实际上不知道是否还有其他情况,但对于这个设置,给定蜡烛最多有两种可能的结果。选择回溯测试模式M∈ 然后,BM为回溯测试引擎做出唯一的决定,并允许从f或g中选择结果,或者也可以忽略此交易。由于我们无法检查完整维度空间(R+)中包含的每个蜡烛的回溯测试引擎,我们需要将问题减少到完整的多个模型蜡烛。然而,对于这一步,我们需要回测引擎在蜡烛变换下保持稳定,我们将在下一节中讨论。3.正确性证明的合适测试用例在本节中,我们要检查给定的回溯测试引擎是否正常工作。为此,我们设计了“模型蜡烛”,即。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-30 16:32