2011-12-09 6 views
1

파이썬의 map() 함수를 사용하여 매개 변수를 거래 모델에 전달하고 결과를 출력합니다. itertools.product를 사용하여 두 매개 변수의 가능한 모든 조합을 찾은 다음 해당 조합을 "run"이라는 함수에 전달합니다. 함수 실행은 반환의 팬더 데이터 프레임을 반환합니다. 열 머리글은 두 매개 변수의 튜플 및 반환의 샤프 비율입니다. 아래를 참조Python map() 함수가 Pandas DataFrame에 출력

def run((x,y)): 
    ENTRYMULT = x 
    PXITR1PERIOD = y 

    create_trade() 
    pull_settings()  
    pull_marketdata() 
    create_position() 
    create_pnl_output() 

    return DataFrame(DF3['NETPNL'].values, index=DF3.index, columns=[(ENTRYMULT,PXITR1PERIOD,SHARPE)]) 

내 main() 함수는 모두 8 개 코어에() 맵을 실행하기 위해 풀() 기능을 사용

if __name__ == '__main__':  
global DF3 
pool = Pool()  
test1 =pool.map(run,list(itertools.product([x * 0.1 for x in range(10,12)], range(100,176,25)))) 
print test1 

내가지도 기능을 할 수있는 전용 출력 목록을 알고 있습니다. 출력은 인쇄 TEST1에서 내 출력은 다음과 같습니다 반환 dataframe에서 헤더의 목록입니다

내 최종 목표는 (모든 반품 동일) 인덱스와 팬더 dataframe의 열 머리글을하는 것입니다
[(1.0, 150, -8.5010673966997263) 
2011-11-17 18.63       
2011-11-18 17.86       
2011-11-21 17.01       
2011-11-22 15.92       
2011-11-23 15.56       
2011-11-24 15.56       
2011-11-25 15.36       
2011-11-28 15.18       
2011-11-29 15.84       
2011-11-30 NaN       ,    (1.0, 175, -9.4016837593189102) 
2011-11-17 22.63       
2011-11-18 22.03       
2011-11-21 21.36       
2011-11-22 19.93       
2011-11-23 19.77       
2011-11-24 19.77       
2011-11-25 19.68       
2011-11-28 19.16       
2011-11-29 19.56       
2011-11-30 NaN       ,    (1.1, 100, -20.255968672741457) 
2011-11-17 12.03       
2011-11-18 10.95       
2011-11-21 10.03       
2011-11-22 9.003       
2011-11-23 8.221       
2011-11-24 8.221       
2011-11-25 7.903       
2011-11-28 7.709       
2011-11-29 6.444       
2011-11-30 NaN       ,    (1.1, 125, -18.178187305758119) 
2011-11-17 14.64       
2011-11-18 13.76       
2011-11-21 12.89       
2011-11-22 11.85       
2011-11-23 11.34       
2011-11-24 11.34       
2011-11-25 11.16       
2011-11-28 11.06       
2011-11-29 10.14       
2011-11-30 NaN       ,    (1.1, 150, -14.486791104380069) 
2011-11-17 26.25       
2011-11-18 25.57       
2011-11-21 24.76       
2011-11-22 23.74       
2011-11-23 23.48       
2011-11-24 23.48       
2011-11-25 23.43       
2011-11-28 23.38       
2011-11-29 22.93       
2011-11-30 NaN       ,    (1.1, 175, -12.118290962161304) 
2011-11-17 24.66       
2011-11-18 24.21       
2011-11-21 23.57       
2011-11-22 22.14       
2011-11-23 22.06       
2011-11-24 22.06       
2011-11-25 22.11       
2011-11-28 21.64       
2011-11-29 21.24       
2011-11-30 NaN       ] 

(ENTRYMULT, PXITR1PERIOD, SHARPE)를 아래의 해당 리턴과 비교하십시오. 그런 다음 모든 반품 시리즈에 대해 쌍으로 상관 관계 계산을 수행 할 것입니다.

답변

4

나는 당신이 할 필요가 생각 :

data = DataFrame(dict(test1))

누구의 열 같은 요소가되는 DataFrame 될 것이다 (1.1, 175, -12.118290962161304)

팬더 0.6에 .1 곧 출시 될 예정입니다.

data = DataFrame.from_items(test1)

관련 문제