-2
您好我在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代碼由於簡單性和透明性,但更喜歡蟒蛇由於其簡潔。
任何關於我可能在這裏失蹤的指針?
你應該給有關'pd'對象,'expanding_max'方法,更多的線索'dd2here' – marmeladze
@marmeladze見上面。 pd是熊貓。 –