小编典典

在SQL中计算“ ax Draw Down”

sql

编辑:值得复习第一个答案的评论部分,以更清楚地了解问题。

编辑:我正在使用SQLServer 2005

之前曾发布过类似的内容,但我认为海报提供的信息不足以真正说明最大缩水是多少。我对最大缩水的所有定义都来自本文的(前两页):http
:
//www.stat.columbia.edu/~vecer/maxdrawdown3.pdf

有效地,您在数学上定义了一些术语:

最高运行时间,M t

M t = [0,t]中的最大u(S u)
,其中S t是时间t上股票S的价格。

压降D t

D t = M t -S t

最大压降,MDD t

MDD t = [0,t]中的最大u(D u)

因此,有效地需要确定的是给定股票在一段时间内从一组高价和低价中得出的局部最大值和最小值。我有一个历史报价表,其中包含以下(相关)列:

stockid int  
day date  
hi  int --this is in pennies  
low int --also in pennies

因此,对于给定的日期范围,您将在该日期范围内每天看到相同的stockid。

编辑:
嗨和低是一天的高和每天低。

一旦确定了本地的最大值和最小值,您就可以将每个最大值与之后的每个最小值配对,然后计算差值。从该组来看,最大差异将是“最大跌幅”。

但是,困难的部分是找到那些最大和最小。

编辑:应该注意:最大跌幅定义为假设股票在其最高买入点买入并在其最低卖出点卖出的情况下的假设损失值。股票不能在最高价之前的最低价出售。因此,如果全局minval在全局maxval之前,则这两个值不能提供足够的信息来确定max-
drawdown。


阅读 179

收藏
2021-04-22

共1个答案

小编典典

我们需要在问题域中考虑一些事项:

  1. 股票每天都有一系列价格,通常在烛台图表中查看
  2. 让我们将一天中的最高价格称为HI
  3. 让我们将一天的最低价格称为LOW
  4. 问题是受时间限制的,即使时间限制是IPO日期和退市日期
  5. 最大跌幅是您在该时间段内可能损失的最大股票
  6. 假设采用长策略:从逻辑上讲,如果我们能够确定所有局部最大值(MAXES)和所有局部最小值(MINS),则可以定义一组将每个MAX与每个后续MIN配对的位置,并计算差值DIFFS
  7. 有时差异会导致负数,但这不是亏损
  8. 因此,我们需要在差异集中选择追加0并选择最大值

问题在于定义MAXES和MINS,借助曲线的功能,我们可以应用微积分,而无法应用微积分。明显地

  1. 最高需要来自HI和
  2. MINS需要来自LOW

解决此问题的一种方法是定义一个游标并对其进行暴力破解。函数式语言也有很好的工具集可以解决此问题。

2021-04-22