import pandas as pd import numpy as np def perfomance_statistics(initial_capital,pnl): max_draw_down=max_draw_down(initial_capital,pnl) # max drawdown #maxdrawdown=50000 avgret=ret.mean() # average return sdret=ret.std() # standard deviation return sharperatio = avgret / sdret #sharpe ratio #sharperatio = (avgret - expectedannualizedreturn) / sdret #sharperatio = (avgret - expectedannualizedreturn/365) / sdret # annualizedsharperatio = (avgret * 365 - expectedannualizedreturn) / (sdret * 250**0.5) calmarratio=avgret/abs(max_draw_down) # calmar ratio consecutivelossctr=0 # concecutive loses maxconsecutivelossctr=0 for i in range(nooftrades): if ret[i]>=0: consecutivelossctr=0 else: consecutivelossctr+=1 if maxconsecutivelossctr < consecutivelossctr: maxconsecutivelossctr = consecutivelossctr report=R() report.profittrades=profittrades report.noofprofittrades=noofprofittrades report.maxprofitpertrades=maxprofitpertrades report.sumprofits=sumprofits report.avgprofitpertrades=avgprofitpertrades report.losstrades=losstrades report.nooflosstrades=nooflosstrades report.maxlosspertrades=maxlosspertrades report.sumlosses=sumlosses report. avglossespertrades= avglossespertrades report.nooftrades=nooftrades report.sumofret=sumofret report.avgret=avgret report.hitratio=hitratio report.profitfactor=profitfactor report.ratioavgwinavgloss=ratioavgwinavgloss report.avgwinningtrades=avgwinningtrades report.avgloosingtrades=avgloosingtrades report.grossprofit=grossprofit report.grossloss=grossloss report.profitfactor=profitfactor report.max_draw_down=max_draw_down report.avgret=avgret report.sdret=sdret report.calmarratio=calmarratio report.maxconsecutivelossctr=maxconsecutivelossctr reort.max_draw_down=max_draw_down report.sharperatio=sharperatio return report # return(profittrades,noofprofittrades,maxprofitpertrades,sumprofits,avgprofitpertrades,losstrades,nooflosstrades,maxlosspertrades,sumlosses, # avglossespertrades,nooftrades,sumofret,avgret,hitratio,profitfactor, ratioavgwinavgloss,avgwinningtrades,avgloosingtrades, # grossprofit,grossloss,profitfactor,maxdrawdown,avgret,sdret,calmarratio,maxconsecutivelossctr) def max_drawdown(initial_capital,pnl): cumul_pnl = np.cumsum(pnl) cum_ret = cumul_pnl / initial_capital noofrtns=len(pnl) ret=pnl/initial_capital high_water_mark = cum_ret[0] max_dd = 0.0 for r in range(noofrtns): if cum_ret[r]>high_water_mark: high_water_mark=cum_ret[r] dd=(1+cum_ret[r])/(1+high_water_mark)-1 if dd < max_dd: max_dd=dd return max_dd class R(object): maxdrawdown=0 avgret=0 sdret =0 calmarratio=0 maxconsecutiveloss=0 max_draw_down=0 sharperatio=0 when I am importing to my jypter note book m getting this errorlocal variable 'max_draw_down' referenced before assignment
looping in python
Messages In This Thread |
looping in python - by jazzy - Jul-12-2018, 07:27 AM
RE: looping in python - by gontajones - Jul-12-2018, 09:47 AM
RE: looping in python - by jazzy - Jul-16-2018, 05:51 AM
RE: looping in python - by menakasama - Jul-16-2018, 11:22 AM
RE: looping in python - by hurgadion - Jul-16-2018, 06:54 AM
RE: looping in python - by jazzy - Jul-16-2018, 07:38 AM
RE: looping in python - by jazzy - Jul-16-2018, 11:24 AM
RE: looping in python - by ichabod801 - Jul-16-2018, 01:44 PM
RE: looping in python - by jazzy - Jul-18-2018, 05:23 AM
RE: looping in python - by jazzy - Jul-27-2018, 10:58 AM
RE: looping in python - by jazzy - Aug-27-2018, 11:16 AM
RE: looping in python - by ichabod801 - Aug-27-2018, 05:13 PM
RE: looping in python - by buran - Aug-27-2018, 05:17 PM
|
Possibly Related Threads… | |||||
Thread | Author | Replies | Views | Last Post | |
Looping script and writing to Excel in Python | Rolflund | 2 | 3,856 |
Jan-21-2018, 10:31 PM Last Post: j.crater |
|
Trouble with creating a looping function in python 2.7 (complex) | Afterdarkreader | 3 | 3,935 |
Dec-12-2017, 06:56 PM Last Post: Afterdarkreader |
Users browsing this thread: 1 Guest(s)