Привет У меня есть следующая функция в java, которая работает как ожидалось при вычислении maximum drawdown.Функциональность перевода между java и python
Функция заключается в следующем:
DecimalFormat df = new DecimalFormat("########");
double max_dd = 100;
for(double t0:returns.keySet()){
for(double t1:returns.keySet()){
if(t1>t0){
double r = returns.get(t1)/returns.get(t0)-1;
if(r<max_dd){
max_dd = r;
System.out.println(df.format(t1) +"," +df.format(t0) + "," + max_dd + "," +returns.get(t1) + "," + returns.get(t0));
}
}
}
}
я получаю один результат здесь.
Затем я выполнить следующую функцию в Python:
pd
ниже панды, как это принято обозначение.
def max_dd_(ser):
max2here = pd.expanding_max(ser)
dd2here = ser - max2here
return dd2here.min()
И результат - совсем другое число.
данные поступают из того же исходного файла, и имеет формат: Date,Wealth
(Например: 2014-01-1,12.5)
Я доверяю код Java благодаря простоте и прозрачности, но предпочитают python из-за его краткости.
Любые указатели на то, что мне здесь не хватает?
вы должны дать больше подсказки о 'pd' объекта' метод expanding_max', 'dd2here' – marmeladze
@marmeladze смотри выше. pd - панды. –