Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 1

1. 머니탑 테이블을 불러온다 2. 백테할 기간 및 시간으로 머니탑 데이터를 잘라낸다. 3.

머니탑 df 를
딕셔너리로 바꾼다. 키값은 체결시간, 벨류는 거래대금순위텍스트 4. 머니탑 딕셔너리에서
종목코드를 추출한다. 이 리스트가 나중에 연산 프로세스가 불러올 테이블목록이 된다. 5. 만든
종목코드 리스트를 셔플을 3 번 정도한다. 최대한 연산 프로세스별로 데이터를 균등하게 분배하기
위함이다. 셔플하지 않을 경우 특정 프로세스의 데이터가 많아져서 요늠 한늠 때문에 집계가 느릴 수
있다. 6. 집계용 및 연산용 프로세스로 넘겨줄 인자값들을 별도의 리스트로 만든다. 여기에는 큐 및
머니탑딕셔너리 등이 포함되어 있다. 7. 집계용 프로세스 생성 8. 멀티수 만큼 포문을 돌면서 큐 생성
및 연산용 프로세스를 생성한다. 큐로 리스트로 모아둔다. 나중에 백테 시작 신호를 일괄 보내기
위함이다. 9. 8 에서 모은 큐리스트로 데이터로딩 명령을 연산 프로세스로 보낸다 10. 여러개의 연산
프로세스가 디비에 동시에 접근하여 데이터를 읽고 일부 가공한 후 벨류가 넘파이형태인 딕셔너리에
집어 넣는다 11. 연산 프로세스가 데이터 로딩을 완료하면 메인 프로세스로 완료 신호를 보낸다. 12.
메인프로세스에서 데이터로딩 신호를 수신하여 멀티수 만큼 완료되면 백테시작 명령을 각 연산
프로세스로 보낸다. 13. 연산 프로세스가 백테를 진행하면서 집계용 프로세스로 집계용 데이터를
보낸다. 14. 집계용 프로세스도 빠른 연산을 위해 df 형태 집계는 미리 로우를 생성하고 있어야하며
보유종목수는 딕셔너리 형태로 갱신한다. 15. 집계용 프로세스도 별도의 카운터를 두어 백테가
완료되었을 경우 통계를 내고 완료 신호를 메인 프로세스로 보낸다 16. 집계용 프로세스로 받은 완료
신호를 수신 후 백테 종료

You might also like