File size: 905 Bytes
e664a97
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import pandas as pd
from json_loader import *
import re



def calCulateReturn(pnl,cap):
  
    try:
        fc=float(cap)
        fp=float(pnl)
    except ValueError:
        return 0
    if(not re.search('\d',str(pnl)) or not re.search('\d',str(cap))):
        return 0 
    
    
    elif (fc==0 or fp==0):
        return 0
    else:
        return 100*float(pnl)/float(cap)

def agg_df(pnlDf,capDf):
    returnsColumns=[c+' Returns' for c in capDf.columns]
    capDf.columns=[c+' Capital' for c in capDf.columns]
    pnlDf.columns=[c+' PnL' for c in pnlDf.columns]

    result = pd.concat([capDf, pnlDf], axis=1, join="inner")



    for r in returnsColumns:
        stratName=r.split(' Returns')[0];
        capColumnName=stratName+' Capital'
        pnlColumnName=stratName+' PnL'
        result[r]=result.apply(lambda x:calCulateReturn(x[pnlColumnName],x[capColumnName]),axis=1)
    return result