calculating “Max Draw Down” in SQL

edit: it's worth reviewing the comments section of the first answer to get a clearer idea of the problem.

edit: I'm using SQLServer 2005

something similar to this was posted before but I don't think enough information was given by the poster to truly explain what max draw down is. All my definitions of max draw down come from (the first two pages of) this paper: http://www.stat.columbia.edu/~vecer/maxdrawdown3.pdf

Фактически, у вас есть несколько терминов, определенных математически:

Максимальный бег, M t

M t = max u in [0, t] (S u )
где S t - цена Акции, S, в момент времени, т.

Просадка, D t

D t = M t - S t

Макс.расход, MDD t

MDD t = макс u in [0, t] (D u )

Итак, по сути, то, что необходимо определить, - это локальные максимумы и минимумы из набора высоких и минимальных цен для данной акции за период времени. У меня есть историческая таблица котировок со следующими (соответствующими) столбцами:

 stockid int 
день дата 
привет int - это в пенни 
low int --also in pennies 

so for a given date range, you'll see the same stockid every day for that date range.

EDIT:
hi and low are high for the day and low for each day.

once the local max's and min's are determined, you can pair every max with every min that comes after it and calculate the difference. From that set, the maximum difference would be the "Max Draw Down".

The hard part though, is finding those max's and min's.

edit: it should be noted: максимальная просадка определяется как величина гипотетического убытка, если акция покупается по самой высокой точке покупки и продается по самой низкой точке продажи. Акция не может быть продана по минимальному значению, предшествующему максимальному значению. поэтому, если глобальное минимальное значение предшествует глобальному максимальному значению, эти два значения не предоставляют достаточно информации для определения максимальной просадки.

11
задан Ramy 29 October 2010 в 15:02
поделиться