首页 > 解决方案 > 我需要使用 np.where 函数为变量设置条件

问题描述

我需要为其设置约束的变量是'x'

其中 x=1 而 x*3*StdDev <= MADD-DD

否则 x = (MADD-DD)/(3*StdDev)

此外,x 必须始终为正

到目前为止,这是我的代码,我尝试使用的 if 函数将不起作用:

MADD = 0.3 #Maximum Acceptable Drawdown

HWM_LnSh = np.maximum.accumulate(data.LnSh_Ex_return) #Compute High 
Water Marker - the running maximum
DD_LnSh = (HWM - data.LnSh_Ex_return)/HWM_LnSh #Drawdown
MDD_LnSh = np.maximum.accumulate(DD_LnSh) #Maximum Drawdown

x = 1 

if 3*annual_vol_LnSh > MADD - DD_LnSh:
 x = (MADD - DD_LnSh)/(3*annual_vol_LnSh)

到目前为止我的代码 ,如果需要其他信息,请告诉我,非常感谢任何帮助

标签: pythonpandasnumpy

解决方案


推荐阅读